Fix Neoforge 1.21.7 packet registration changes
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+30
-7
@@ -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<IServerPlayerWrapper, AbstractNetworkMessage> packetConsumer;
|
||||
|
||||
|
||||
|
||||
public static void setPacketHandler(RegisterPayloadHandlersEvent event, Consumer<AbstractNetworkMessage> consumer)
|
||||
{ setPacketHandler(event, (player, buffer) -> consumer.accept(buffer)); }
|
||||
public static void setPacketHandler(RegisterPayloadHandlersEvent event, BiConsumer<IServerPlayerWrapper, AbstractNetworkMessage> 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
|
||||
|
||||
@@ -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=
|
||||
|
||||
Reference in New Issue
Block a user