From 6feabfc10afaa939f84f1be6c460f5fa2f353ff9 Mon Sep 17 00:00:00 2001 From: Chip <65827213+ChipmunkMC@users.noreply.github.com> Date: Sat, 24 Dec 2022 09:43:33 -0500 Subject: [PATCH] Implement plugins as event listeners --- .../land/chipmunk/chipmunkbot/Client.java | 2 ++ .../chipmunkbot/plugins/PlayerListPlugin.java | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkbot/Client.java b/src/main/java/land/chipmunk/chipmunkbot/Client.java index 8b6d906..4e4ca98 100644 --- a/src/main/java/land/chipmunk/chipmunkbot/Client.java +++ b/src/main/java/land/chipmunk/chipmunkbot/Client.java @@ -5,6 +5,7 @@ import com.github.steveice10.mc.protocol.MinecraftProtocol; import com.github.steveice10.packetlib.ProxyInfo; import com.github.steveice10.packetlib.Session; import com.github.steveice10.packetlib.tcp.TcpClientSession; +import com.github.steveice10.packetlib.event.session.SessionListener; import java.util.Map; import java.util.HashMap; import java.lang.reflect.Constructor; @@ -28,6 +29,7 @@ public class Client { try { Plugin plugin = pluginClass.newInstance(); plugin.inject(this, null); + if (plugin instanceof SessionListener) session.addListener((SessionListener) plugin); plugins.put(plugin.id(), plugin); } catch (Exception ignored) { } diff --git a/src/main/java/land/chipmunk/chipmunkbot/plugins/PlayerListPlugin.java b/src/main/java/land/chipmunk/chipmunkbot/plugins/PlayerListPlugin.java index c91ea9b..4181a62 100644 --- a/src/main/java/land/chipmunk/chipmunkbot/plugins/PlayerListPlugin.java +++ b/src/main/java/land/chipmunk/chipmunkbot/plugins/PlayerListPlugin.java @@ -15,7 +15,7 @@ import java.util.List; import java.util.ArrayList; import java.util.UUID; -public class PlayerListPlugin implements Plugin { +public class PlayerListPlugin extends SessionAdapter implements Plugin { private Client client; public List list = new ArrayList(); @@ -24,25 +24,23 @@ public class PlayerListPlugin implements Plugin { @Override public void inject (Client client, JsonObject options) { this.client = client; + } - client.session().addListener(new SessionAdapter() { - @Override - public void packetReceived (Session session, Packet packet) { - if (packet instanceof ClientboundPlayerInfoPacket) { - ClientboundPlayerInfoPacket _packet = (ClientboundPlayerInfoPacket) packet; + @Override + public void packetReceived (Session session, Packet packet) { + if (packet instanceof ClientboundPlayerInfoPacket) { + ClientboundPlayerInfoPacket _packet = (ClientboundPlayerInfoPacket) packet; - PlayerListEntryAction action = _packet.getAction(); + PlayerListEntryAction action = _packet.getAction(); - for (PlayerListEntry entry : _packet.getEntries()) { - if (action == PlayerListEntryAction.ADD_PLAYER) addPlayer(entry); - else if (action == PlayerListEntryAction.UPDATE_GAMEMODE) updateGamemode(entry); - else if (action == PlayerListEntryAction.UPDATE_LATENCY) updateLatency(entry); - else if (action == PlayerListEntryAction.UPDATE_DISPLAY_NAME) updateDisplayName(entry); - else if (action == PlayerListEntryAction.REMOVE_PLAYER) removePlayer(entry); - } - } + for (PlayerListEntry entry : _packet.getEntries()) { + if (action == PlayerListEntryAction.ADD_PLAYER) addPlayer(entry); + else if (action == PlayerListEntryAction.UPDATE_GAMEMODE) updateGamemode(entry); + else if (action == PlayerListEntryAction.UPDATE_LATENCY) updateLatency(entry); + else if (action == PlayerListEntryAction.UPDATE_DISPLAY_NAME) updateDisplayName(entry); + else if (action == PlayerListEntryAction.REMOVE_PLAYER) removePlayer(entry); } - }); + } } public final MutablePlayerListEntry getEntry (UUID uuid) {