From 48966bf32aebf9e0922e300680a3d6a050a83a7a Mon Sep 17 00:00:00 2001 From: Acuadragon100 <8165958-acuadragon100@users.noreply.gitlab.com> Date: Fri, 15 May 2026 15:58:56 +0200 Subject: [PATCH] Use the dimension id number as the level key on 1.12.2. --- .../level/KeyedClientLevelManager.java | 2 +- .../minecraft/MinecraftClientWrapper.java | 22 ++++++++++------- .../minecraft/MinecraftServerWrapper.java | 24 ++++++++++--------- .../wrappers/world/ClientLevelWrapper.java | 2 +- .../wrappers/world/ServerLevelWrapper.java | 2 +- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/level/KeyedClientLevelManager.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/level/KeyedClientLevelManager.java index f29fdaa46..c2734b20f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/level/KeyedClientLevelManager.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/level/KeyedClientLevelManager.java @@ -137,7 +137,7 @@ public class KeyedClientLevelManager implements IKeyedClientLevelManager { this.keyedLevelsCache.keySet().removeIf(level -> { #if MC_VER <= MC_1_12_2 - String levelDim = level.provider.getDimensionType().getName(); + String levelDim = String.valueOf(level.provider.getDimension()); #elif MC_VER <= MC_1_21_10 String levelDim = level.dimension().location().toString(); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java index 3aac58b0d..f823809b7 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java @@ -635,11 +635,17 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra { if (!hasSinglePlayerServer()) return null; #if MC_VER <= MC_1_12_2 - DimensionType levelID = null; - try { - levelID = DimensionType.byName(levelKey); - } catch (IllegalArgumentException ignored) {} - #elif MC_VER <= MC_1_21_10 + int dimensionID; + try + { + dimensionID = Integer.parseInt(levelKey); + } + catch (NumberFormatException ignored) + { + return null; + } + #else + #if MC_VER <= MC_1_21_10 ResourceLocation levelID = ResourceLocation.tryParse(levelKey); #else Identifier levelID = Identifier.tryParse(levelKey); @@ -648,10 +654,10 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra #if MC_VER > MC_1_19_2 ResourceKey resourceKey = ResourceKey.create(Registries.DIMENSION, levelID); - #elif MC_VER > MC_1_12_2 - ResourceKey resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID); #else - int dimensionID = Arrays.stream(DimensionManager.getDimensions(levelID)).findFirst().orElse(0); //TODO Maybe 1.12 should use the dimension number as the level key instead? + ResourceKey resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID); + #endif + #endif #if MC_VER <= MC_1_12_2 diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftServerWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftServerWrapper.java index 71cf4a705..5515239d1 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftServerWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftServerWrapper.java @@ -11,9 +11,7 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; #else -import net.minecraft.world.DimensionType; import net.minecraft.world.WorldServer; -import net.minecraftforge.common.DimensionManager; #endif #if MC_VER <= MC_1_12_2 @@ -30,7 +28,6 @@ import net.minecraft.core.Registry; #endif import java.io.File; -import java.util.Arrays; public class MinecraftServerWrapper implements IMinecraftSharedWrapper { @@ -95,11 +92,17 @@ public class MinecraftServerWrapper implements IMinecraftSharedWrapper public IServerLevelWrapper getWrappedServerLevel(String levelKey) { #if MC_VER <= MC_1_12_2 - DimensionType levelID = null; - try { - levelID = DimensionType.byName(levelKey); - } catch (IllegalArgumentException e) {} - #elif MC_VER <= MC_1_21_10 + int dimensionID; + try + { + dimensionID = Integer.parseInt(levelKey); + } + catch (NumberFormatException ignored) + { + return null; + } + #else + #if MC_VER <= MC_1_21_10 ResourceLocation levelID = ResourceLocation.tryParse(levelKey); #else Identifier levelID = Identifier.tryParse(levelKey); @@ -108,10 +111,9 @@ public class MinecraftServerWrapper implements IMinecraftSharedWrapper #if MC_VER > MC_1_19_2 ResourceKey resourceKey = ResourceKey.create(Registries.DIMENSION, levelID); - #elif MC_VER > MC_1_12_2 - ResourceKey resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID); #else - int dimensionID = Arrays.stream(DimensionManager.getDimensions(levelID)).findFirst().orElse(0); + ResourceKey resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID); + #endif #endif #if MC_VER > MC_1_12_2 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 c48c2302d..3eb90b537 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 @@ -436,7 +436,7 @@ public class ClientLevelWrapper implements IClientLevelWrapper } #if MC_VER <= MC_1_12_2 - this.dimensionName = this.level.provider.getDimensionType().getName(); + this.dimensionName = String.valueOf(this.level.provider.getDimension()); #elif MC_VER <= MC_1_21_10 this.dimensionName = this.level.dimension().location().toString(); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java index 1a939a44a..19b78b769 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java @@ -196,7 +196,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper public String getDimensionName() { #if MC_VER <= MC_1_12_2 - return this.level.provider.getDimensionType().getName(); + return String.valueOf(this.level.provider.getDimension()); #elif MC_VER <= MC_1_21_10 return this.level.dimension().location().toString(); #else