diff --git a/core/src/main/java/net/artelnatif/nicko/bukkit/NickoBukkit.java b/core/src/main/java/net/artelnatif/nicko/bukkit/NickoBukkit.java index 35ba651..c5cccbf 100644 --- a/core/src/main/java/net/artelnatif/nicko/bukkit/NickoBukkit.java +++ b/core/src/main/java/net/artelnatif/nicko/bukkit/NickoBukkit.java @@ -11,7 +11,7 @@ import net.artelnatif.nicko.bukkit.gui.items.main.ExitGUI; import net.artelnatif.nicko.bukkit.i18n.Locale; import net.artelnatif.nicko.bukkit.i18n.LocaleFileManager; import net.artelnatif.nicko.bukkit.placeholder.PlaceHolderHook; -import net.artelnatif.nicko.bukkit.pluginchannel.PluginMessageHandler; +import net.artelnatif.nicko.bukkit.messaging.PluginMessageEvent; import net.artelnatif.nicko.bungee.NickoBungee; import net.artelnatif.nicko.config.Configuration; import net.artelnatif.nicko.impl.Internals; @@ -104,7 +104,7 @@ public class NickoBukkit extends JavaPlugin { if (nicko.getConfig().isBungeecord()) { if (support.stopIfBungeeCordIsNotEnabled()) { getLogger().info("Enabling BungeeCord support..."); - getServer().getMessenger().registerIncomingPluginChannel(this, NickoBungee.PROXY_UPDATE, new PluginMessageHandler()); + getServer().getMessenger().registerIncomingPluginChannel(this, NickoBungee.PROXY_UPDATE, new PluginMessageEvent()); } } diff --git a/core/src/main/java/net/artelnatif/nicko/bukkit/pluginchannel/PluginMessageHandler.java b/core/src/main/java/net/artelnatif/nicko/bukkit/pluginchannel/PluginMessageHandler.java deleted file mode 100644 index a0075a5..0000000 --- a/core/src/main/java/net/artelnatif/nicko/bukkit/pluginchannel/PluginMessageHandler.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.artelnatif.nicko.bukkit.pluginchannel; - -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteStreams; -import net.artelnatif.nicko.bukkit.NickoBukkit; -import net.artelnatif.nicko.bungee.NickoBungee; -import org.bukkit.entity.Player; -import org.bukkit.plugin.messaging.PluginMessageListener; - -import java.util.ArrayList; - -public class PluginMessageHandler implements PluginMessageListener { - @Override - public void onPluginMessageReceived(String channel, Player player, byte[] message) { - if (!channel.equals(NickoBungee.SERVER_DATA)) { - return; - } - - final ByteArrayDataInput in = ByteStreams.newDataInput(message); - final int payloadSize = in.readInt(); - if (payloadSize == 0 || payloadSize > 4) { - NickoBukkit.getInstance().getLogger().severe("Prevented error by skipping malformed payload of size " + payloadSize + "!"); - NickoBukkit.getInstance().getLogger().severe("This should not have happened, open an issue at https://atnrch.xyz/git/aro/Nicko !"); - return; - } - - final ArrayList decodedPayload = new ArrayList<>(payloadSize); - for (int i = 0; i < payloadSize; i++) { - decodedPayload.add(in.readUTF()); - } - - System.out.println("decodedPayload = " + decodedPayload); - } -} - diff --git a/core/src/main/java/net/artelnatif/nicko/bungee/NickoBungee.java b/core/src/main/java/net/artelnatif/nicko/bungee/NickoBungee.java index b875065..19fca8c 100644 --- a/core/src/main/java/net/artelnatif/nicko/bungee/NickoBungee.java +++ b/core/src/main/java/net/artelnatif/nicko/bungee/NickoBungee.java @@ -1,15 +1,14 @@ package net.artelnatif.nicko.bungee; import net.artelnatif.nicko.Nicko; -import net.artelnatif.nicko.bungee.event.UpdateMessageListener; +import net.artelnatif.nicko.disguise.NickoProfile; import net.md_5.bungee.api.plugin.Plugin; -public class NickoBungee extends Plugin { - public static final String NICKO_PLUGIN_CHANNEL_BASE = "nicko:"; - public static final String PROXY_UPDATE = NICKO_PLUGIN_CHANNEL_BASE + "update"; - public static final String PROXY_FETCH = NICKO_PLUGIN_CHANNEL_BASE + "fetch"; - public static final String SERVER_DATA = NICKO_PLUGIN_CHANNEL_BASE + "data"; +import java.util.HashMap; +import java.util.UUID; +public class NickoBungee extends Plugin { + private final HashMap profiles = new HashMap<>(); private final Nicko nicko = new Nicko(); private static NickoBungee plugin; @@ -30,12 +29,6 @@ public class NickoBungee extends Plugin { return; } - getLogger().info("Registering channel..."); - getProxy().registerChannel(SERVER_DATA); - - getLogger().info("Registering listener..."); - getProxy().getPluginManager().registerListener(this, new UpdateMessageListener()); - getLogger().info("Nicko (Bungee) has been enabled."); } } @@ -43,9 +36,6 @@ public class NickoBungee extends Plugin { @Override public void onDisable() { if (!nicko.getDataStore().getStorage().isError()) { - getLogger().info("Unregistering channels..."); - getProxy().unregisterChannel(PROXY_UPDATE); - getLogger().info("Nicko (Bungee) has been disabled."); } } diff --git a/core/src/main/java/net/artelnatif/nicko/bungee/message/PluginMessageSender.java b/core/src/main/java/net/artelnatif/nicko/bungee/PluginMessageSender.java similarity index 93% rename from core/src/main/java/net/artelnatif/nicko/bungee/message/PluginMessageSender.java rename to core/src/main/java/net/artelnatif/nicko/bungee/PluginMessageSender.java index c7a8716..b75baef 100644 --- a/core/src/main/java/net/artelnatif/nicko/bungee/message/PluginMessageSender.java +++ b/core/src/main/java/net/artelnatif/nicko/bungee/PluginMessageSender.java @@ -1,4 +1,4 @@ -package net.artelnatif.nicko.bungee.message; +package net.artelnatif.nicko.bungee; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; diff --git a/core/src/main/java/net/artelnatif/nicko/bungee/event/FetchMessageListener.java b/core/src/main/java/net/artelnatif/nicko/bungee/event/FetchMessageListener.java deleted file mode 100644 index 9004c17..0000000 --- a/core/src/main/java/net/artelnatif/nicko/bungee/event/FetchMessageListener.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.artelnatif.nicko.bungee.event; - -import net.artelnatif.nicko.bungee.NickoBungee; -import net.artelnatif.nicko.bungee.message.PluginMessageSender; -import net.artelnatif.nicko.disguise.NickoProfile; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.config.ServerInfo; -import net.md_5.bungee.api.connection.ProxiedPlayer; -import net.md_5.bungee.api.event.PluginMessageEvent; -import net.md_5.bungee.api.plugin.Listener; -import net.md_5.bungee.event.EventHandler; - -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Optional; -import java.util.UUID; - -public class FetchMessageListener implements Listener { - @EventHandler - public void onMessage(PluginMessageEvent event) { - if (!event.getTag().equals(NickoBungee.PROXY_FETCH)) { return; } - - try (DataInputStream input = new DataInputStream(new ByteArrayInputStream(event.getData()))) { - final NickoBungee instance = NickoBungee.getInstance(); - final ProxyServer proxy = instance.getProxy(); - - final String stringUuid = input.readUTF(); - final UUID uuid = UUID.fromString(stringUuid); - final ProxiedPlayer player = proxy.getPlayer(uuid); - final ServerInfo serverInfo = player.getServer().getInfo(); - - final Optional optionalProfile = instance.getNicko().getDataStore().getData(uuid); - if (optionalProfile.isPresent()) { - final NickoProfile profile = optionalProfile.get(); - final ArrayList payload = new ArrayList<>(); - payload.add(player.getUniqueId().toString()); - payload.add(profile.getName()); - payload.add(profile.getSkin()); - payload.add(String.valueOf(profile.isBungeecordTransfer())); - payload.add(profile.getLocale().getCode()); - - PluginMessageSender.send(serverInfo, NickoBungee.SERVER_DATA, payload); - return; - } - - instance.getNicko().getLogger().warning("Unable to send profile to distant server!"); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/core/src/main/java/net/artelnatif/nicko/bungee/event/UpdateMessageListener.java b/core/src/main/java/net/artelnatif/nicko/bungee/event/UpdateMessageListener.java deleted file mode 100644 index 7bc3505..0000000 --- a/core/src/main/java/net/artelnatif/nicko/bungee/event/UpdateMessageListener.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.artelnatif.nicko.bungee.event; - -import net.artelnatif.nicko.bungee.NickoBungee; -import net.artelnatif.nicko.bungee.message.MessageDecoder; -import net.artelnatif.nicko.disguise.NickoProfile; -import net.md_5.bungee.api.event.PluginMessageEvent; -import net.md_5.bungee.api.plugin.Listener; -import net.md_5.bungee.event.EventHandler; - -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.IOException; - -public class UpdateMessageListener implements Listener { - @EventHandler - public void onMessage(PluginMessageEvent event) { - if (!event.getTag().equals(NickoBungee.PROXY_UPDATE)) { return; } - - try (DataInputStream input = new DataInputStream(new ByteArrayInputStream(event.getData()))) { - final NickoProfile profile = MessageDecoder.decode(input); - - // TODO: 1/28/23 STORE PROFILE - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/core/src/main/java/net/artelnatif/nicko/bungee/message/MessageDecoder.java b/core/src/main/java/net/artelnatif/nicko/bungee/message/MessageDecoder.java deleted file mode 100644 index 4ed8e7d..0000000 --- a/core/src/main/java/net/artelnatif/nicko/bungee/message/MessageDecoder.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.artelnatif.nicko.bungee.message; - -import net.artelnatif.nicko.disguise.NickoProfile; -import net.artelnatif.nicko.bukkit.i18n.Locale; - -import java.io.DataInputStream; -import java.io.IOException; - -public class MessageDecoder { - public static final int STRING_SIZE = 3; - - public static NickoProfile decode(DataInputStream input) throws IOException { - final String[] stringValues = new String[3]; - for (int i = 1; i < STRING_SIZE; i++) { stringValues[i] = input.readUTF(); } - return new NickoProfile(stringValues[0], stringValues[1], Locale.valueOf(stringValues[2]), true); - } -}