diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java index 5b1132662..341c78754 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java @@ -23,7 +23,6 @@ import com.mojang.brigadier.CommandDispatcher; import com.seibel.distanthorizons.common.AbstractModInitializer; import com.seibel.distanthorizons.common.wrappers.gui.GetConfigScreen; import com.seibel.distanthorizons.core.api.internal.ClientApi; -import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.api.internal.ServerApi; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.network.messages.AbstractNetworkMessage; @@ -51,9 +50,13 @@ import java.util.function.Consumer; #if MC_VER < MC_1_20_6 import net.neoforged.neoforge.client.ConfigScreenHandler; +#elif MC_VER < MC_1_21_7 +import net.neoforged.neoforge.client.gui.IConfigScreenFactory; +import org.jetbrains.annotations.NotNull; #else import net.neoforged.neoforge.client.gui.IConfigScreenFactory; import org.jetbrains.annotations.NotNull; +import net.neoforged.neoforge.client.network.event.RegisterClientPayloadHandlersEvent; #endif /** @@ -72,6 +75,11 @@ public class NeoforgeMain extends AbstractModInitializer { this.onInitializeClient(); eventBus.addListener(this::registerNetworkingClientServer); + + #if MC_VER < MC_1_21_7 + #else + eventBus.addListener(this::registerClientPayloadEvent); + #endif }); // handles dedicated servers @@ -99,6 +107,12 @@ public class NeoforgeMain extends AbstractModInitializer public void registerNetworkingServer(RegisterPayloadHandlersEvent event) { NeoforgePluginPacketSender.setPacketHandler(event, ServerApi.INSTANCE::pluginMessageReceived); } + #if MC_VER < MC_1_21_7 + #else + public void registerClientPayloadEvent(RegisterClientPayloadHandlersEvent event) + { NeoforgePluginPacketSender.registerClientPacketHandler(event); } + #endif + diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java index a6c3abd5d..686ca8a8d 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java @@ -5,22 +5,28 @@ import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper; import com.seibel.distanthorizons.common.AbstractPluginPacketSender; import com.seibel.distanthorizons.core.network.messages.AbstractNetworkMessage; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper; -import net.minecraft.client.Minecraft; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.level.ServerPlayer; import net.neoforged.neoforge.network.PacketDistributor; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import net.neoforged.neoforge.network.registration.PayloadRegistrar; -import java.util.Objects; import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; +#if MC_VER < MC_1_21_7 +#else +import net.neoforged.neoforge.client.network.ClientPacketDistributor; +import net.neoforged.neoforge.client.network.event.RegisterClientPayloadHandlersEvent; +#endif + + public class NeoforgePluginPacketSender extends AbstractPluginPacketSender { private static BiConsumer packetConsumer; + + public static void setPacketHandler(RegisterPayloadHandlersEvent event, Consumer consumer) { setPacketHandler(event, (player, buffer) -> consumer.accept(buffer)); } public static void setPacketHandler(RegisterPayloadHandlersEvent event, BiConsumer consumer) @@ -42,13 +48,30 @@ public class NeoforgePluginPacketSender extends AbstractPluginPacketSender }); } + #if MC_VER < MC_1_21_7 + #else + public static void registerClientPacketHandler(RegisterClientPayloadHandlersEvent event) + { + // as of MC 1.21.7 Neo added a separate client network register + // https://github.com/neoforged/NeoForge/pull/2272 + event.register(CommonPacketPayload.TYPE, (payload, context) -> + { + if (payload.message() != null) + { + packetConsumer.accept(null, payload.message()); + } + }); + } + #endif + @Override public void sendToServer(AbstractNetworkMessage message) { - if (Minecraft.getInstance().getConnection() != null) - { - Minecraft.getInstance().getConnection().send(new CommonPacketPayload(message)); - } + #if MC_VER < MC_1_21_7 + PacketDistributor.sendToServer(new CommonPacketPayload(message)); + #else + ClientPacketDistributor.sendToServer(new CommonPacketPayload(message)); + #endif } @Override diff --git a/versionProperties/1.21.7.properties b/versionProperties/1.21.7.properties index 33327073d..2eb4602df 100644 --- a/versionProperties/1.21.7.properties +++ b/versionProperties/1.21.7.properties @@ -42,9 +42,9 @@ fabric_api_version=0.128.2+1.21.7 # (Neo)Forge loader forge_version= -neoforge_version=21.7.1-beta +neoforge_version=21.7.3-beta # around 6.19 neo changed how their render API works, failing to meet this causes the game to crash - neoforge_version_range=[21.7.1-beta,) + neoforge_version_range=[,) # (Neo)Forge mod versions starlight_version_forge=