Fixed for the new more reliable event

This commit is contained in:
Sekwah 2020-09-23 02:00:49 +01:00
parent 69176c379b
commit f14fd9f692
No known key found for this signature in database
GPG Key ID: C3BE2E6C861A461A
4 changed files with 27 additions and 17 deletions

View File

@ -90,19 +90,19 @@ public class Listeners implements Listener {
@EventHandler @EventHandler
public void onJoinEvent(PlayerJoinEvent event) { public void onJoinEvent(PlayerJoinEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
Portal.joinCooldown.put(player.getName(), System.currentTimeMillis()); Portal.joinCooldown.put(player.getName(), System.currentTimeMillis());
String uuid = player.getUniqueId().toString(); String uuid = player.getUniqueId().toString();
if (plugin.PlayerDestiMap.containsKey(uuid)) { /*if (plugin.PlayerDestiMap.containsKey(uuid)) {
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
Destination.warp(player, plugin.PlayerDestiMap.get(uuid), false, true); Destination.warp(player, plugin.PlayerDestiMap.get(uuid), false, true);
plugin.PlayerDestiMap.remove(uuid); plugin.PlayerDestiMap.remove(uuid);
}, 1L); }, 1L);
} }*/
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)

View File

@ -32,23 +32,27 @@ public class PluginMessageReceiver implements PluginMessageListener {
if (subchannel.equals(BungeeMessages.SERVER_DESTI)) { if (subchannel.equals(BungeeMessages.SERVER_DESTI)) {
String targetDestination = in.readUTF(); String targetDestination = in.readUTF();
String bungeeUUID = in.readUTF(); String bungeeUUID = in.readUTF();
Player targetPlayer = this.plugin.getServer().getPlayer(UUID.fromString(bungeeUUID)); 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; Player finalTargetPlayer = targetPlayer;
Destination.warp(finalTargetPlayer, targetDestination, false, true); Destination.warp(finalTargetPlayer, targetDestination, false, true);
} }
else { else {
plugin.PlayerDestiMap.put(bungeeUUID, targetDestination); plugin.PlayerDestiMap.put(bungeeUUID, targetDestination);
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () ->
plugin.PlayerDestiMap.remove(bungeeUUID), plugin.PlayerDestiMap.remove(bungeeUUID),
20L*10 20L*10
); );
} }*/
} }
} }

View File

@ -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.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler; import net.md_5.bungee.event.EventHandler;
import java.util.Map;
import java.util.Set;
public class EventListener implements Listener { public class EventListener implements Listener {
private AdvancedPortalsPlugin plugin; private AdvancedPortalsPlugin plugin;
@ -17,13 +20,14 @@ public class EventListener implements Listener {
public void onServerConnected(ServerConnectedEvent event) { public void onServerConnected(ServerConnectedEvent event) {
String uuid = event.getPlayer().getUniqueId().toString(); 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) // key: UUID (string)
// value: [0] targetServer, [1] targetDestination, [2] onlineUUID // 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(); ByteArrayDataOutput out = ByteStreams.newDataOutput();
@ -31,7 +35,7 @@ public class EventListener implements Listener {
out.writeUTF(val[1]); out.writeUTF(val[1]);
out.writeUTF(val[2]); out.writeUTF(val[2]);
event.getPlayer().getServer().sendData(plugin.channelName, out.toByteArray()); event.getServer().sendData(plugin.channelName, out.toByteArray());
} }
} }
} }

View File

@ -32,7 +32,9 @@ public class PluginMessageReceiver implements Listener {
String targetUUID = in.readUTF(); String targetUUID = in.readUTF();
plugin.PlayerDestiMap.put(targetUUID, new String[]{targetServer, targetDestination, targetUUID}); 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)) { else if (subChannel.equalsIgnoreCase(BungeeMessages.BUNGEE_COMMAND)) {
String command = in.readUTF(); String command = in.readUTF();