Arcturus-Community/src/main/java/com/eu/habbo/messages/incoming/rooms/RoomBackgroundEvent.java

45 lines
1.6 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.messages.incoming.rooms;
import com.eu.habbo.Emulator;
2020-06-05 10:12:49 +02:00
import com.eu.habbo.habbohotel.permissions.Permission;
2018-07-06 15:30:00 +02:00
import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.users.HabboItem;
import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.plugin.events.furniture.FurnitureRoomTonerEvent;
2019-05-26 20:14:53 +02:00
public class RoomBackgroundEvent extends MessageHandler {
2018-07-06 15:30:00 +02:00
@Override
2019-05-26 20:14:53 +02:00
public void handle() throws Exception {
2018-07-06 15:30:00 +02:00
int itemId = this.packet.readInt();
Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom();
2019-05-26 20:14:53 +02:00
if (room == null)
2018-07-06 15:30:00 +02:00
return;
2020-06-05 10:12:49 +02:00
if (room.hasRights(this.client.getHabbo()) || this.client.getHabbo().hasPermission(Permission.ACC_PLACEFURNI)) {
2018-07-06 15:30:00 +02:00
HabboItem item = room.getHabboItem(itemId);
2019-05-26 20:14:53 +02:00
if (item == null)
2018-07-06 15:30:00 +02:00
return;
2019-05-26 20:14:53 +02:00
int hue = this.packet.readInt();
int saturation = this.packet.readInt();
int brightness = this.packet.readInt();
2018-07-06 15:30:00 +02:00
2019-05-26 20:14:53 +02:00
FurnitureRoomTonerEvent event = (FurnitureRoomTonerEvent) Emulator.getPluginManager().fireEvent(new FurnitureRoomTonerEvent(item, this.client.getHabbo(), hue, saturation, brightness));
2018-07-06 15:30:00 +02:00
2019-05-26 20:14:53 +02:00
if (event.isCancelled())
2018-07-06 15:30:00 +02:00
return;
2019-05-26 20:14:53 +02:00
hue = event.hue % 256;
2018-07-06 15:30:00 +02:00
saturation = event.saturation % 256;
brightness = event.brightness % 256;
item.setExtradata(item.getExtradata().split(":")[0] + ":" + hue + ":" + saturation + ":" + brightness);
item.needsUpdate(true);
Emulator.getThreading().run(item);
room.updateItem(item);
}
}
}