From 7dfe0e4c50df3609ecce4687680dca70c793a64e Mon Sep 17 00:00:00 2001 From: s809 <11816467-s809@users.noreply.gitlab.com> Date: Sun, 2 Jun 2024 20:00:16 +0500 Subject: [PATCH] Fix compilation --- .../common/AbstractPluginPacketSender.java | 36 ++------ .../common/CommonPacketPayload.java | 33 +++++--- coreSubProjects | 2 +- .../fabric/FabricClientProxy.java | 33 +++----- .../fabric/FabricPluginPacketSender.java | 21 ++--- .../fabric/FabricServerProxy.java | 21 ++--- .../neoforge/NeoforgeMain.java | 9 +- .../neoforge/NeoforgePluginPacketSender.java | 84 ++++++------------- .../neoforge/NeoforgeServerProxy.java | 1 - 9 files changed, 89 insertions(+), 151 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/AbstractPluginPacketSender.java b/common/src/main/java/com/seibel/distanthorizons/common/AbstractPluginPacketSender.java index ed3c206aa..0b988ab07 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/AbstractPluginPacketSender.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/AbstractPluginPacketSender.java @@ -1,5 +1,6 @@ -package com.seibel.distanthorizons.common.wrappers.network; +package com.seibel.distanthorizons.common; +import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IPluginPacketSender; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper; import com.seibel.distanthorizons.coreapi.ModInfo; @@ -16,39 +17,14 @@ public abstract class AbstractPluginPacketSender implements IPluginPacketSender public static final ResourceLocation PLUGIN_CHANNEL_RESOURCE = new ResourceLocation(ModInfo.RESOURCE_NAMESPACE, ModInfo.PLUGIN_CHANNEL_PATH); public static final ResourceLocation WRAPPER_PACKET_RESOURCE = new ResourceLocation(ModInfo.RESOURCE_NAMESPACE, ModInfo.WRAPPER_PACKET_PATH); - @Override - public final void sendPluginPacketClient(Consumer encoder) - { - FriendlyByteBuf buffer = this.createBuffer(encoder); - this.sendPluginPacketClient(buffer); - } @Override - public final void sendPluginPacketServer(IServerPlayerWrapper serverPlayer, Consumer encoder) + public final void sendPluginPacketServer(IServerPlayerWrapper serverPlayer, PluginChannelMessage message) { - FriendlyByteBuf buffer = this.createBuffer(encoder); - this.sendPluginPacketServer((ServerPlayer) serverPlayer.getWrappedMcObject(), buffer); + this.sendPluginPacketServer((ServerPlayer) serverPlayer.getWrappedMcObject(), message); } - private FriendlyByteBuf createBuffer(Consumer encoder) - { - FriendlyByteBuf buffer = new FriendlyByteBuf(ByteBufAllocator.DEFAULT.buffer()); - - if (this.shouldAddForgePacketId()) - { - buffer.writeByte(0); - } - - encoder.accept(buffer); - return buffer; - } - - protected boolean shouldAddForgePacketId() - { - return false; - } - - protected abstract void sendPluginPacketClient(FriendlyByteBuf buffer); - protected abstract void sendPluginPacketServer(ServerPlayer serverPlayer, FriendlyByteBuf buffer); + @Override public abstract void sendPluginPacketClient(PluginChannelMessage message); + public abstract void sendPluginPacketServer(ServerPlayer serverPlayer, PluginChannelMessage message); } \ No newline at end of file diff --git a/common/src/main/java/com/seibel/distanthorizons/common/CommonPacketPayload.java b/common/src/main/java/com/seibel/distanthorizons/common/CommonPacketPayload.java index bd555be96..870acf5af 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/CommonPacketPayload.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/CommonPacketPayload.java @@ -1,9 +1,9 @@ -package com.seibel.distanthorizons.fabric; +package com.seibel.distanthorizons.common; -import com.seibel.distanthorizons.common.AbstractPluginPacketSender; import com.seibel.distanthorizons.core.network.messages.PluginMessageRegistry; import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage; import com.seibel.distanthorizons.core.network.protocol.INetworkObject; +import com.seibel.distanthorizons.coreapi.ModInfo; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; @@ -12,9 +12,9 @@ import org.jetbrains.annotations.Nullable; import java.util.Objects; -public class FabricPacketPayload implements CustomPacketPayload +public class CommonPacketPayload implements CustomPacketPayload { - public static final Type TYPE = new Type<>(AbstractPluginPacketSender.WRAPPER_PACKET_RESOURCE); + public static final Type TYPE = new Type<>(AbstractPluginPacketSender.WRAPPER_PACKET_RESOURCE); @NotNull @Override @@ -27,27 +27,36 @@ public class FabricPacketPayload implements CustomPacketPayload public PluginChannelMessage message; - public FabricPacketPayload(@Nullable PluginChannelMessage message) + public CommonPacketPayload(@Nullable PluginChannelMessage message) { this.message = message; } - public static class Codec implements StreamCodec + public static class Codec implements StreamCodec { @NotNull @Override - public FabricPacketPayload decode(FriendlyByteBuf in) + public CommonPacketPayload decode(@NotNull FriendlyByteBuf in) { - return new FabricPacketPayload( - INetworkObject.decodeToInstance(PluginMessageRegistry.INSTANCE.createMessage(in.readUnsignedShort()), in) - ); + if (in.readShort() != ModInfo.PROTOCOL_VERSION) + { + return new CommonPacketPayload(null); + } + + PluginChannelMessage message = PluginMessageRegistry.INSTANCE.createMessage(in.readUnsignedShort()); + return new CommonPacketPayload(INetworkObject.decodeToInstance(message, in)); } @Override - public void encode(FriendlyByteBuf out, FabricPacketPayload payload) + public void encode(@NotNull FriendlyByteBuf out, CommonPacketPayload payload) { - Objects.requireNonNull(payload.message).encode(out); + Objects.requireNonNull(payload.message); + + out.writeShort(ModInfo.PROTOCOL_VERSION); + + out.writeShort(PluginMessageRegistry.INSTANCE.getMessageId(payload.message)); + payload.message.encode(out); } } diff --git a/coreSubProjects b/coreSubProjects index b0777789f..a6fc8f170 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit b0777789fd89ff39089ec7beecc0b4fa0574cbd6 +Subproject commit a6fc8f1702d8796beb0e051091f215f3774ad090 diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java index 79913aa1a..f8621891a 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java @@ -19,18 +19,15 @@ package com.seibel.distanthorizons.fabric; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import com.seibel.distanthorizons.common.AbstractModInitializer; +import com.seibel.distanthorizons.common.CommonPacketPayload; import com.seibel.distanthorizons.common.wrappers.McObjectConverter; -import com.seibel.distanthorizons.common.wrappers.network.AbstractPluginPacketSender; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.mojang.blaze3d.platform.InputConstants; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.core.api.internal.SharedApi; -import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; @@ -39,7 +36,6 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.ISodiumAcce import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import com.seibel.distanthorizons.coreapi.util.math.Mat4f; import com.seibel.distanthorizons.fabric.wrappers.modAccessor.SodiumAccessor; -import io.netty.buffer.ByteBuf; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents; @@ -48,7 +44,7 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.fabricmc.fabric.api.event.player.AttackBlockCallback; import net.fabricmc.fabric.api.event.player.UseBlockCallback; -import net.fabricmc.fabric.api.networking.v1.PacketSender; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.TitleScreen; @@ -58,13 +54,10 @@ import java.nio.FloatBuffer; import java.util.HashSet; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.multiplayer.ClientPacketListener; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.InteractionResult; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.phys.HitResult; import org.apache.logging.log4j.Logger; -import org.joml.Matrix4f; import org.lwjgl.glfw.GLFW; /** @@ -231,16 +224,16 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy // networking event // //==================// - ClientPlayNetworking.registerGlobalReceiver(AbstractPluginPacketSender.PLUGIN_CHANNEL_RESOURCE, - (Minecraft client, ClientPacketListener handler, FriendlyByteBuf mcBuffer, PacketSender responseSender) -> - { - ByteBuf buffer = mcBuffer.asReadOnly(); - - // (Neo)Forge packet ID (Unused, always expected to be 0) - buffer.readByte(); - - ClientApi.INSTANCE.pluginMessageReceived(buffer); - }); + PayloadTypeRegistry.playC2S().register(CommonPacketPayload.TYPE, new CommonPacketPayload.Codec()); + PayloadTypeRegistry.playS2C().register(CommonPacketPayload.TYPE, new CommonPacketPayload.Codec()); + ClientPlayNetworking.registerGlobalReceiver(CommonPacketPayload.TYPE, (payload, context) -> + { + if (payload.message == null) + { + return; + } + ClientApi.INSTANCE.pluginMessageReceived(payload.message); + }); } public void onKeyInput() @@ -279,4 +272,4 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy this.previouslyPressKeyCodes = currentKeyDown; } -} +} \ No newline at end of file diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricPluginPacketSender.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricPluginPacketSender.java index fe1a85a64..33be11b32 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricPluginPacketSender.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricPluginPacketSender.java @@ -1,29 +1,24 @@ package com.seibel.distanthorizons.fabric; -import com.seibel.distanthorizons.common.wrappers.network.AbstractPluginPacketSender; +import com.seibel.distanthorizons.common.AbstractPluginPacketSender; +import com.seibel.distanthorizons.common.CommonPacketPayload; +import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; public class FabricPluginPacketSender extends AbstractPluginPacketSender { @Override - protected boolean shouldAddForgePacketId() + public void sendPluginPacketClient(PluginChannelMessage message) { - return true; + ClientPlayNetworking.send(new CommonPacketPayload(message)); } @Override - protected void sendPluginPacketClient(FriendlyByteBuf buffer) + public void sendPluginPacketServer(ServerPlayer serverPlayer, PluginChannelMessage message) { - ClientPlayNetworking.send(PLUGIN_CHANNEL_RESOURCE, buffer); + ServerPlayNetworking.send(serverPlayer, new CommonPacketPayload(message)); } - @Override - protected void sendPluginPacketServer(ServerPlayer serverPlayer, FriendlyByteBuf buffer) - { - ServerPlayNetworking.send(serverPlayer, PLUGIN_CHANNEL_RESOURCE, buffer); - } - -} +} \ No newline at end of file diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java index e676c4c41..d8e1a6479 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java @@ -1,9 +1,9 @@ package com.seibel.distanthorizons.fabric; import com.seibel.distanthorizons.common.AbstractModInitializer; +import com.seibel.distanthorizons.common.CommonPacketPayload; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper; -import com.seibel.distanthorizons.common.wrappers.network.AbstractPluginPacketSender; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGenerationEnvironment; @@ -11,12 +11,12 @@ import com.seibel.distanthorizons.core.api.internal.ServerApi; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper; -import io.netty.buffer.ByteBuf; import net.fabricmc.fabric.api.entity.event.v1.ServerEntityWorldChangeEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerChunkEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.client.Minecraft; @@ -156,16 +156,17 @@ public class FabricServerProxy implements AbstractModInitializer.IEventProxy if (this.isDedicated) { - ServerPlayNetworking.registerGlobalReceiver(AbstractPluginPacketSender.PLUGIN_CHANNEL_RESOURCE, (server, serverPlayer, handler, friendlyByteBuf, responseSender) -> + PayloadTypeRegistry.playC2S().register(CommonPacketPayload.TYPE, new CommonPacketPayload.Codec()); + PayloadTypeRegistry.playS2C().register(CommonPacketPayload.TYPE, new CommonPacketPayload.Codec()); + ServerPlayNetworking.registerGlobalReceiver(CommonPacketPayload.TYPE, (payload, context) -> { - ByteBuf nettyByteBuf = friendlyByteBuf.asReadOnly(); - - // (Neo)Forge packet ID (Unused, always expected to be 0) - nettyByteBuf.readByte(); - - ServerApi.INSTANCE.pluginMessageReceived(ServerPlayerWrapper.getWrapper(serverPlayer), nettyByteBuf); + if (payload.message == null) + { + return; + } + ServerApi.INSTANCE.pluginMessageReceived(ServerPlayerWrapper.getWrapper(context.player()), payload.message); }); } } -} +} \ No newline at end of file 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 fc8fedbb0..c1e291419 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeMain.java @@ -33,6 +33,7 @@ import com.seibel.distanthorizons.neoforge.wrappers.modAccessor.ModChecker; import com.seibel.distanthorizons.neoforge.wrappers.modAccessor.OptifineAccessor; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.MinecraftServer; +import net.neoforged.bus.api.EventPriority; import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModLoadingContext; import net.neoforged.fml.common.Mod; @@ -41,14 +42,14 @@ import net.neoforged.fml.event.lifecycle.FMLDedicatedServerSetupEvent; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.event.RegisterCommandsEvent; import net.neoforged.neoforge.event.server.ServerStartingEvent; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlerEvent; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import java.util.function.Consumer; #if MC_VER < MC_1_20_6 import net.neoforged.neoforge.client.ConfigScreenHandler; #else -import net.neoforged.neoforge.client.gui.IConfigScreenFactory; +import net.neoforged.neoforge.client.gui.IConfigScreenFactory; #endif /** @@ -77,11 +78,11 @@ public class NeoforgeMain extends AbstractModInitializer //============// // networking // //============// - public void registerNetworkingClient(RegisterPayloadHandlerEvent event) + public void registerNetworkingClient(RegisterPayloadHandlersEvent event) { NeoforgePluginPacketSender.setPacketHandler(event, ClientApi.INSTANCE::pluginMessageReceived); } - public void registerNetworkingServer(RegisterPayloadHandlerEvent event) + public void registerNetworkingServer(RegisterPayloadHandlersEvent event) { NeoforgePluginPacketSender.setPacketHandler(event, ServerApi.INSTANCE::pluginMessageReceived); } 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 6d8273076..6d687359e 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgePluginPacketSender.java @@ -1,88 +1,52 @@ package com.seibel.distanthorizons.neoforge; +import com.seibel.distanthorizons.common.CommonPacketPayload; import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper; -import com.seibel.distanthorizons.common.wrappers.network.AbstractPluginPacketSender; +import com.seibel.distanthorizons.common.AbstractPluginPacketSender; +import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper; -import com.seibel.distanthorizons.coreapi.ModInfo; -import io.netty.buffer.ByteBuf; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.neoforged.neoforge.network.PacketDistributor; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlerEvent; -import net.neoforged.neoforge.network.handling.PlayPayloadContext; -import net.neoforged.neoforge.network.registration.IPayloadRegistrar; -import org.jetbrains.annotations.NotNull; +import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; +import net.neoforged.neoforge.network.registration.PayloadRegistrar; +import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; public class NeoforgePluginPacketSender extends AbstractPluginPacketSender { - private static BiConsumer packetConsumer; + private static BiConsumer packetConsumer; - public static void setPacketHandler(RegisterPayloadHandlerEvent event, Consumer consumer) + public static void setPacketHandler(RegisterPayloadHandlersEvent event, Consumer consumer) { setPacketHandler(event, (player, buffer) -> consumer.accept(buffer)); } - public static void setPacketHandler(RegisterPayloadHandlerEvent event, BiConsumer consumer) + public static void setPacketHandler(RegisterPayloadHandlersEvent event, BiConsumer consumer) { packetConsumer = consumer; - IPayloadRegistrar registrar = event.registrar(ModInfo.RESOURCE_NAMESPACE); - registrar.play(PacketWrapperPayload.ID, PacketWrapperPayload::createFrom, handler -> handler - .client(NeoforgePluginPacketSender::handlePacket) - .server(NeoforgePluginPacketSender::handlePacket)) - .optional(); - } - - public static void handlePacket(PacketWrapperPayload data, PlayPayloadContext context) - { - ServerPlayerWrapper serverPlayer = context.player() - .map(player -> player instanceof ServerPlayer ? (ServerPlayer) player : null) - .map(ServerPlayerWrapper::getWrapper) - .orElse(null); - packetConsumer.accept(serverPlayer, data.buffer); + + PayloadRegistrar registrar = event.registrar("1"); + registrar.commonBidirectional(CommonPacketPayload.TYPE, new CommonPacketPayload.Codec(), (payload, context) -> + { + ServerPlayerWrapper serverPlayer = Optional.of(context.player()) + .map(player -> player instanceof ServerPlayer ? (ServerPlayer) player : null) + .map(ServerPlayerWrapper::getWrapper) + .orElse(null); + packetConsumer.accept(serverPlayer, payload.message); + }); } @Override - protected void sendPluginPacketClient(FriendlyByteBuf buffer) + public void sendPluginPacketClient(PluginChannelMessage message) { - PacketDistributor.SERVER.noArg().send(new PacketWrapperPayload(buffer)); + PacketDistributor.sendToServer(new CommonPacketPayload(message)); } @Override - protected void sendPluginPacketServer(ServerPlayer serverPlayer, FriendlyByteBuf buffer) + public void sendPluginPacketServer(ServerPlayer serverPlayer, PluginChannelMessage message) { - PacketDistributor.PLAYER.with(serverPlayer).send(new PacketWrapperPayload(buffer)); + PacketDistributor.sendToPlayer(serverPlayer, new CommonPacketPayload(message)); } - - public record PacketWrapperPayload( - ByteBuf buffer - ) implements CustomPacketPayload - { - public static final ResourceLocation ID = AbstractPluginPacketSender.WRAPPER_PACKET_RESOURCE; - - public static PacketWrapperPayload createFrom(FriendlyByteBuf buffer) - { - return new PacketWrapperPayload(buffer.readBytes(buffer.readableBytes())); - } - - @Override - @NotNull - public ResourceLocation id() - { - return ID; - } - - @Override - public void write(FriendlyByteBuf out) - { - this.buffer.resetReaderIndex(); - out.writeBytes(this.buffer); - } - - } - -} +} \ No newline at end of file diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java index d08f8d548..c53a34ccb 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java @@ -16,7 +16,6 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.TickEvent; import net.neoforged.neoforge.event.entity.player.PlayerEvent; import net.neoforged.neoforge.event.level.ChunkEvent; import net.neoforged.neoforge.event.level.LevelEvent;