mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2025-01-18 23:46:28 +01:00
Fix issue with WiredEffectTeleport. Credits to Beny.
This commit is contained in:
parent
aec2626296
commit
43f0e54209
@ -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();
|
||||
|
@ -30,6 +30,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
public class RoomUnit {
|
||||
public boolean isWiredTeleporting = false;
|
||||
private final ConcurrentHashMap<RoomUnitStatus, String> status;
|
||||
private final THashMap<String, Object> cacheable;
|
||||
public boolean canRotate = true;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user