From 892900af33a6fd232ff66f251bac8e8641dc550f Mon Sep 17 00:00:00 2001 From: Alejandro <25-alejandro@users.noreply.git.krews.org> Date: Sun, 26 May 2019 21:08:03 +0300 Subject: [PATCH] Make teleporters work more like in Habbo --- .../interactions/InteractionTeleport.java | 2 +- .../interactions/InteractionTeleportTile.java | 20 ++++++++----------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleport.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleport.java index 40ac0a73..bae4d4ea 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleport.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleport.java @@ -230,7 +230,7 @@ public class InteractionTeleport extends HabboItem this.roomUnitID = -1; habbo.getRoomUnit().isTeleporting = true; - room.scheduledTasks.add(new TeleportActionOne(this, room, habbo.getClient())); + Emulator.getThreading().run(new TeleportActionOne(this, room, habbo.getClient()), 500); } @Override diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleportTile.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleportTile.java index fa646222..2ed23f67 100644 --- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleportTile.java +++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionTeleportTile.java @@ -36,23 +36,19 @@ public class InteractionTeleportTile extends InteractionTeleport @Override public void onWalkOn(RoomUnit roomUnit, Room room, Object[] objects) throws Exception { - if (roomUnit != null) + if (roomUnit != null && this.canWalkOn(roomUnit, room, objects)) { - RoomTile currentLocation = room.getLayout().getTile(this.getX(), this.getY()); + Habbo habbo = room.getHabbo(roomUnit); - if (roomUnit.getGoal().equals(currentLocation) && this.canWalkOn(roomUnit, room, objects)) + if (habbo != null) { - Habbo habbo = room.getHabbo(roomUnit); + if(!canUseTeleport(habbo.getClient(), room)) + return; - if (habbo != null) + if (!habbo.getRoomUnit().isTeleporting) { - if(!canUseTeleport(habbo.getClient(), room)) - return; - - if (!habbo.getRoomUnit().isTeleporting) - { - this.startTeleport(room, habbo); - } + habbo.getRoomUnit().setGoalLocation(habbo.getRoomUnit().getCurrentLocation()); + this.startTeleport(room, habbo); } } }