From 6600703d52735a9eae611196ee14026d41955e7c Mon Sep 17 00:00:00 2001 From: Acuadragon100 <8165958-acuadragon100@users.noreply.gitlab.com> Date: Fri, 24 Apr 2026 22:04:50 +0200 Subject: [PATCH] Redo loading --- .../common/wrappers/world/ClientLevelWrapper.java | 7 ++++++- coreSubProjects | 2 +- .../seibel/distanthorizons/fabric/FabricServerProxy.java | 5 +++-- .../fabric/mixins/client/MixinClientPacketListener.java | 3 +-- .../distanthorizons/neoforge/NeoforgeServerProxy.java | 5 +++-- .../neoforge/mixins/client/MixinClientPacketListener.java | 7 ------- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java index d350116a6..b2ddaf1f8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java @@ -8,6 +8,7 @@ import com.seibel.distanthorizons.common.wrappers.block.ClientBlockStateColorCac import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; import com.seibel.distanthorizons.common.wrappers.level.KeyedClientLevelManager; import com.seibel.distanthorizons.core.api.internal.ClientApi; +import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.level.*; @@ -15,6 +16,7 @@ import com.seibel.distanthorizons.core.level.IServerKeyedClientLevel; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos; import com.seibel.distanthorizons.core.pos.DhChunkPos; +import com.seibel.distanthorizons.core.world.AbstractDhWorld; import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IBiomeWrapper; @@ -155,7 +157,10 @@ public class ClientLevelWrapper implements IClientLevelWrapper if (wrapper.isDhLevelLoaded() && wrapper.level != MINECRAFT.level && currentTime - wrapper.getLastRenderTime() > timeout) { LOGGER.debug("Unloading level " + wrapper.getDhIdentifier() + " due to inactivity"); - ClientApi.INSTANCE.clientLevelUnloadEvent(wrapper); + AbstractDhWorld world = SharedApi.getAbstractDhWorld(); + if (world != null) { + world.unloadLevel(wrapper); + } if (wrapper.isDhLevelLoaded()) { wrapper.onUnload(); } diff --git a/coreSubProjects b/coreSubProjects index f5ac5c56b..ef3e7763d 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit f5ac5c56b4b419b1ac137e442f6188aaf1ae08bb +Subproject commit ef3e7763dc4dd3ab5a2dd982c133ecad4eb4f1f3 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 cf0568fb5..d5bfb41de 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricServerProxy.java @@ -10,6 +10,7 @@ import com.seibel.distanthorizons.common.wrappers.misc.ServerPlayerWrapper; import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.common.wrappers.world.ServerLevelWrapper; import com.seibel.distanthorizons.core.api.internal.ServerApi; +import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.common.AbstractPluginPacketSender; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; @@ -113,7 +114,7 @@ public class FabricServerProxy implements AbstractModInitializer.IEventProxy ServerLevelEvents.LOAD.register((server, level) -> #endif { - ServerApi.INSTANCE.serverLevelLoadEvent(this.getServerLevelWrapper(level)); + SharedApi.getAbstractDhWorld().getOrLoadLevel(this.getServerLevelWrapper(level)); }); // ServerLevelUnloadEvent @@ -123,7 +124,7 @@ public class FabricServerProxy implements AbstractModInitializer.IEventProxy ServerLevelEvents.UNLOAD.register((server, level) -> #endif { - ServerApi.INSTANCE.serverLevelUnloadEvent(this.getServerLevelWrapper(level)); + SharedApi.getAbstractDhWorld().unloadLevel(this.getServerLevelWrapper(level)); }); // ServerChunkLoadEvent diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java index c255d6cf2..986181457 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java @@ -31,8 +31,7 @@ public class MixinClientPacketListener @Inject(method = "handleLogin", at = @At("RETURN")) void onHandleLoginEnd(CallbackInfo ci) { - ClientApi.INSTANCE.onClientOnlyConnected(); - ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(this.level, true)); + ClientApi.INSTANCE.onClientOnlyConnected(); } #if MC_VER < MC_1_19_4 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 a91dcc863..cc611f688 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/NeoforgeServerProxy.java @@ -7,6 +7,7 @@ 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.ServerApi; +import com.seibel.distanthorizons.core.api.internal.SharedApi; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper; @@ -87,7 +88,7 @@ public class NeoforgeServerProxy implements AbstractModInitializer.IEventProxy { if (GetEventLevel(event) instanceof ServerLevel) { - this.serverApi.serverLevelLoadEvent(this.getServerLevelWrapper((ServerLevel) GetEventLevel(event))); + SharedApi.getAbstractDhWorld().getOrLoadLevel(this.getServerLevelWrapper((ServerLevel) GetEventLevel(event))); } } @@ -97,7 +98,7 @@ public class NeoforgeServerProxy implements AbstractModInitializer.IEventProxy { if (GetEventLevel(event) instanceof ServerLevel) { - this.serverApi.serverLevelUnloadEvent(this.getServerLevelWrapper((ServerLevel) GetEventLevel(event))); + SharedApi.getAbstractDhWorld().unloadLevel(this.getServerLevelWrapper((ServerLevel) GetEventLevel(event))); } } diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinClientPacketListener.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinClientPacketListener.java index 3a52d4ba9..93edcd60a 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinClientPacketListener.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinClientPacketListener.java @@ -1,11 +1,8 @@ package com.seibel.distanthorizons.neoforge.mixins.client; -import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.core.api.internal.ClientApi; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientPacketListener; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -13,14 +10,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ClientPacketListener.class) public class MixinClientPacketListener { - @Shadow - private ClientLevel level; - @Inject(method = "handleLogin", at = @At("RETURN")) void onHandleLoginEnd(CallbackInfo ci) { ClientApi.INSTANCE.onClientOnlyConnected(); - ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(this.level, true)); } #if MC_VER < MC_1_19_4