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 0c88bf752..08ffe1656 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 @@ -27,6 +27,7 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkSource; import net.minecraft.world.level.chunk.ChunkStatus; import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.concurrent.ConcurrentHashMap; @@ -54,8 +55,14 @@ public class ClientLevelWrapper implements IClientLevelWrapper // wrapper logic // //===============// - public static IClientLevelWrapper getWrapper(ClientLevel level) + @Nullable + public static IClientLevelWrapper getWrapper(@Nullable ClientLevel level) { + if (level == null) + { + return null; + } + // used if the client is connected to a server that defines the currently loaded level if (KEYED_CLIENT_LEVEL_MANAGER.getUseOverrideWrapper()) { @@ -64,10 +71,7 @@ public class ClientLevelWrapper implements IClientLevelWrapper return getWrapperIgnoringOverride(level); } - public static IClientLevelWrapper getWrapperIgnoringOverride(ClientLevel level) - { - return LEVEL_WRAPPER_BY_CLIENT_LEVEL.computeIfAbsent(level, ClientLevelWrapper::new); - } + public static IClientLevelWrapper getWrapperIgnoringOverride(@NotNull ClientLevel level) { return LEVEL_WRAPPER_BY_CLIENT_LEVEL.computeIfAbsent(level, ClientLevelWrapper::new); } @Nullable @Override diff --git a/coreSubProjects b/coreSubProjects index bd3592ee5..efc2ce84e 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit bd3592ee5bf20b522cdf8729449de7e2dd6664c0 +Subproject commit efc2ce84e48ae6f9380fe9c5721d6883bd362a23 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 d9ca84a05..b290d6aad 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 @@ -27,9 +27,9 @@ public class MixinClientPacketListener void onHandleLoginEnd(CallbackInfo ci) { ClientApi.INSTANCE.onClientOnlyConnected(); } @Inject(method = "handleRespawn", at = @At("HEAD")) - void onHandleRespawnStart(CallbackInfo ci) { ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(level)); } + void onHandleRespawnStart(CallbackInfo ci) { ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(this.level)); } @Inject(method = "handleRespawn", at = @At("RETURN")) - void onHandleRespawnEnd(CallbackInfo ci) { ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(level)); } + void onHandleRespawnEnd(CallbackInfo ci) { ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(this.level)); } #if PRE_MC_1_19_4 @Inject(method = "cleanup", at = @At("HEAD")) @@ -38,10 +38,9 @@ public class MixinClientPacketListener #endif void onCleanupStart(CallbackInfo ci) { - // TODO Is this even needed here? - if (level != null) + if (this.level != null) { - ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(level)); + ClientApi.INSTANCE.clientLevelUnloadEvent(ClientLevelWrapper.getWrapper(this.level)); } ClientApi.INSTANCE.onClientOnlyDisconnected(); }