diff --git a/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java b/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java index f2541e1..2d95c19 100644 --- a/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java +++ b/Emulator/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java @@ -8,7 +8,6 @@ import com.eu.habbo.habbohotel.rooms.RoomUnit; import com.eu.habbo.messages.ClientMessage; import com.eu.habbo.messages.ServerMessage; import com.eu.habbo.messages.outgoing.rooms.items.ItemStateComposer; -import gnu.trove.map.hash.TLongLongHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -162,4 +161,4 @@ public abstract class InteractionWired extends InteractionDefault { settings.setStuffTypeSelectionCode(packet.readInt()); return settings; } -} +} \ No newline at end of file diff --git a/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java b/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java index fdc3c99..0b0801c 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/PacketManager.java @@ -384,6 +384,7 @@ public class PacketManager { this.registerHandler(Incoming.RotateMoveItemEvent, RotateMoveItemEvent.class); this.registerHandler(Incoming.MoveWallItemEvent, MoveWallItemEvent.class); this.registerHandler(Incoming.RoomPickupItemEvent, RoomPickupItemEvent.class); + this.registerHandler(Incoming.RoomPickupChooserEvent, RoomPickupChooserEvent.class); this.registerHandler(Incoming.RoomPlacePaintEvent, RoomPlacePaintEvent.class); this.registerHandler(Incoming.RoomUserStartTypingEvent, RoomUserStartTypingEvent.class); this.registerHandler(Incoming.RoomUserStopTypingEvent, RoomUserStopTypingEvent.class); diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java index 294b1fd..f5fb0ba 100644 --- a/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/Incoming.java @@ -134,6 +134,7 @@ public class Incoming { public static final int BotSettingsEvent = 1986; public static final int StalkFriendEvent = 3997; public static final int RoomPickupItemEvent = 3456; + public static final int RoomPickupChooserEvent = 10017; public static final int RedeemItemEvent = 3115; public static final int RequestFriendsEvent = 1523; public static final int RequestAchievementsEvent = 219; diff --git a/Emulator/src/main/java/com/eu/habbo/messages/incoming/rooms/items/RoomPickupChooserEvent.java b/Emulator/src/main/java/com/eu/habbo/messages/incoming/rooms/items/RoomPickupChooserEvent.java new file mode 100644 index 0000000..73896ec --- /dev/null +++ b/Emulator/src/main/java/com/eu/habbo/messages/incoming/rooms/items/RoomPickupChooserEvent.java @@ -0,0 +1,38 @@ +package com.eu.habbo.messages.incoming.rooms.items; + + import com.eu.habbo.habbohotel.permissions.Permission; + import com.eu.habbo.habbohotel.rooms.Room; + import com.eu.habbo.habbohotel.users.HabboItem; + import com.eu.habbo.messages.incoming.MessageHandler; + +public class RoomPickupChooserEvent extends MessageHandler { + @Override + public void handle() throws Exception { + int category = this.packet.readInt(); + int itemId = this.packet.readInt(); + + Room room = this.client.getHabbo().getHabboInfo().getCurrentRoom(); + + if (room == null) + return; + + HabboItem item = room.getHabboItem(itemId); + + if (item == null) + return; + + if (item.getUserId() == this.client.getHabbo().getHabboInfo().getId()) { + room.pickUpItem(item, this.client.getHabbo()); + } else { + if (room.hasRights(this.client.getHabbo())) { + if (this.client.getHabbo().hasPermission(Permission.ACC_ANYROOMOWNER)) { + item.setUserId(this.client.getHabbo().getHabboInfo().getId()); + } else if (this.client.getHabbo().getHabboInfo().getId() != room.getOwnerId() && item.getUserId() == room.getOwnerId()) { + return; + } + + room.ejectUserItem(item); + } + } + } +}