From 067043e82cef8172eaeb1114f697957f1eed398c Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Tue, 16 Feb 2021 18:03:33 -0700 Subject: [PATCH] QueueScoreboardActivator event --- src/main/java/us/ajg0702/queue/Manager.java | 23 +++++++++++++++++++ .../java/us/ajg0702/queue/spigot/Main.java | 12 +++++++--- ...ent.java => QueueScoreboardActivator.java} | 4 ++-- 3 files changed, 34 insertions(+), 5 deletions(-) rename src/main/java/us/ajg0702/queue/spigot/{QueueActionbarUpdateEvent.java => QueueScoreboardActivator.java} (82%) diff --git a/src/main/java/us/ajg0702/queue/Manager.java b/src/main/java/us/ajg0702/queue/Manager.java index 7698e3e..7abfa75 100644 --- a/src/main/java/us/ajg0702/queue/Manager.java +++ b/src/main/java/us/ajg0702/queue/Manager.java @@ -80,6 +80,7 @@ public class Manager { int messagerId = -1; int actionbarId = -1; int srvRefId = -1; + int queueEventId = -1; /** * Clears all intervals and re-makes them */ @@ -114,6 +115,18 @@ public class Manager { } catch(IllegalArgumentException e) {} srvRefId = -1; } + if(queueEventId != -1) { + try { + pl.getProxy().getScheduler().cancel(queueEventId); + } catch(IllegalArgumentException e) {} + queueEventId = -1; + } + + queueEventId = pl.getProxy().getScheduler().schedule(pl, new Runnable() { + public void run() { + sendQueueEvents(); + } + }, 2, 2, TimeUnit.SECONDS).getId(); sendId = pl.getProxy().getScheduler().schedule(pl, new Runnable() { public void run() { @@ -317,6 +330,15 @@ public class Manager { } + + public void sendQueueEvents() { + for(QueueServer s : servers) { + for(ProxiedPlayer p : s.getQueue()) { + BungeeUtils.sendCustomData(p, "inqueueevent", "true"); + } + } + } + /** * Sends the message to the player updating them on their position in the queue * along with their time remaining @@ -684,6 +706,7 @@ public class Manager { BungeeUtils.sendCustomData(p, "positionof", len+""); BungeeUtils.sendCustomData(p, "queuename", pl.aliases.getAlias(s)); BungeeUtils.sendCustomData(p, "inqueue", "true"); + BungeeUtils.sendCustomData(p, "inqueueevent", "true"); } /** diff --git a/src/main/java/us/ajg0702/queue/spigot/Main.java b/src/main/java/us/ajg0702/queue/spigot/Main.java index 23ed97e..6fce5d1 100644 --- a/src/main/java/us/ajg0702/queue/spigot/Main.java +++ b/src/main/java/us/ajg0702/queue/spigot/Main.java @@ -10,7 +10,6 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.messaging.PluginMessageListener; -import com.google.common.collect.Iterables; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; @@ -80,10 +79,17 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener { //getLogger().info("recieved actionbar for "+player.getName()+": "+text); VersionSupport.sendActionBar(p, text); - QueueActionbarUpdateEvent e = new QueueActionbarUpdateEvent(p); - Bukkit.getPluginManager().callEvent(e); + /*QueueActionbarUpdateEvent e = new QueueActionbarUpdateEvent(p); + Bukkit.getPluginManager().callEvent(e);*/ return; } + if(subchannel.equals("inqueueevent")) { + String playername = in.readUTF(); + Player p = Bukkit.getPlayer(playername); + if(p == null) return; + QueueScoreboardActivator e = new QueueScoreboardActivator(p); + Bukkit.getPluginManager().callEvent(e); + } if(subchannel.equals("queuename") && papi) { String playername = in.readUTF(); Player p = Bukkit.getPlayer(playername); diff --git a/src/main/java/us/ajg0702/queue/spigot/QueueActionbarUpdateEvent.java b/src/main/java/us/ajg0702/queue/spigot/QueueScoreboardActivator.java similarity index 82% rename from src/main/java/us/ajg0702/queue/spigot/QueueActionbarUpdateEvent.java rename to src/main/java/us/ajg0702/queue/spigot/QueueScoreboardActivator.java index c0945f2..9c621b0 100644 --- a/src/main/java/us/ajg0702/queue/spigot/QueueActionbarUpdateEvent.java +++ b/src/main/java/us/ajg0702/queue/spigot/QueueScoreboardActivator.java @@ -4,7 +4,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -public class QueueActionbarUpdateEvent extends Event { +public class QueueScoreboardActivator extends Event { private static final HandlerList HANDLERS = new HandlerList(); public HandlerList getHandlers() { @@ -17,7 +17,7 @@ public class QueueActionbarUpdateEvent extends Event { Player ply; - public QueueActionbarUpdateEvent(Player p) { + public QueueScoreboardActivator(Player p) { this.ply = p; }