make bungee events non-blocking

This commit is contained in:
ajgeiss0702
2022-04-21 11:16:01 -07:00
parent e0fbe81eda
commit 0c4911eb60
@@ -124,25 +124,32 @@ public class BungeeQueue extends Plugin implements Listener, Implementation {
@EventHandler @EventHandler
public void onServerSwitch(ServerSwitchEvent e) { 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 @EventHandler
public void onLeave(PlayerDisconnectEvent e) { 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 @EventHandler
public void onKick(ServerKickEvent e) { public void onKick(ServerKickEvent e) {
if(!e.getPlayer().isConnected()) return; if(!e.getPlayer().isConnected()) return;
if(e.getPlayer().getServer() == null) return; // if the player is kicked on initial join, we dont care if(e.getPlayer().getServer() == null) return; // if the player is kicked on initial join, we dont care
Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent()); ProxyServer.getInstance().getScheduler().runAsync(this, () -> {
main.getEventHandler().onServerKick( Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent());
new BungeePlayer(e.getPlayer()), main.getEventHandler().onServerKick(
new BungeeServer(e.getKickedFrom()), new BungeePlayer(e.getPlayer()),
reason, new BungeeServer(e.getKickedFrom()),
false reason,
); false
);
});
} }
@Override @Override