From bfe4403c94b889b412e46d82b28028912f480850 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 21 May 2021 12:21:29 -0700 Subject: [PATCH] Fix error when player leaves after getting kicked, and message for auto queue --- src/main/java/us/ajg0702/queue/Main.java | 9 +++++++-- src/main/java/us/ajg0702/queue/Manager.java | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java index 3eaab6a..98c815b 100644 --- a/src/main/java/us/ajg0702/queue/Main.java +++ b/src/main/java/us/ajg0702/queue/Main.java @@ -119,6 +119,7 @@ public class Main extends Plugin implements Listener { d.put("commands.listqueues.format", "{COLOR}{NAME}&7: {COUNT} queued"); d.put("max-tries-reached", "&cUnable to connect to {SERVER}. Max retries reached."); + d.put("auto-queued", "&aYou've been auto-queued for {SERVER} because you were kicked."); msgs = BungeeMessages.getInstance(this, d); @@ -215,7 +216,7 @@ public class Main extends Plugin implements Listener { @EventHandler public void onFailedMove(ServerKickEvent e) { - ProxiedPlayer p = e.getPlayer(); + final ProxiedPlayer p = e.getPlayer(); List queuedServers = man.findPlayerInQueue(p); @@ -236,7 +237,11 @@ public class Main extends Plugin implements Listener { } if(shouldqueue || reasons.isEmpty()) { plugin.getProxy().getScheduler().schedule(this, () -> { - man.addToQueue(p, e.getKickedFrom().getName()); + if(!p.isConnected()) return; + + String toName = e.getKickedFrom().getName(); + p.sendMessage(msgs.getBC("auto-queued", "SERVER:"+toName)); + man.addToQueue(p, toName); }, (long) (config.getDouble("auto-add-to-queue-on-kick-delay")*1000), TimeUnit.MILLISECONDS); } diff --git a/src/main/java/us/ajg0702/queue/Manager.java b/src/main/java/us/ajg0702/queue/Manager.java index 208d1b8..95ec37c 100644 --- a/src/main/java/us/ajg0702/queue/Manager.java +++ b/src/main/java/us/ajg0702/queue/Manager.java @@ -615,11 +615,13 @@ public class Manager { * @param s The name of the server */ public void addToQueue(ProxiedPlayer p, String s) { + if(p == null || s == null) return; QueueServer server = findServer(s); if(server == null) { p.sendMessage(msgs.getBC("errors.server-not-exist")); return; } + if(!p.isConnected()) return; if(pl.config.getBoolean("joinfrom-server-permission") && !p.hasPermission("ajqueue.joinfrom."+p.getServer().getInfo().getName())) { p.sendMessage(msgs.getBC("errors.deny-joining-from-server"));