Fix Forge

This commit is contained in:
s809
2024-03-18 21:38:08 +05:00
parent 51d83d803a
commit 0f349461d9
5 changed files with 64 additions and 35 deletions
@@ -4,19 +4,31 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IPluginPacketSende
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
import com.seibel.distanthorizons.coreapi.ModInfo;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import org.jetbrains.annotations.Nullable;
import java.util.function.Consumer;
public abstract class AbstractPluginPacketSender implements IPluginPacketSender
{
public static final ResourceLocation PLUGIN_CHANNEL_RESOURCE = new ResourceLocation(ModInfo.RESOURCE_NAMESPACE, ModInfo.PLUGIN_CHANNEL_PATH);
@Override
public final void sendPluginPacket(@Nullable IServerPlayerWrapper serverPlayer, ByteBuf buffer)
public final void sendPluginPacket(@Nullable IServerPlayerWrapper serverPlayer, Consumer<ByteBuf> encoder)
{
FriendlyByteBuf buffer = new FriendlyByteBuf(ByteBufAllocator.DEFAULT.buffer());
if (this.shouldAddForgePacketId())
{
buffer.writeByte(0);
}
encoder.accept(buffer);
if (serverPlayer != null)
{
this.sendPluginPacketServer((ServerPlayer) serverPlayer.getWrappedMcObject(), buffer);
@@ -27,7 +39,12 @@ public abstract class AbstractPluginPacketSender implements IPluginPacketSender
}
}
protected abstract void sendPluginPacketServer(ServerPlayer serverPlayer, ByteBuf buffer);
protected abstract void sendPluginPacketClient(ByteBuf buffer);
protected boolean shouldAddForgePacketId()
{
return false;
}
protected abstract void sendPluginPacketServer(ServerPlayer serverPlayer, FriendlyByteBuf buffer);
protected abstract void sendPluginPacketClient(FriendlyByteBuf buffer);
}