Fix error when player leaves after getting kicked, and message for auto queue

This commit is contained in:
ajgeiss0702
2021-05-21 12:21:29 -07:00
parent 404bd5b77b
commit bfe4403c94
2 changed files with 9 additions and 2 deletions
+7 -2
View File
@@ -119,6 +119,7 @@ public class Main extends Plugin implements Listener {
d.put("commands.listqueues.format", "{COLOR}{NAME}&7: {COUNT} queued"); 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("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); msgs = BungeeMessages.getInstance(this, d);
@@ -215,7 +216,7 @@ public class Main extends Plugin implements Listener {
@EventHandler @EventHandler
public void onFailedMove(ServerKickEvent e) { public void onFailedMove(ServerKickEvent e) {
ProxiedPlayer p = e.getPlayer(); final ProxiedPlayer p = e.getPlayer();
List<QueueServer> queuedServers = man.findPlayerInQueue(p); List<QueueServer> queuedServers = man.findPlayerInQueue(p);
@@ -236,7 +237,11 @@ public class Main extends Plugin implements Listener {
} }
if(shouldqueue || reasons.isEmpty()) { if(shouldqueue || reasons.isEmpty()) {
plugin.getProxy().getScheduler().schedule(this, () -> { 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); }, (long) (config.getDouble("auto-add-to-queue-on-kick-delay")*1000), TimeUnit.MILLISECONDS);
} }
@@ -615,11 +615,13 @@ public class Manager {
* @param s The name of the server * @param s The name of the server
*/ */
public void addToQueue(ProxiedPlayer p, String s) { public void addToQueue(ProxiedPlayer p, String s) {
if(p == null || s == null) return;
QueueServer server = findServer(s); QueueServer server = findServer(s);
if(server == null) { if(server == null) {
p.sendMessage(msgs.getBC("errors.server-not-exist")); p.sendMessage(msgs.getBC("errors.server-not-exist"));
return; return;
} }
if(!p.isConnected()) return;
if(pl.config.getBoolean("joinfrom-server-permission") && !p.hasPermission("ajqueue.joinfrom."+p.getServer().getInfo().getName())) { if(pl.config.getBoolean("joinfrom-server-permission") && !p.hasPermission("ajqueue.joinfrom."+p.getServer().getInfo().getName())) {
p.sendMessage(msgs.getBC("errors.deny-joining-from-server")); p.sendMessage(msgs.getBC("errors.deny-joining-from-server"));