From 774cf85926fc37bc50948d1076e3ff9459a08b85 Mon Sep 17 00:00:00 2001 From: Mikkel Friis Date: Tue, 15 Sep 2020 19:38:31 +0200 Subject: [PATCH] wired furni selection count fix --- .../WiredConditionFurniHaveFurni.java | 5 +++-- .../WiredConditionFurniHaveHabbo.java | 5 +++-- .../WiredConditionFurniTypeMatch.java | 5 +++-- .../WiredConditionMatchStatePosition.java | 5 +++-- .../WiredConditionNotFurniHaveFurni.java | 8 +++---- .../WiredConditionNotFurniHaveHabbo.java | 8 +++---- .../WiredConditionNotFurniTypeMatch.java | 5 +++-- .../WiredConditionNotMatchStatePosition.java | 8 +++---- .../WiredConditionNotTriggerOnFurni.java | 3 ++- .../WiredConditionTriggerOnFurni.java | 5 +++-- .../wired/effects/WiredEffectBotTeleport.java | 5 +++-- .../effects/WiredEffectBotWalkToFurni.java | 5 +++-- .../WiredEffectChangeFurniDirection.java | 9 +++++--- .../wired/effects/WiredEffectMatchFurni.java | 10 ++++----- .../effects/WiredEffectMoveFurniAway.java | 5 +++-- .../effects/WiredEffectMoveFurniTowards.java | 5 +++-- .../effects/WiredEffectMoveRotateFurni.java | 21 ++++++++++++------- .../wired/effects/WiredEffectTeleport.java | 5 +++-- .../wired/effects/WiredEffectToggleFurni.java | 5 +++-- .../effects/WiredEffectTriggerStacks.java | 5 +++-- 20 files changed, 77 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java index ba2b2bf7..4aa50beb 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java @@ -137,8 +137,6 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - int count; packet.readInt(); @@ -147,6 +145,9 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition { packet.readString(); count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveHabbo.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveHabbo.java index 304eded6..4895462e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveHabbo.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveHabbo.java @@ -154,14 +154,15 @@ public class WiredConditionFurniHaveHabbo extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - int count; packet.readInt(); packet.readString(); count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniTypeMatch.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniTypeMatch.java index 06e3cbaa..d2a2f573 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniTypeMatch.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniTypeMatch.java @@ -104,12 +104,13 @@ public class WiredConditionFurniTypeMatch extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - packet.readInt(); packet.readString(); int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java index 73371bab..27f1ed0e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java @@ -67,8 +67,6 @@ public class WiredConditionMatchStatePosition extends InteractionWiredCondition @Override public boolean saveData(ClientMessage packet) { - this.settings.clear(); - int count; packet.readInt(); @@ -84,6 +82,9 @@ public class WiredConditionMatchStatePosition extends InteractionWiredCondition return true; count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.settings.clear(); for (int i = 0; i < count; i++) { int itemId = packet.readInt(); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java index c64fb8b5..7e666b33 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java @@ -123,16 +123,16 @@ public class WiredConditionNotFurniHaveFurni extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - - int count; packet.readInt(); this.all = packet.readInt() == 1; packet.readString(); - count = packet.readInt(); + int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveHabbo.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveHabbo.java index ef61c69c..abc5c559 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveHabbo.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveHabbo.java @@ -154,14 +154,14 @@ public class WiredConditionNotFurniHaveHabbo extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - - int count; packet.readInt(); packet.readString(); - count = packet.readInt(); + int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniTypeMatch.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniTypeMatch.java index 95b5d8e3..754aed77 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniTypeMatch.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniTypeMatch.java @@ -103,12 +103,13 @@ public class WiredConditionNotFurniTypeMatch extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - packet.readInt(); packet.readString(); int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotMatchStatePosition.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotMatchStatePosition.java index 2f0dc9d4..698cd2c3 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotMatchStatePosition.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotMatchStatePosition.java @@ -142,9 +142,6 @@ public class WiredConditionNotMatchStatePosition extends InteractionWiredConditi @Override public boolean saveData(ClientMessage packet) { - this.settings.clear(); - - int count; packet.readInt(); this.state = packet.readInt() == 1; @@ -158,7 +155,10 @@ public class WiredConditionNotMatchStatePosition extends InteractionWiredConditi if (room == null) return true; - count = packet.readInt(); + int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.settings.clear(); for (int i = 0; i < count; i++) { int itemId = packet.readInt(); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotTriggerOnFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotTriggerOnFurni.java index eb853f9c..65dc97f1 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotTriggerOnFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotTriggerOnFurni.java @@ -105,12 +105,13 @@ public class WiredConditionNotTriggerOnFurni extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); packet.readInt(); packet.readString(); int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTriggerOnFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTriggerOnFurni.java index 5cb27d1c..9d373e56 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTriggerOnFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTriggerOnFurni.java @@ -108,12 +108,13 @@ public class WiredConditionTriggerOnFurni extends InteractionWiredCondition { @Override public boolean saveData(ClientMessage packet) { - this.items.clear(); - packet.readInt(); packet.readString(); int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTeleport.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTeleport.java index b88e7877..9fe3e8ef 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTeleport.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTeleport.java @@ -114,9 +114,10 @@ public class WiredEffectBotTeleport extends InteractionWiredEffect { packet.readInt(); this.botName = packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt())); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotWalkToFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotWalkToFurni.java index 1b0efe08..3b5543b7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotWalkToFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotWalkToFurni.java @@ -68,9 +68,10 @@ public class WiredEffectBotWalkToFurni extends InteractionWiredEffect { packet.readInt(); this.botName = packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt())); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java index bbb44819..7ac99dae 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java @@ -162,14 +162,17 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect { @Override public boolean saveData(ClientMessage packet, GameClient gameClient) { - this.items.clear(); packet.readInt(); this.startRotation = RoomUserRotation.fromValue(packet.readInt()); this.rotateAction = packet.readInt(); packet.readString(); - int furniCount = packet.readInt(); - for (int i = 0; i < furniCount; i++) { + int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); + + for (int i = 0; i < count; i++) { HabboItem item = gameClient.getHabbo().getHabboInfo().getCurrentRoom().getHabboItem(packet.readInt()); if (item != null) { diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java index 6b337571..251bc2a5 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java @@ -244,11 +244,6 @@ public class WiredEffectMatchFurni extends InteractionWiredEffect { @Override public boolean saveData(ClientMessage packet, GameClient gameClient) { - this.settings.clear(); - - //packet.readInt(); - - int count; packet.readInt(); this.state = packet.readInt() == 1; @@ -262,7 +257,10 @@ public class WiredEffectMatchFurni extends InteractionWiredEffect { if (room == null) return true; - count = packet.readInt(); + int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.settings.clear(); for (int i = 0; i < count; i++) { int itemId = packet.readInt(); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniAway.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniAway.java index 556e56c3..23414d94 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniAway.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniAway.java @@ -186,9 +186,10 @@ public class WiredEffectMoveFurniAway extends InteractionWiredEffect { packet.readInt(); packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt())); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTowards.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTowards.java index 849a59b2..95125c68 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTowards.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTowards.java @@ -304,9 +304,10 @@ public class WiredEffectMoveFurniTowards extends InteractionWiredEffect { packet.readInt(); packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt())); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveRotateFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveRotateFurni.java index ae37a0f3..06192a4e 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveRotateFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveRotateFurni.java @@ -17,6 +17,8 @@ import com.eu.habbo.messages.outgoing.rooms.items.FloorItemOnRollerComposer; import com.eu.habbo.messages.outgoing.rooms.items.FloorItemUpdateComposer; import gnu.trove.set.hash.THashSet; import org.apache.commons.math3.util.Pair; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.sql.ResultSet; @@ -24,6 +26,10 @@ import java.sql.SQLException; import java.util.ArrayList; public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { + + + private static final Logger LOGGER = LoggerFactory.getLogger(WiredEffectMoveRotateFurni.class); + public static final WiredEffectType type = WiredEffectType.MOVE_ROTATE; private final THashSet items = new THashSet<>(WiredHandler.MAXIMUM_FURNI_SELECTION / 2); private int direction; @@ -40,7 +46,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { @Override public boolean execute(RoomUnit roomUnit, Room room, Object[] stuff) { // remove items that are no longer in the room - this.items.removeIf( item -> Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(item.getId()) == null); + this.items.removeIf(item -> Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(item.getId()) == null); THashSet tilesToUpdate = new THashSet<>(Math.min(this.items.size(), 10)); @@ -53,10 +59,9 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { //Verify if rotation result in a valid position FurnitureMovementError rotateError = room.furnitureFitsAt(room.getLayout().getTile(item.getX(), item.getY()), item, newRotation); if (item.getRotation() != newRotation && (rotateError.equals(FurnitureMovementError.TILE_HAS_HABBOS) || rotateError.equals(FurnitureMovementError.TILE_HAS_PETS) || - rotateError.equals(FurnitureMovementError.TILE_HAS_BOTS) || rotateError.equals(FurnitureMovementError.NONE))) - { + rotateError.equals(FurnitureMovementError.TILE_HAS_BOTS) || rotateError.equals(FurnitureMovementError.NONE))) { item.setRotation(newRotation); - if(this.direction == 0) { + if (this.direction == 0) { tilesToUpdate.addAll(room.getLayout().getTilesAt(room.getLayout().getTile(item.getX(), item.getY()), item.getBaseItem().getWidth(), item.getBaseItem().getLength(), item.getRotation())); room.sendComposer(new FloorItemUpdateComposer(item).compose()); for (RoomTile t : tilesToUpdate) { @@ -135,7 +140,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { } if (validMove) { - if(this.rotation > 0) { + if (this.rotation > 0) { item.setX(newTile.x); item.setY(newTile.y); item.setZ(item.getZ() + offset); @@ -144,8 +149,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { room.updateHabbosAt(t.x, t.y); room.updateBotsAt(t.x, t.y); } - } - else { + } else { room.sendComposer(new FloorItemOnRollerComposer(item, null, newTile, offset, room).compose()); } } @@ -268,6 +272,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { packet.readString(); int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count", 5)) return false; this.items.clear(); for (int i = 0; i < count; i++) { @@ -282,6 +287,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { /** * Returns a new rotation for an item based on the wired options + * * @param item * @return new rotation */ @@ -306,6 +312,7 @@ public class WiredEffectMoveRotateFurni extends InteractionWiredEffect { /** * Returns the direction of movement based on the wired settings + * * @return direction */ private RoomUserRotation getMovementDirection() { diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTeleport.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTeleport.java index ebd7254a..652f3780 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTeleport.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTeleport.java @@ -131,9 +131,10 @@ public class WiredEffectTeleport extends InteractionWiredEffect { packet.readInt(); packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt())); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectToggleFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectToggleFurni.java index e602c042..d3025363 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectToggleFurni.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectToggleFurni.java @@ -96,9 +96,10 @@ public class WiredEffectToggleFurni extends InteractionWiredEffect { packet.readInt(); packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { HabboItem item = Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt()); diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTriggerStacks.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTriggerStacks.java index 41a38dd8..d58b6a84 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTriggerStacks.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectTriggerStacks.java @@ -87,9 +87,10 @@ public class WiredEffectTriggerStacks extends InteractionWiredEffect { packet.readInt(); packet.readString(); - this.items.clear(); - int count = packet.readInt(); + if (count > Emulator.getConfig().getInt("hotel.wired.furni.selection.count")) return false; + + this.items.clear(); for (int i = 0; i < count; i++) { this.items.add(Emulator.getGameEnvironment().getRoomManager().getRoom(this.getRoomId()).getHabboItem(packet.readInt()));