From 6c0968ea92078d4b44a5a380f0884420041cc04e Mon Sep 17 00:00:00 2001 From: Gungun974 Date: Sun, 2 Mar 2025 18:05:09 +0400 Subject: [PATCH] Rename method that should only be called inside of halplibe with `internal` prefix and make some critical method private --- .../helper/network/NetworkHandler.java | 100 +++++++----------- .../helper/network/UniversalPacket.java | 4 +- .../halplibe/mixin/MinecraftMixin.java | 2 +- .../halplibe/mixin/MinecraftServerMixin.java | 2 +- 4 files changed, 45 insertions(+), 63 deletions(-) diff --git a/src/main/java/turniplabs/halplibe/helper/network/NetworkHandler.java b/src/main/java/turniplabs/halplibe/helper/network/NetworkHandler.java index bedb045..0ce4cf7 100644 --- a/src/main/java/turniplabs/halplibe/helper/network/NetworkHandler.java +++ b/src/main/java/turniplabs/halplibe/helper/network/NetworkHandler.java @@ -19,7 +19,7 @@ public final class NetworkHandler { private static final List> messagesToRegisterForServer = new LinkedList<>(Collections.singletonList( - MessageIdsNetworkMessage::new + MessageIdsNetworkMessage::new )); private static final Map> packetReaders = new HashMap<>(); @@ -29,15 +29,15 @@ private NetworkHandler() { } - public static void setup() + /** + * Register the UniversalPacket class and apply the internal messages map + * + * @apiNote This method is auto managed by Halplibe + */ + public static void internalNetworkHandlerSetup() { Packet.addMapping (88, true, true, UniversalPacket.class ); - register(); - } - - public static void register() - { packetReaders.clear(); packetIds.clear(); @@ -46,7 +46,12 @@ public static void register() } } - public static void receiveUniversalPacket(NetworkMessage.NetworkContext context, UniversalPacket buffer ) + /** + * Receive the universal packet + * + * @apiNote This method is auto managed by Halplibe + */ + public static void internalReceiveUniversalPacket(NetworkMessage.NetworkContext context, UniversalPacket buffer ) { short type = buffer.readShort(); @@ -55,7 +60,7 @@ public static void receiveUniversalPacket(NetworkMessage.NetworkContext context, } packetReaders.get( type ) - .accept( context, buffer ); + .accept( context, buffer ); } /** @@ -69,26 +74,11 @@ public static void registerNetworkMessage( Supplier factory ) messagesToRegisterForServer.add(factory); } - /** - * Register a NetworkMessage, and a thread-unsafe handler for it. - * - * @param The type of the NetworkMessage to send. - * @param factory The factory for this type of message. - */ - @SuppressWarnings({"unused"}) - public static void addNetworkMessage( Supplier factory ) + private static void addNetworkMessage( Supplier factory ) { registerNetworkMessage((short) packetIds.size(), factory); } - /** - * Register a NetworkMessage, and a thread-unsafe handler for it. - * - * @param The type of the NetworkMessage to send. - * @param id The identifier for this message type - * @param factory The factory for this type of message. - */ - @SuppressWarnings({"unused"}) private static void registerNetworkMessage( short id, Supplier factory ) { registerNetworkMessage( id, getType( factory ), buf -> { @@ -98,14 +88,6 @@ private static void registerNetworkMessage( short id, } ); } - /** - * Register a NetworkMessage, and a thread-unsafe handler for it. - * - * @param The type of the NetworkMessage to send. - * @param type The class of the type of message to send. - * @param id The identifier for this message type - * @param decoder The factory for this type of message. - */ private static void registerNetworkMessage( short id, Class type, Function decoder ) { packetIds.put( type, id ); @@ -119,7 +101,7 @@ private static void registerNetworkMessage( short id, private static Class getType( Supplier supplier ) { return (Class) supplier.get() - .getClass(); + .getClass(); } private static UniversalPacket encode(NetworkMessage message ) @@ -206,41 +188,41 @@ public static void sendToAllAround(double x, double y, double z, double radius, } private static class MessageIdsNetworkMessage implements NetworkMessage{ - Map, Short> packetIds; + Map, Short> packetIds; - public MessageIdsNetworkMessage() {} + public MessageIdsNetworkMessage() {} - public MessageIdsNetworkMessage(Map, Short> packetIds) { - this.packetIds = packetIds; - } + public MessageIdsNetworkMessage(Map, Short> packetIds) { + this.packetIds = packetIds; + } - @Override - public void encodeToUniversalPacket(@NotNull UniversalPacket packet) { - packet.writeShort((short) packetIds.size()); + @Override + public void encodeToUniversalPacket(@NotNull UniversalPacket packet) { + packet.writeShort((short) packetIds.size()); - for (Map.Entry, Short> entry : packetIds.entrySet()) { - packet.writeShort(entry.getValue()); - packet.writeString(entry.getKey().getName()); - } + for (Map.Entry, Short> entry : packetIds.entrySet()) { + packet.writeShort(entry.getValue()); + packet.writeString(entry.getKey().getName()); } + } - @Override - public void decodeFromUniversalPacket(@NotNull UniversalPacket packet) { - this.packetIds = new HashMap<>(); + @Override + public void decodeFromUniversalPacket(@NotNull UniversalPacket packet) { + this.packetIds = new HashMap<>(); - final short size = packet.readShort(); + final short size = packet.readShort(); - try { - for (int i = 0; i < size; i++) { - final short id = packet.readShort(); - final Class messageClass = Class.forName(packet.readString()); + try { + for (int i = 0; i < size; i++) { + final short id = packet.readShort(); + final Class messageClass = Class.forName(packet.readString()); - this.packetIds.put(messageClass, id); - } - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); + this.packetIds.put(messageClass, id); } + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); } + } @Override public void handle(NetworkContext context) { @@ -272,4 +254,4 @@ public void handle(NetworkContext context) { } } } -} +} \ No newline at end of file diff --git a/src/main/java/turniplabs/halplibe/helper/network/UniversalPacket.java b/src/main/java/turniplabs/halplibe/helper/network/UniversalPacket.java index 62c2656..e565703 100644 --- a/src/main/java/turniplabs/halplibe/helper/network/UniversalPacket.java +++ b/src/main/java/turniplabs/halplibe/helper/network/UniversalPacket.java @@ -62,14 +62,14 @@ public void handlePacket(PacketHandler packetHandler) { @Environment(EnvType.SERVER) private void handlePacketServer(PacketHandler packetHandler) { - NetworkHandler.receiveUniversalPacket(new NetworkMessage.NetworkContext(( + NetworkHandler.internalReceiveUniversalPacket(new NetworkMessage.NetworkContext(( (PacketHandlerServerAccessor)packetHandler).getPlayerEntity() ), this); } @Environment(EnvType.CLIENT) private void handlePacketClient() { - NetworkHandler.receiveUniversalPacket(new NetworkMessage.NetworkContext( + NetworkHandler.internalReceiveUniversalPacket(new NetworkMessage.NetworkContext( Minecraft.getMinecraft().thePlayer ), this); } diff --git a/src/main/java/turniplabs/halplibe/mixin/MinecraftMixin.java b/src/main/java/turniplabs/halplibe/mixin/MinecraftMixin.java index 68225a4..846adac 100644 --- a/src/main/java/turniplabs/halplibe/mixin/MinecraftMixin.java +++ b/src/main/java/turniplabs/halplibe/mixin/MinecraftMixin.java @@ -36,7 +36,7 @@ public void beforeGameStartEntrypoint(CallbackInfo ci){ @Inject(method = "startGame", at = @At("TAIL")) public void afterGameStartEntrypoint(CallbackInfo ci){ - NetworkHandler.setup(); + NetworkHandler.internalNetworkHandlerSetup(); FabricLoader.getInstance().getEntrypoints("afterGameStart", GameStartEntrypoint.class).forEach(GameStartEntrypoint::afterGameStart); FabricLoader.getInstance().getEntrypoints("afterClientStart", ClientStartEntrypoint.class).forEach(ClientStartEntrypoint::afterClientStart); } diff --git a/src/main/java/turniplabs/halplibe/mixin/MinecraftServerMixin.java b/src/main/java/turniplabs/halplibe/mixin/MinecraftServerMixin.java index ce9de99..d216e48 100644 --- a/src/main/java/turniplabs/halplibe/mixin/MinecraftServerMixin.java +++ b/src/main/java/turniplabs/halplibe/mixin/MinecraftServerMixin.java @@ -27,7 +27,7 @@ public void recipeEntrypoint(CallbackInfoReturnable cir){ public void beforeGameStartEntrypoint(CallbackInfoReturnable cir){ instance = (MinecraftServer)(Object)this; Global.isServer = true; - NetworkHandler.setup(); + NetworkHandler.internalNetworkHandlerSetup(); FabricLoader.getInstance().getEntrypoints("beforeGameStart", GameStartEntrypoint.class).forEach(GameStartEntrypoint::beforeGameStart); }