Fix Forge
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.seibel.distanthorizons.forge;
|
||||
|
||||
import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper;
|
||||
import com.seibel.distanthorizons.common.wrappers.network.AbstractPluginPacketSender;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
@@ -9,6 +11,8 @@ import net.minecraftforge.network.PacketDistributor;
|
||||
#if MC_VER >= MC_1_20_2
|
||||
import net.minecraftforge.network.ChannelBuilder;
|
||||
import net.minecraftforge.network.SimpleChannel;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
#elif MC_VER >= MC_1_18_2
|
||||
import net.minecraftforge.network.NetworkRegistry;
|
||||
import net.minecraftforge.network.simple.SimpleChannel;
|
||||
@@ -20,6 +24,7 @@ import net.minecraftforge.fml.network.NetworkRegistry;
|
||||
import net.minecraftforge.fml.network.simple.SimpleChannel;
|
||||
#endif
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -45,28 +50,39 @@ public class ForgePluginPacketSender extends AbstractPluginPacketSender
|
||||
{
|
||||
setPacketHandler((player, buffer) -> consumer.accept(buffer));
|
||||
}
|
||||
public static void setPacketHandler(BiConsumer<ServerPlayer, ByteBuf> consumer)
|
||||
public static void setPacketHandler(BiConsumer<IServerPlayerWrapper, ByteBuf> consumer)
|
||||
{
|
||||
#if MC_VER >= MC_1_20_2
|
||||
PLUGIN_CHANNEL.messageBuilder(ByteBuf.class, 0)
|
||||
PLUGIN_CHANNEL.messageBuilder(FriendlyByteBuf.class, 0)
|
||||
.encoder((buffer, mcBuffer) -> mcBuffer.writeBytes(buffer))
|
||||
.decoder(FriendlyByteBuf::asReadOnly)
|
||||
.decoder(FriendlyByteBuf::new)
|
||||
.consumerNetworkThread((buffer, context) ->
|
||||
{
|
||||
consumer.accept(context.getSender(), buffer);
|
||||
if (context.getSender() != null)
|
||||
{
|
||||
consumer.accept(ServerPlayerWrapper.getWrapper(context.getSender()), buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
consumer.accept(null, buffer);
|
||||
}
|
||||
context.setPacketHandled(true);
|
||||
})
|
||||
.add();
|
||||
#else // < 1.20.2
|
||||
PLUGIN_CHANNEL.registerMessage(0, ByteBuf.class,
|
||||
// encoder
|
||||
PLUGIN_CHANNEL.registerMessage(0, FriendlyByteBuf.class,
|
||||
(buffer, mcBuffer) -> mcBuffer.writeBytes(buffer),
|
||||
// decoder
|
||||
FriendlyByteBuf::asReadOnly,
|
||||
// message consumer
|
||||
FriendlyByteBuf::new,
|
||||
(buffer, context) ->
|
||||
{
|
||||
consumer.accept(context.get().getSender(), buffer);
|
||||
if (context.get().getSender() != null)
|
||||
{
|
||||
consumer.accept(ServerPlayerWrapper.getWrapper(context.get().getSender()), buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
consumer.accept(null, buffer);
|
||||
}
|
||||
context.get().setPacketHandled(true);
|
||||
}
|
||||
);
|
||||
@@ -74,7 +90,7 @@ public class ForgePluginPacketSender extends AbstractPluginPacketSender
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendPluginPacketClient(ByteBuf buffer)
|
||||
protected void sendPluginPacketClient(FriendlyByteBuf buffer)
|
||||
{
|
||||
#if MC_VER >= MC_1_20_2
|
||||
PLUGIN_CHANNEL.send(buffer, PacketDistributor.SERVER.noArg());
|
||||
@@ -84,7 +100,7 @@ public class ForgePluginPacketSender extends AbstractPluginPacketSender
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void sendPluginPacketServer(ServerPlayer serverPlayer, ByteBuf buffer)
|
||||
protected void sendPluginPacketServer(ServerPlayer serverPlayer, FriendlyByteBuf buffer)
|
||||
{
|
||||
#if MC_VER >= MC_1_20_2
|
||||
PLUGIN_CHANNEL.send(buffer, PacketDistributor.PLAYER.with(serverPlayer));
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper;
|
||||
import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper;
|
||||
import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper;
|
||||
import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGenerationEnvironment;
|
||||
import com.seibel.distanthorizons.core.api.internal.ClientApi;
|
||||
import com.seibel.distanthorizons.core.api.internal.ServerApi;
|
||||
import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.chunk.IChunkWrapper;
|
||||
@@ -59,7 +60,6 @@ public class ForgeServerProxy implements AbstractModInitializer.IEventProxy
|
||||
#endif
|
||||
|
||||
private final ServerApi serverApi = ServerApi.INSTANCE;
|
||||
private static final Logger LOGGER = DhLoggerBuilder.getLogger();
|
||||
private final boolean isDedicated;
|
||||
public static Supplier<Boolean> isGenerationThreadChecker = null;
|
||||
|
||||
@@ -69,6 +69,10 @@ public class ForgeServerProxy implements AbstractModInitializer.IEventProxy
|
||||
public void registerEvents()
|
||||
{
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
if (this.isDedicated)
|
||||
{
|
||||
ForgePluginPacketSender.setPacketHandler(ServerApi.INSTANCE::pluginMessageReceived);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user