Send teleportation cancellation message immediately on movement, rather than after the timer has finished. This fixes PS-33.

This commit is contained in:
Alexander Söderberg 2020-07-09 16:45:25 +02:00
parent 904f5485ab
commit 6b07f38cff
No known key found for this signature in database
GPG key ID: C0207FF7EA146678
2 changed files with 7 additions and 5 deletions

View file

@ -822,7 +822,9 @@ public class PlayerEvents extends PlotListener implements Listener {
Player player = event.getPlayer();
BukkitPlayer pp = BukkitUtil.getPlayer(player);
// Cancel teleport
TaskManager.TELEPORT_QUEUE.remove(pp.getName());
if (TaskManager.TELEPORT_QUEUE.remove(pp.getName())) {
MainUtil.sendMessage(pp, Captions.TELEPORT_FAILED);
}
// Set last location
Location location = BukkitUtil.getLocation(to);
pp.setMeta(PlotPlayer.META_LOCATION, location);
@ -882,7 +884,9 @@ public class PlayerEvents extends PlotListener implements Listener {
Player player = event.getPlayer();
BukkitPlayer pp = BukkitUtil.getPlayer(player);
// Cancel teleport
TaskManager.TELEPORT_QUEUE.remove(pp.getName());
if (TaskManager.TELEPORT_QUEUE.remove(pp.getName())) {
MainUtil.sendMessage(pp, Captions.TELEPORT_FAILED);
}
// Set last location
Location location = BukkitUtil.getLocation(to);
pp.setMeta(PlotPlayer.META_LOCATION, location);

View file

@ -3010,11 +3010,9 @@ public class Plot {
final String name = player.getName();
TaskManager.TELEPORT_QUEUE.add(name);
TaskManager.runTaskLater(() -> {
if (!TaskManager.TELEPORT_QUEUE.contains(name)) {
MainUtil.sendMessage(player, Captions.TELEPORT_FAILED);
if (!TaskManager.TELEPORT_QUEUE.remove(name)) {
return;
}
TaskManager.TELEPORT_QUEUE.remove(name);
if (player.isOnline()) {
MainUtil.sendMessage(player, Captions.TELEPORTED_TO_PLOT);
player.teleport(location, cause);