From 7ae284df567ca0081dc0168f067f1c6c507a0ac8 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Tue, 16 Jun 2020 16:59:35 -0700 Subject: [PATCH] Added kick-reasons --- src/main/java/us/ajg0702/queue/Main.java | 27 +++++++++++++++++++ .../java/us/ajg0702/queue/spigot/Main.java | 5 ++++ src/main/resources/config.yml | 11 ++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java index de83cfe..58cc4f0 100644 --- a/src/main/java/us/ajg0702/queue/Main.java +++ b/src/main/java/us/ajg0702/queue/Main.java @@ -11,6 +11,7 @@ import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.PlayerDisconnectEvent; import net.md_5.bungee.api.event.PluginMessageEvent; +import net.md_5.bungee.api.event.ServerKickEvent; import net.md_5.bungee.api.event.ServerSwitchEvent; import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.api.plugin.Plugin; @@ -134,6 +135,29 @@ public class Main extends Plugin implements Listener { } } + @EventHandler + public void onFailedMove(ServerKickEvent e) { + ProxiedPlayer p = e.getPlayer(); + Server server = man.findPlayerInQueue(p); + if(server == null) return; + if(!(e.getKickedFrom().equals(server.getInfo()))) return; + if(server.getQueue().indexOf(p) != 0) return; + List kickreasons = config.getStringList("kick-reasons"); + boolean hasReason = false; + //getLogger().info(e.getKickReasonComponent()); + for(String reason : kickreasons) { + for(BaseComponent b : e.getKickReasonComponent()) { + if(b.toPlainText().toLowerCase().contains(reason)) { + hasReason = true; + break; + } + } + if(hasReason) break; + } + if(!hasReason) return; + server.getQueue().remove(p); + } + @EventHandler public void onMessage(PluginMessageEvent e) { @@ -168,6 +192,9 @@ public class Main extends Plugin implements Listener { } BungeeUtils.sendCustomData(player, "positionof", pos); } + /*if(subchannel.equals("whitelist")) { + String data = in.readUTF(); + }*/ } catch (IOException e1) { getLogger().warning("An error occured while reading data from spigot side:"); diff --git a/src/main/java/us/ajg0702/queue/spigot/Main.java b/src/main/java/us/ajg0702/queue/spigot/Main.java index 6b77837..772da94 100644 --- a/src/main/java/us/ajg0702/queue/spigot/Main.java +++ b/src/main/java/us/ajg0702/queue/spigot/Main.java @@ -37,6 +37,11 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener { } getLogger().info("Spigot side enabled! v"+getDescription().getVersion()); + /*Bukkit.getScheduler().runTaskTimer(this, new Runnable() { + public void run() { + sendMessage + } + }, 0, 2*20);*/ } @Override diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 5b70f3a..99d5ce1 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,5 +1,5 @@ # Dont touch this number please -config-version: 4 +config-version: 5 # The time the server will wait between sending people in the queue # Default: 5 @@ -20,4 +20,11 @@ queue-servers: # Should the plugin send an actionbar to the player? # Requires this plugin to be installed on the server the player is on for it to work -send-actionbar: true \ No newline at end of file +send-actionbar: true + +# What kick reasons should cause the player to be removed from the queue? +# For example, if one of the below kick-reasons is 'banned' and the player gets kicked when trying to connect to +# a server in a queue with a message saying "You are banned from this server!" then it will kick them from the queue too. +kick-reasons: +- 'banned' +- 'blacklisted' \ No newline at end of file