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 2cbe93b4..965ed802 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 @@ -42,7 +42,7 @@ public class WiredEffectTeleport extends InteractionWiredEffect { } public static void teleportUnitToTile(RoomUnit roomUnit, RoomTile tile) { - if (roomUnit == null || tile == null) + if (roomUnit == null || tile == null || roomUnit.isWiredTeleporting) return; Room room = roomUnit.getRoom(); diff --git a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java index a876a4d4..b85f8946 100644 --- a/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java +++ b/src/main/java/com/eu/habbo/habbohotel/rooms/RoomUnit.java @@ -30,6 +30,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; public class RoomUnit { + public boolean isWiredTeleporting = false; private final ConcurrentHashMap status; private final THashMap cacheable; public boolean canRotate = true; diff --git a/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java b/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java index a88ff69f..cc0c9ac7 100644 --- a/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java +++ b/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java @@ -194,19 +194,16 @@ public class WiredHandler { if (effect != null && effect.canExecute(millis)) { executed = true; if (!effect.requiresTriggeringUser() || (roomUnit != null && effect.requiresTriggeringUser())) { - Emulator.getThreading().run(new Runnable() { - @Override - public void run() { - if (room.isLoaded()) { - try { - if (!effect.execute(roomUnit, room, stuff)) return; - effect.setCooldown(millis); - } catch (Exception e) { - Emulator.getLogging().logErrorLine(e); - } - - effect.activateBox(room); + Emulator.getThreading().run(() -> { + if (room.isLoaded()) { + try { + if (!effect.execute(roomUnit, room, stuff)) return; + effect.setCooldown(millis); + } catch (Exception e) { + Emulator.getLogging().logErrorLine(e); } + + effect.activateBox(room); } }, effect.getDelay() * 500); } diff --git a/src/main/java/com/eu/habbo/threading/runnables/RoomUnitTeleport.java b/src/main/java/com/eu/habbo/threading/runnables/RoomUnitTeleport.java index 3a255ffb..f71173c3 100644 --- a/src/main/java/com/eu/habbo/threading/runnables/RoomUnitTeleport.java +++ b/src/main/java/com/eu/habbo/threading/runnables/RoomUnitTeleport.java @@ -27,6 +27,7 @@ public class RoomUnitTeleport implements Runnable { this.y = y; this.z = z; this.newEffect = newEffect; + roomUnit.isWiredTeleporting = true; } @Override @@ -53,6 +54,7 @@ public class RoomUnitTeleport implements Runnable { ServerMessage teleportMessage = new RoomUnitOnRollerComposer(this.roomUnit, t, this.room).compose(); this.roomUnit.setLocation(t); this.room.sendComposer(teleportMessage); + roomUnit.isWiredTeleporting = false; this.room.updateHabbosAt(t.x, t.y); this.room.updateBotsAt(t.x, t.y);