From 0c4911eb60a7ff929856eba66074fbfae10243b2 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Thu, 21 Apr 2022 11:16:01 -0700 Subject: [PATCH] make bungee events non-blocking --- .../platforms/bungeecord/BungeeQueue.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java index e548178..40f1a79 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/BungeeQueue.java @@ -124,25 +124,32 @@ public class BungeeQueue extends Plugin implements Listener, Implementation { @EventHandler public void onServerSwitch(ServerSwitchEvent e) { - main.getEventHandler().onPlayerJoinServer(new BungeePlayer(e.getPlayer())); + ProxyServer.getInstance().getScheduler().runAsync(this, () -> + main.getEventHandler().onPlayerJoinServer(new BungeePlayer(e.getPlayer())) + ); + } @EventHandler public void onLeave(PlayerDisconnectEvent e) { - main.getEventHandler().onPlayerLeave(new BungeePlayer(e.getPlayer())); + ProxyServer.getInstance().getScheduler().runAsync(this, () -> + main.getEventHandler().onPlayerLeave(new BungeePlayer(e.getPlayer())) + ); } @EventHandler public void onKick(ServerKickEvent e) { if(!e.getPlayer().isConnected()) return; if(e.getPlayer().getServer() == null) return; // if the player is kicked on initial join, we dont care - Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent()); - main.getEventHandler().onServerKick( - new BungeePlayer(e.getPlayer()), - new BungeeServer(e.getKickedFrom()), - reason, - false - ); + ProxyServer.getInstance().getScheduler().runAsync(this, () -> { + Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent()); + main.getEventHandler().onServerKick( + new BungeePlayer(e.getPlayer()), + new BungeeServer(e.getKickedFrom()), + reason, + false + ); + }); } @Override