From 8bd583aff3de3754b5bd38279bc4f7c00ea965d9 Mon Sep 17 00:00:00 2001 From: Mysticdrew Date: Mon, 21 Oct 2024 12:42:46 -0500 Subject: [PATCH] 1.0.17-beta.2 --- .../java/commonnetwork/api/Dispatcher.java | 13 +++++++++++++ .../commonnetwork/api/NetworkHandler.java | 10 ++++++++++ .../networking/FabricNetworkHandler.java | 19 +++++++++++++++++++ .../networking/ForgeNetworkHandler.java | 11 +++++++++++ gradle.properties | 2 +- .../networking/NeoForgeNetworkHandler.java | 19 +++++++++++++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/commonnetwork/api/Dispatcher.java b/common/src/main/java/commonnetwork/api/Dispatcher.java index d7c0aa1..cffdf60 100644 --- a/common/src/main/java/commonnetwork/api/Dispatcher.java +++ b/common/src/main/java/commonnetwork/api/Dispatcher.java @@ -1,6 +1,7 @@ package commonnetwork.api; import net.minecraft.core.BlockPos; +import net.minecraft.network.Connection; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerLevel; @@ -36,6 +37,18 @@ public static void sendToServer(T packet, boolean ignoreCheck) Network.getNetworkHandler().sendToServer(packet, ignoreCheck); } + /** + * Sends the packet to the connection. + * + * @param packet - the packet + * @param connection - the connection + * @param - The packet + */ + public static void send(T packet, Connection connection) + { + Network.getNetworkHandler().send(packet, connection); + } + /** * Sends the packet to the client player, only if the player has the packet registered. * diff --git a/common/src/main/java/commonnetwork/api/NetworkHandler.java b/common/src/main/java/commonnetwork/api/NetworkHandler.java index a998c88..73f5761 100644 --- a/common/src/main/java/commonnetwork/api/NetworkHandler.java +++ b/common/src/main/java/commonnetwork/api/NetworkHandler.java @@ -1,6 +1,7 @@ package commonnetwork.api; import net.minecraft.core.BlockPos; +import net.minecraft.network.Connection; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerLevel; @@ -55,6 +56,15 @@ default void sendToClient(T packet, ServerPlayer player) */ void sendToClient(T packet, ServerPlayer player, boolean ignoreCheck); + /** + * Sends the packet to the connection. + * + * @param packet - the packet + * @param connection - the connection + * @param - The packet + */ + void send(T packet, Connection connection); + /** * Sends the packet to the client players, only if the players has the packet registered. * diff --git a/fabric/src/main/java/commonnetwork/networking/FabricNetworkHandler.java b/fabric/src/main/java/commonnetwork/networking/FabricNetworkHandler.java index a613973..c1b25a2 100644 --- a/fabric/src/main/java/commonnetwork/networking/FabricNetworkHandler.java +++ b/fabric/src/main/java/commonnetwork/networking/FabricNetworkHandler.java @@ -11,6 +11,9 @@ import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerConfigurationNetworking; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket; +import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket; import net.minecraft.server.level.ServerPlayer; public class FabricNetworkHandler extends PacketRegistrationHandler @@ -84,6 +87,22 @@ protected void registerPacket(PacketContainer container) } + @Override + public void send(T packet, Connection connection) + { + PacketContainer container = (PacketContainer) PACKET_MAP.get(packet.getClass()); + if (container != null) + { + if (this.side == Side.SERVER) + { + connection.send(new ClientboundCustomPayloadPacket(new CommonPacketWrapper<>(container, packet))); + } + else + { + connection.send(new ServerboundCustomPayloadPacket(new CommonPacketWrapper<>(container, packet))); + } + } + } @SuppressWarnings("unchecked") public void sendToServer(T packet, boolean ignoreCheck) diff --git a/forge/src/main/java/commonnetwork/networking/ForgeNetworkHandler.java b/forge/src/main/java/commonnetwork/networking/ForgeNetworkHandler.java index 268e79f..e9b2114 100644 --- a/forge/src/main/java/commonnetwork/networking/ForgeNetworkHandler.java +++ b/forge/src/main/java/commonnetwork/networking/ForgeNetworkHandler.java @@ -107,6 +107,17 @@ public void sendToClient(T packet, ServerPlayer player, boolean ignoreCheck) } } + @Override + public void send(T packet, Connection connection) + { + var message = (Message) CHANNELS.get(packet.getClass()); + if (message != null) + { + var channel = message.channel(); + channel.send(new CommonPacketWrapper(message.container, packet), connection); + } + } + private static void handle(CustomPacketPayload customPacketPayload, CustomPayloadEvent.Context ctx) { } diff --git a/gradle.properties b/gradle.properties index 5df97ef..46e2c65 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Project -version=1.0.17-beta +version=1.0.17-beta.2 group_id=mysticdrew curseforge_project_id=806044 diff --git a/neoforge/src/main/java/commonnetwork/networking/NeoForgeNetworkHandler.java b/neoforge/src/main/java/commonnetwork/networking/NeoForgeNetworkHandler.java index 4e27bc7..d954d1a 100644 --- a/neoforge/src/main/java/commonnetwork/networking/NeoForgeNetworkHandler.java +++ b/neoforge/src/main/java/commonnetwork/networking/NeoForgeNetworkHandler.java @@ -7,6 +7,8 @@ import commonnetwork.networking.data.Side; import commonnetwork.networking.exceptions.RegistrationException; import net.minecraft.client.Minecraft; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket; import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket; import net.minecraft.server.level.ServerPlayer; import net.neoforged.bus.api.SubscribeEvent; @@ -71,6 +73,23 @@ public void sendToServer(T packet, boolean ignoreCheck) } } + @Override + public void send(T packet, Connection connection) + { + PacketContainer container = (PacketContainer) PACKET_MAP.get(packet.getClass()); + if (container != null) + { + if (this.side == Side.SERVER) + { + connection.send(new ClientboundCustomPayloadPacket(new CommonPacketWrapper<>(container, packet))); + } + else + { + connection.send(new ServerboundCustomPayloadPacket(new CommonPacketWrapper<>(container, packet))); + } + } + } + @SuppressWarnings("unchecked") public void sendToClient(T packet, ServerPlayer player, boolean ignoreCheck) {