From f14fd9f692d94cf35e612275f49971f8606cff09 Mon Sep 17 00:00:00 2001 From: Sekwah Date: Wed, 23 Sep 2020 02:00:49 +0100 Subject: [PATCH] Fixed for the new more reliable event --- .../bukkit/listeners/Listeners.java | 14 +++++++------- .../bukkit/listeners/PluginMessageReceiver.java | 14 +++++++++----- .../bungee/listener/EventListener.java | 12 ++++++++---- .../bungee/listener/PluginMessageReceiver.java | 4 +++- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/sekwah/advancedportals/bukkit/listeners/Listeners.java b/src/main/java/com/sekwah/advancedportals/bukkit/listeners/Listeners.java index 7169cae..13a41cb 100644 --- a/src/main/java/com/sekwah/advancedportals/bukkit/listeners/Listeners.java +++ b/src/main/java/com/sekwah/advancedportals/bukkit/listeners/Listeners.java @@ -90,19 +90,19 @@ public class Listeners implements Listener { @EventHandler public void onJoinEvent(PlayerJoinEvent event) { Player player = event.getPlayer(); - + Portal.joinCooldown.put(player.getName(), System.currentTimeMillis()); - + String uuid = player.getUniqueId().toString(); - - if (plugin.PlayerDestiMap.containsKey(uuid)) { + + /*if (plugin.PlayerDestiMap.containsKey(uuid)) { plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { Destination.warp(player, plugin.PlayerDestiMap.get(uuid), false, true); plugin.PlayerDestiMap.remove(uuid); - + }, 1L); - - } + + }*/ } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) diff --git a/src/main/java/com/sekwah/advancedportals/bukkit/listeners/PluginMessageReceiver.java b/src/main/java/com/sekwah/advancedportals/bukkit/listeners/PluginMessageReceiver.java index 8ad7ea1..62f7cb4 100644 --- a/src/main/java/com/sekwah/advancedportals/bukkit/listeners/PluginMessageReceiver.java +++ b/src/main/java/com/sekwah/advancedportals/bukkit/listeners/PluginMessageReceiver.java @@ -32,23 +32,27 @@ public class PluginMessageReceiver implements PluginMessageListener { if (subchannel.equals(BungeeMessages.SERVER_DESTI)) { String targetDestination = in.readUTF(); String bungeeUUID = in.readUTF(); - + Player targetPlayer = this.plugin.getServer().getPlayer(UUID.fromString(bungeeUUID)); - if (targetPlayer != null) { + + Player finalTargetPlayer = targetPlayer; + Destination.warp(finalTargetPlayer, targetDestination, false, true); + + /*if (targetPlayer != null) { Player finalTargetPlayer = targetPlayer; Destination.warp(finalTargetPlayer, targetDestination, false, true); } else { plugin.PlayerDestiMap.put(bungeeUUID, targetDestination); - + plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> plugin.PlayerDestiMap.remove(bungeeUUID), 20L*10 ); - } - + }*/ + } } diff --git a/src/main/java/com/sekwah/advancedportals/bungee/listener/EventListener.java b/src/main/java/com/sekwah/advancedportals/bungee/listener/EventListener.java index c3aabba..cc16eb1 100644 --- a/src/main/java/com/sekwah/advancedportals/bungee/listener/EventListener.java +++ b/src/main/java/com/sekwah/advancedportals/bungee/listener/EventListener.java @@ -8,6 +8,9 @@ import net.md_5.bungee.api.event.ServerConnectedEvent; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.event.EventHandler; +import java.util.Map; +import java.util.Set; + public class EventListener implements Listener { private AdvancedPortalsPlugin plugin; @@ -17,13 +20,14 @@ public class EventListener implements Listener { public void onServerConnected(ServerConnectedEvent event) { String uuid = event.getPlayer().getUniqueId().toString(); - if (plugin.PlayerDestiMap.containsKey(uuid)) { - String[] val = plugin.PlayerDestiMap.get(uuid); + String[] val = plugin.PlayerDestiMap.get(uuid); + + if (val != null) { // key: UUID (string) // value: [0] targetServer, [1] targetDestination, [2] onlineUUID - if (event.getPlayer().getServer().getInfo().getName().equalsIgnoreCase(val[0])) { + if (event.getServer().getInfo().getName().equalsIgnoreCase(val[0])) { ByteArrayDataOutput out = ByteStreams.newDataOutput(); @@ -31,7 +35,7 @@ public class EventListener implements Listener { out.writeUTF(val[1]); out.writeUTF(val[2]); - event.getPlayer().getServer().sendData(plugin.channelName, out.toByteArray()); + event.getServer().sendData(plugin.channelName, out.toByteArray()); } } } diff --git a/src/main/java/com/sekwah/advancedportals/bungee/listener/PluginMessageReceiver.java b/src/main/java/com/sekwah/advancedportals/bungee/listener/PluginMessageReceiver.java index 33de4a7..b00dfb6 100644 --- a/src/main/java/com/sekwah/advancedportals/bungee/listener/PluginMessageReceiver.java +++ b/src/main/java/com/sekwah/advancedportals/bungee/listener/PluginMessageReceiver.java @@ -32,7 +32,9 @@ public class PluginMessageReceiver implements Listener { String targetUUID = in.readUTF(); plugin.PlayerDestiMap.put(targetUUID, new String[]{targetServer, targetDestination, targetUUID}); - plugin.PlayerDestiMap.remove(targetUUID); + + plugin.getProxy().getScheduler().schedule(plugin, () -> plugin.PlayerDestiMap.remove(targetUUID), + 10, TimeUnit.SECONDS); } else if (subChannel.equalsIgnoreCase(BungeeMessages.BUNGEE_COMMAND)) { String command = in.readUTF();