From 1c859cd7daafc78153dd1e19268024d146835765 Mon Sep 17 00:00:00 2001 From: Ran <43445785+RanCraftPlayz@users.noreply.github.com> Date: Sun, 20 Feb 2022 00:15:33 +0600 Subject: [PATCH] Oops was registering channels to wrong environments --- .../java/com/seibel/lod/common/LodCommonMain.java | 14 ++++++++------ .../lod/common/networking/NetworkHandler.java | 9 +++++++++ .../lod/common/networking/NetworkInterface.java | 3 ++- .../src/main/java/com/seibel/lod/fabric/Main.java | 5 ++--- .../lod/fabric/networking/NetworkHandler.java | 13 ++++++++++++- .../main/java/com/seibel/lod/forge/ForgeMain.java | 8 +------- .../lod/forge/networking/NetworkHandler.java | 13 ++++++++++++- 7 files changed, 46 insertions(+), 19 deletions(-) diff --git a/common/src/main/java/com/seibel/lod/common/LodCommonMain.java b/common/src/main/java/com/seibel/lod/common/LodCommonMain.java index 3ab1da1b3..5d036b53c 100644 --- a/common/src/main/java/com/seibel/lod/common/LodCommonMain.java +++ b/common/src/main/java/com/seibel/lod/common/LodCommonMain.java @@ -15,7 +15,7 @@ public class LodCommonMain { public static LodForgeMethodCaller forgeMethodCaller; public static NetworkInterface networkInterface; - public static void startup(LodForgeMethodCaller caller, boolean serverSided) { + public static void startup(LodForgeMethodCaller caller, boolean serverSided, NetworkInterface networkInterface) { LodCommonMain.serverSided = serverSided; if (caller != null) { LodCommonMain.forge = true; @@ -23,15 +23,17 @@ public class LodCommonMain { } DependencySetup.createInitialBindings(); + + LodCommonMain.networkInterface = networkInterface; + if (!serverSided) { + networkInterface.register_Client(); + } else { + networkInterface.register_Server(); + } } public static void initConfig() { ConfigGui.init(Config.class); } - - public static void registerNetworking(NetworkInterface networkInterface) { - LodCommonMain.networkInterface = networkInterface; - networkInterface.register(); - } } diff --git a/common/src/main/java/com/seibel/lod/common/networking/NetworkHandler.java b/common/src/main/java/com/seibel/lod/common/networking/NetworkHandler.java index 5a544dab9..0d9e991dc 100644 --- a/common/src/main/java/com/seibel/lod/common/networking/NetworkHandler.java +++ b/common/src/main/java/com/seibel/lod/common/networking/NetworkHandler.java @@ -3,6 +3,9 @@ package com.seibel.lod.common.networking; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.network.ServerGamePacketListenerImpl; /** * This is packet handler for our mod @@ -18,4 +21,10 @@ public class NetworkHandler { // You can make client execute something by using client.execute(Runnable) // In the fabric docs it says that client.execute is ran on the render thread? } + + // If you need the response sender then tell me + // I'll add extra code to get the response sender + public static void receivePacketServer(MinecraftServer server, ServerPlayer client, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf) { + // TODO: Server sided stuff here + } } diff --git a/common/src/main/java/com/seibel/lod/common/networking/NetworkInterface.java b/common/src/main/java/com/seibel/lod/common/networking/NetworkInterface.java index 643a4508c..865847bca 100644 --- a/common/src/main/java/com/seibel/lod/common/networking/NetworkInterface.java +++ b/common/src/main/java/com/seibel/lod/common/networking/NetworkInterface.java @@ -4,5 +4,6 @@ package com.seibel.lod.common.networking; * @author Ran */ public interface NetworkInterface { - void register(); + void register_Client(); + void register_Server(); } diff --git a/fabric/src/main/java/com/seibel/lod/fabric/Main.java b/fabric/src/main/java/com/seibel/lod/fabric/Main.java index 975ca5490..20eb1a941 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/Main.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/Main.java @@ -64,7 +64,7 @@ public class Main implements ClientModInitializer // This loads the mod after minecraft loads which doesn't causes a lot of issues public static void init() { LodCommonMain.initConfig(); - LodCommonMain.startup(null, false); + LodCommonMain.startup(null, false, new NetworkHandler()); DependencySetup.createInitialBindings(); SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); ClientApi.LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); @@ -85,9 +85,8 @@ public class Main implements ClientModInitializer public static void initServer() { LodCommonMain.initConfig(); - LodCommonMain.startup(null, true); + LodCommonMain.startup(null, true, new NetworkHandler()); DependencySetup.createInitialBindings(); - LodCommonMain.registerNetworking(new NetworkHandler()); ClientApi.LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); } } diff --git a/fabric/src/main/java/com/seibel/lod/fabric/networking/NetworkHandler.java b/fabric/src/main/java/com/seibel/lod/fabric/networking/NetworkHandler.java index e5418c428..238aafc17 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/networking/NetworkHandler.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/networking/NetworkHandler.java @@ -3,12 +3,23 @@ package com.seibel.lod.fabric.networking; import com.seibel.lod.common.networking.NetworkInterface; import com.seibel.lod.common.networking.Networking; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +/** + * @author Ran + */ public class NetworkHandler implements NetworkInterface { @Override - public void register() { + public void register_Client() { ClientPlayNetworking.registerGlobalReceiver(Networking.resourceLocation_meow, (client, handler, buf, responseSender) -> { com.seibel.lod.common.networking.NetworkHandler.receivePacketClient(client, handler, buf); }); } + + @Override + public void register_Server() { + ServerPlayNetworking.registerGlobalReceiver(Networking.resourceLocation_meow, (server, player, handler, buf, responseSender) -> { + com.seibel.lod.common.networking.NetworkHandler.receivePacketServer(server, player, handler, buf); + }); + } } diff --git a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java index bae96aca8..8312c79e0 100644 --- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -73,7 +73,7 @@ public class ForgeMain implements LodForgeMethodCaller { // make sure the dependencies are set up before the mod needs them LodCommonMain.initConfig(); - LodCommonMain.startup(this, !FMLLoader.getDist().isClient()); + LodCommonMain.startup(this, !FMLLoader.getDist().isClient(), new NetworkHandler()); ForgeDependencySetup.createInitialBindings(); ClientApi.LOGGER.info("Distant Horizons initializing..."); SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); @@ -82,18 +82,12 @@ public class ForgeMain implements LodForgeMethodCaller ModAccessorApi.bind(IOptifineAccessor.class, new OptifineAccessor()); } } - - private void initServer(final FMLDedicatedServerSetupEvent event) { - LodCommonMain.registerNetworking(new NetworkHandler()); - } - public ForgeMain() { // Register the methods for server and other game events we are interested in FMLJavaModLoadingContext.get().getModEventBus().addListener(this::init); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onClientStart); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::initServer); } private void onClientStart(final FMLClientSetupEvent event) diff --git a/forge/src/main/java/com/seibel/lod/forge/networking/NetworkHandler.java b/forge/src/main/java/com/seibel/lod/forge/networking/NetworkHandler.java index df8caa525..63bc84f73 100644 --- a/forge/src/main/java/com/seibel/lod/forge/networking/NetworkHandler.java +++ b/forge/src/main/java/com/seibel/lod/forge/networking/NetworkHandler.java @@ -3,12 +3,23 @@ package com.seibel.lod.forge.networking; import com.seibel.lod.common.networking.NetworkInterface; import com.seibel.lod.common.networking.Networking; import com.seibel.lod.forge.fabric.api.client.networking.v1.ClientPlayNetworking; +import com.seibel.lod.forge.fabric.api.networking.v1.ServerPlayNetworking; +/** + * @author Ran + */ public class NetworkHandler implements NetworkInterface { @Override - public void register() { + public void register_Client() { ClientPlayNetworking.registerGlobalReceiver(Networking.resourceLocation_meow, (client, handler, buf, responseSender) -> { com.seibel.lod.common.networking.NetworkHandler.receivePacketClient(client, handler, buf); }); } + + @Override + public void register_Server() { + ServerPlayNetworking.registerGlobalReceiver(Networking.resourceLocation_meow, (server, player, handler, buf, responseSender) -> { + com.seibel.lod.common.networking.NetworkHandler.receivePacketServer(server, player, handler, buf); + }); + } }