From c7469b213f5ae98bede6db0cac9e4ca120eb9083 Mon Sep 17 00:00:00 2001 From: Joseph Burton <burtonjae@hotmail.co.uk> Date: Mon, 23 Sep 2024 18:47:02 +0100 Subject: [PATCH] Add access to ClientConfigurationNetworkHandler in context (#4097) --- .../client/networking/v1/ClientConfigurationNetworking.java | 6 ++++++ .../networking/client/ClientConfigurationNetworkAddon.java | 5 +++-- .../fabric/test/networking/unit/CommonPacketTests.java | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/api/client/networking/v1/ClientConfigurationNetworking.java b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/api/client/networking/v1/ClientConfigurationNetworking.java index 4bf48a994..ac8b0cb66 100644 --- a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/api/client/networking/v1/ClientConfigurationNetworking.java +++ b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/api/client/networking/v1/ClientConfigurationNetworking.java @@ -23,6 +23,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientConfigurationNetworkHandler; import net.minecraft.network.packet.CustomPayload; import net.minecraft.util.Identifier; import net.minecraft.util.thread.ThreadExecutor; @@ -280,6 +281,11 @@ public final class ClientConfigurationNetworking { */ MinecraftClient client(); + /** + * @return The ClientConfigurationNetworkHandler instance + */ + ClientConfigurationNetworkHandler networkHandler(); + /** * @return The packet sender */ diff --git a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientConfigurationNetworkAddon.java b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientConfigurationNetworkAddon.java index d391223bb..17cbcab37 100644 --- a/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientConfigurationNetworkAddon.java +++ b/fabric-networking-api-v1/src/client/java/net/fabricmc/fabric/impl/networking/client/ClientConfigurationNetworkAddon.java @@ -44,7 +44,7 @@ public final class ClientConfigurationNetworkAddon extends ClientCommonNetworkAd public ClientConfigurationNetworkAddon(ClientConfigurationNetworkHandler handler, MinecraftClient client) { super(ClientNetworkingImpl.CONFIGURATION, ((ClientCommonNetworkHandlerAccessor) handler).getConnection(), "ClientPlayNetworkAddon for " + ((ClientConfigurationNetworkHandlerAccessor) handler).getProfile().getName(), handler, client); - this.context = new ContextImpl(client, this); + this.context = new ContextImpl(client, handler, this); // Must register pending channels via lateinit this.registerPendingChannels((ChannelInfoHolder) this.connection, NetworkPhase.CONFIGURATION); @@ -128,9 +128,10 @@ public final class ClientConfigurationNetworkAddon extends ClientCommonNetworkAd return (ChannelInfoHolder) ((ClientCommonNetworkHandlerAccessor) handler).getConnection(); } - private record ContextImpl(MinecraftClient client, PacketSender responseSender) implements ClientConfigurationNetworking.Context { + private record ContextImpl(MinecraftClient client, ClientConfigurationNetworkHandler networkHandler, PacketSender responseSender) implements ClientConfigurationNetworking.Context { private ContextImpl { Objects.requireNonNull(client, "client"); + Objects.requireNonNull(networkHandler, "networkHandler"); Objects.requireNonNull(responseSender, "responseSender"); } } diff --git a/fabric-networking-api-v1/src/test/java/net/fabricmc/fabric/test/networking/unit/CommonPacketTests.java b/fabric-networking-api-v1/src/test/java/net/fabricmc/fabric/test/networking/unit/CommonPacketTests.java index 1674ef82c..a74d02e3f 100644 --- a/fabric-networking-api-v1/src/test/java/net/fabricmc/fabric/test/networking/unit/CommonPacketTests.java +++ b/fabric-networking-api-v1/src/test/java/net/fabricmc/fabric/test/networking/unit/CommonPacketTests.java @@ -138,6 +138,11 @@ public class CommonPacketTests { return null; } + @Override + public ClientConfigurationNetworkHandler networkHandler() { + return clientNetworkHandler; + } + @Override public PacketSender responseSender() { return packetSender;