Use the dimension id number as the level key on 1.12.2.

This commit is contained in:
Acuadragon100
2026-05-15 15:58:56 +02:00
parent 2dc38622e2
commit 48966bf32a
5 changed files with 30 additions and 22 deletions
@@ -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
@@ -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<Level> resourceKey = ResourceKey.create(Registries.DIMENSION, levelID);
#elif MC_VER > MC_1_12_2
ResourceKey<Level> 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<Level> resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID);
#endif
#endif
#if MC_VER <= MC_1_12_2
@@ -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<Level> resourceKey = ResourceKey.create(Registries.DIMENSION, levelID);
#elif MC_VER > MC_1_12_2
ResourceKey<Level> resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID);
#else
int dimensionID = Arrays.stream(DimensionManager.getDimensions(levelID)).findFirst().orElse(0);
ResourceKey<Level> resourceKey = ResourceKey.create(Registry.DIMENSION_REGISTRY, levelID);
#endif
#endif
#if MC_VER > MC_1_12_2
@@ -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
@@ -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