diff --git a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItems.java b/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItems.java index 9abbe47fc..43b1bdbc7 100644 --- a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItems.java +++ b/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItems.java @@ -25,8 +25,7 @@ public JustEnoughItems(IEventBus modEventBus, Dist dist) { IServerConfig serverConfig = ServerConfig.register(modLoadingContext); NetworkHandler networkHandler = new NetworkHandler("3", serverConfig); - JustEnoughItemsCommon jeiCommon = new JustEnoughItemsCommon(networkHandler); - jeiCommon.register(subscriptions); + networkHandler.registerPacketHandlers(subscriptions); JustEnoughItemsClientSafeRunner clientSafeRunner = new JustEnoughItemsClientSafeRunner(networkHandler, subscriptions); if (dist.isClient()) { diff --git a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsClient.java b/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsClient.java index b9544172a..3f2696e4d 100644 --- a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsClient.java +++ b/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsClient.java @@ -3,11 +3,11 @@ import mezz.jei.api.IModPlugin; import mezz.jei.common.Internal; import mezz.jei.common.gui.textures.Textures; +import mezz.jei.common.network.IConnectionToServer; import mezz.jei.gui.config.InternalKeyMappings; import mezz.jei.library.startup.JeiStarter; import mezz.jei.library.startup.StartData; import mezz.jei.neoforge.events.PermanentEventSubscriptions; -import mezz.jei.neoforge.network.ConnectionToServer; import mezz.jei.neoforge.network.NetworkHandler; import mezz.jei.neoforge.plugins.neoforge.NeoForgeGuiPlugin; import mezz.jei.neoforge.startup.ForgePluginFinder; @@ -31,13 +31,10 @@ public JustEnoughItemsClient( ) { this.subscriptions = subscriptions; - ConnectionToServer serverConnection = new ConnectionToServer(); - Internal.setServerConnection(serverConnection); - InternalKeyMappings keyMappings = createKeyMappings(subscriptions); Internal.setKeyMappings(keyMappings); - networkHandler.registerClientPacketHandler(serverConnection, subscriptions); + IConnectionToServer serverConnection = networkHandler.getConnectionToServer(); List plugins = ForgePluginFinder.getModPlugins(); StartData startData = new StartData( diff --git a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsCommon.java b/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsCommon.java deleted file mode 100644 index c914a654c..000000000 --- a/NeoForge/src/main/java/mezz/jei/neoforge/JustEnoughItemsCommon.java +++ /dev/null @@ -1,24 +0,0 @@ -package mezz.jei.neoforge; - -import mezz.jei.common.network.IConnectionToClient; -import mezz.jei.neoforge.events.PermanentEventSubscriptions; -import mezz.jei.neoforge.network.ConnectionToClient; -import mezz.jei.neoforge.network.NetworkHandler; -import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; - -public class JustEnoughItemsCommon { - private final NetworkHandler networkHandler; - - public JustEnoughItemsCommon(NetworkHandler networkHandler) { - this.networkHandler = networkHandler; - } - - public void register(PermanentEventSubscriptions subscriptions) { - subscriptions.register(FMLCommonSetupEvent.class, event -> this.commonSetup(subscriptions)); - } - - private void commonSetup(PermanentEventSubscriptions subscriptions) { - IConnectionToClient connection = new ConnectionToClient(); - this.networkHandler.registerServerPacketHandler(connection, subscriptions); - } -} diff --git a/NeoForge/src/main/java/mezz/jei/neoforge/network/NetworkHandler.java b/NeoForge/src/main/java/mezz/jei/neoforge/network/NetworkHandler.java index 12ce7c90d..86acf96d3 100644 --- a/NeoForge/src/main/java/mezz/jei/neoforge/network/NetworkHandler.java +++ b/NeoForge/src/main/java/mezz/jei/neoforge/network/NetworkHandler.java @@ -1,6 +1,6 @@ package mezz.jei.neoforge.network; -import mezz.jei.api.constants.ModIds; +import mezz.jei.common.Internal; import mezz.jei.common.config.IServerConfig; import mezz.jei.common.network.ClientPacketContext; import mezz.jei.common.network.IConnectionToClient; @@ -17,8 +17,6 @@ import mezz.jei.neoforge.events.PermanentEventSubscriptions; import net.minecraft.client.player.LocalPlayer; import net.minecraft.server.level.ServerPlayer; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import net.neoforged.neoforge.network.handling.IPayloadHandler; import net.neoforged.neoforge.network.registration.HandlerThread; @@ -26,57 +24,51 @@ import java.util.function.BiConsumer; public class NetworkHandler { - private static final String TO_CLIENT_NAMESPACE = ModIds.JEI_ID + "_to_client"; - private static final String TO_SERVER_NAMESPACE = ModIds.JEI_ID + "_to_server"; - private final String protocolVersion; private final IServerConfig serverConfig; + private final IConnectionToServer connectionToServer; + private final IConnectionToClient connectionToClient; public NetworkHandler(String protocolVersion, IServerConfig serverConfig) { this.protocolVersion = protocolVersion; this.serverConfig = serverConfig; - } - - public void registerServerPacketHandler(IConnectionToClient connection, PermanentEventSubscriptions subscriptions) { - subscriptions.register(RegisterPayloadHandlersEvent.class, ev -> { - var registrar = ev.registrar(TO_CLIENT_NAMESPACE) - .executesOn(HandlerThread.MAIN) - .versioned(this.protocolVersion) - .optional(); - registrar.playToServer(PacketDeletePlayerItem.TYPE, PacketDeletePlayerItem.STREAM_CODEC, wrapServerHandler(connection, PacketDeletePlayerItem::process)); - registrar.playToServer(PacketGiveItemStack.TYPE, PacketGiveItemStack.STREAM_CODEC, wrapServerHandler(connection, PacketGiveItemStack::process)); - registrar.playToServer(PacketRecipeTransfer.TYPE, PacketRecipeTransfer.STREAM_CODEC, wrapServerHandler(connection, PacketRecipeTransfer::process)); - registrar.playToServer(PacketSetHotbarItemStack.TYPE, PacketSetHotbarItemStack.STREAM_CODEC, wrapServerHandler(connection, PacketSetHotbarItemStack::process)); - registrar.playToServer(PacketRequestCheatPermission.TYPE, PacketRequestCheatPermission.STREAM_CODEC, wrapServerHandler(connection, PacketRequestCheatPermission::process)); - }); + this.connectionToServer = new ConnectionToServer(); + Internal.setServerConnection(this.connectionToServer); + this.connectionToClient = new ConnectionToClient(); } - @OnlyIn(Dist.CLIENT) - public void registerClientPacketHandler(IConnectionToServer connection, PermanentEventSubscriptions subscriptions) { - subscriptions.register(RegisterPayloadHandlersEvent.class, ev -> { - var registrar = ev.registrar(TO_SERVER_NAMESPACE) - .executesOn(HandlerThread.MAIN) - .versioned(this.protocolVersion) - .optional(); - - registrar.playToClient(PacketCheatPermission.TYPE, PacketCheatPermission.STREAM_CODEC, wrapClientHandler(connection, PacketCheatPermission::process)); - }); + public void registerPacketHandlers(PermanentEventSubscriptions subscriptions) { + subscriptions.register(RegisterPayloadHandlersEvent.class, ev -> + ev.registrar(this.protocolVersion) + .executesOn(HandlerThread.MAIN) + .optional() + .playToServer(PacketDeletePlayerItem.TYPE, PacketDeletePlayerItem.STREAM_CODEC, wrapServerHandler(PacketDeletePlayerItem::process)) + .playToServer(PacketGiveItemStack.TYPE, PacketGiveItemStack.STREAM_CODEC, wrapServerHandler(PacketGiveItemStack::process)) + .playToServer(PacketRecipeTransfer.TYPE, PacketRecipeTransfer.STREAM_CODEC, wrapServerHandler(PacketRecipeTransfer::process)) + .playToServer(PacketSetHotbarItemStack.TYPE, PacketSetHotbarItemStack.STREAM_CODEC, wrapServerHandler(PacketSetHotbarItemStack::process)) + .playToServer(PacketRequestCheatPermission.TYPE, PacketRequestCheatPermission.STREAM_CODEC, wrapServerHandler(PacketRequestCheatPermission::process)) + .playToClient(PacketCheatPermission.TYPE, PacketCheatPermission.STREAM_CODEC, wrapClientHandler(PacketCheatPermission::process)) + ); } - private > IPayloadHandler wrapClientHandler(IConnectionToServer connection, BiConsumer consumer) { + private > IPayloadHandler wrapClientHandler(BiConsumer consumer) { return (t, payloadContext) -> { LocalPlayer player = (LocalPlayer) payloadContext.player(); - var clientPacketContext = new ClientPacketContext(player, connection); + var clientPacketContext = new ClientPacketContext(player, connectionToServer); consumer.accept(t, clientPacketContext); }; } - private > IPayloadHandler wrapServerHandler(IConnectionToClient connection, BiConsumer consumer) { + private > IPayloadHandler wrapServerHandler(BiConsumer consumer) { return (t, payloadContext) -> { ServerPlayer player = (ServerPlayer) payloadContext.player(); - var serverPacketContext = new ServerPacketContext(player, serverConfig, connection); + var serverPacketContext = new ServerPacketContext(player, serverConfig, connectionToClient); consumer.accept(t, serverPacketContext); }; } + + public IConnectionToServer getConnectionToServer() { + return connectionToServer; + } }