From a8f88935df6d63f008251778fa9c61a5da25d78f Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Mon, 21 Sep 2020 23:22:50 +0200 Subject: [PATCH] Code Cleanup --- .../src/de/steamwar/comms/BungeeReceiver.java | 17 +++++++---------- .../src/de/steamwar/comms/PacketIdManager.java | 11 +++++++++++ .../comms/packets/InventoryCallbackPacket.java | 7 ++++--- .../de/steamwar/comms/packets/SpigotPacket.java | 2 +- 4 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 SpigotCore_Main/src/de/steamwar/comms/PacketIdManager.java diff --git a/SpigotCore_Main/src/de/steamwar/comms/BungeeReceiver.java b/SpigotCore_Main/src/de/steamwar/comms/BungeeReceiver.java index 8666ad0..7c1ba11 100644 --- a/SpigotCore_Main/src/de/steamwar/comms/BungeeReceiver.java +++ b/SpigotCore_Main/src/de/steamwar/comms/BungeeReceiver.java @@ -36,18 +36,14 @@ import java.util.UUID; public class BungeeReceiver implements PluginMessageListener { - private static Map handlerMap = new HashMap<>(); + private static Map handlerMap = new HashMap<>(); - public static void registerHandler(int code, BungeeHandler handler) { + public static void registerHandler(Byte code, BungeeHandler handler) { handlerMap.put(code, handler); } - public static void registerHandler(String name, BungeeHandler handler) { - handlerMap.put(name.hashCode(), handler); - } - static { - registerHandler("PingHandler", byteArrayDataInput -> { + registerHandler(PacketIdManager.PING_PACKET, byteArrayDataInput -> { UUID uuid = SteamwarUser.get(byteArrayDataInput.readInt()).getUUID(); if(Bukkit.getPlayer(uuid).isOnline()) { Player player = Bukkit.getPlayer(uuid); @@ -55,8 +51,8 @@ public class BungeeReceiver implements PluginMessageListener { } }); - registerHandler("InventoryHandler", new InventoryHandler()); - registerHandler("CloseInventory", byteArrayDataInput -> { + registerHandler(PacketIdManager.INVENTORY_PACKET, new InventoryHandler()); + registerHandler(PacketIdManager.INVENTORY_CLOSE_PACKET, byteArrayDataInput -> { Player player = Bukkit.getPlayer(SteamwarUser.get(byteArrayDataInput.readInt()).getUUID()); player.closeInventory(); }); @@ -65,6 +61,7 @@ public class BungeeReceiver implements PluginMessageListener { @Override public void onPluginMessageReceived(String s, Player player, byte[] bytes) { ByteArrayDataInput in = ByteStreams.newDataInput(bytes); - handlerMap.get(in.readInt()).handle(in); + Byte handler = in.readByte(); + handlerMap.get(handler).handle(in); } } diff --git a/SpigotCore_Main/src/de/steamwar/comms/PacketIdManager.java b/SpigotCore_Main/src/de/steamwar/comms/PacketIdManager.java new file mode 100644 index 0000000..fb12d5c --- /dev/null +++ b/SpigotCore_Main/src/de/steamwar/comms/PacketIdManager.java @@ -0,0 +1,11 @@ +package de.steamwar.comms; + +public class PacketIdManager { + + //0x0(X) Standalone Packets + public final static byte PING_PACKET = 0x01; + //0x1(X) Bungee Inventory + public final static byte INVENTORY_PACKET = 0x10; + public final static byte INVENTORY_CALLBACK_PACKET = 0x11; + public final static byte INVENTORY_CLOSE_PACKET = 0x12; +} diff --git a/SpigotCore_Main/src/de/steamwar/comms/packets/InventoryCallbackPacket.java b/SpigotCore_Main/src/de/steamwar/comms/packets/InventoryCallbackPacket.java index d78f398..0883033 100644 --- a/SpigotCore_Main/src/de/steamwar/comms/packets/InventoryCallbackPacket.java +++ b/SpigotCore_Main/src/de/steamwar/comms/packets/InventoryCallbackPacket.java @@ -20,25 +20,26 @@ package de.steamwar.comms.packets; import com.google.common.io.ByteArrayDataOutput; +import de.steamwar.comms.PacketIdManager; import org.bukkit.event.inventory.ClickType; public class InventoryCallbackPacket extends SpigotPacket { - int position; + int position = -1; ClickType clickType; CallbackType callbackType; int owner; @Override public int getName() { - return "InventoryCallback".hashCode(); + return PacketIdManager.INVENTORY_CALLBACK_PACKET; } @Override public void writeVars(ByteArrayDataOutput byteArrayDataOutput) { byteArrayDataOutput.writeInt(owner); byteArrayDataOutput.writeUTF(callbackType.name()); - if(position != 0){ + if(position != -1){ byteArrayDataOutput.writeInt(position); byteArrayDataOutput.writeUTF(clickType.name()); } diff --git a/SpigotCore_Main/src/de/steamwar/comms/packets/SpigotPacket.java b/SpigotCore_Main/src/de/steamwar/comms/packets/SpigotPacket.java index b286c13..25b5ecb 100644 --- a/SpigotCore_Main/src/de/steamwar/comms/packets/SpigotPacket.java +++ b/SpigotCore_Main/src/de/steamwar/comms/packets/SpigotPacket.java @@ -28,7 +28,7 @@ public abstract class SpigotPacket { public void send(Player player) { ByteArrayDataOutput out = ByteStreams.newDataOutput(); - out.writeInt(getName()); + out.writeByte(getName()); writeVars(out); player.sendPluginMessage(Core.getInstance(), "sw:bridge", out.toByteArray()); }