88 lines
4.3 KiB
Diff
88 lines
4.3 KiB
Diff
--- a/net/minecraft/world/level/storage/Convertable.java
|
|
+++ b/net/minecraft/world/level/storage/Convertable.java
|
|
@@ -47,6 +47,10 @@
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
+// CraftBukkit start
|
|
+import net.minecraft.world.level.dimension.WorldDimension;
|
|
+// CraftBukkit end
|
|
+
|
|
public class Convertable {
|
|
|
|
private static final Logger LOGGER = LogManager.getLogger();
|
|
@@ -96,21 +100,21 @@
|
|
Logger logger1 = Convertable.LOGGER;
|
|
|
|
logger1.getClass();
|
|
- IRegistry<DimensionManager> iregistry = (IRegistry) dataresult1.resultOrPartial(SystemUtils.a("Dimension type registry: ", logger1::error)).orElseThrow(() -> {
|
|
+ IRegistry<DimensionManager> iregistry = (IRegistry) ((DataResult<IRegistry<DimensionManager>>) dataresult1).resultOrPartial(SystemUtils.a("Dimension type registry: ", logger1::error)).orElseThrow(() -> { // CraftBukkit - decompile error
|
|
return new IllegalStateException("Failed to get dimension registry");
|
|
});
|
|
|
|
dataresult1 = RegistryLookupCodec.a(IRegistry.ay).codec().parse(dynamic2);
|
|
logger1 = Convertable.LOGGER;
|
|
logger1.getClass();
|
|
- IRegistry<BiomeBase> iregistry1 = (IRegistry) dataresult1.resultOrPartial(SystemUtils.a("Biome registry: ", logger1::error)).orElseThrow(() -> {
|
|
+ IRegistry<BiomeBase> iregistry1 = (IRegistry) ((DataResult<IRegistry<BiomeBase>>) dataresult1).resultOrPartial(SystemUtils.a("Biome registry: ", logger1::error)).orElseThrow(() -> { // CraftBukkit - decompile error
|
|
return new IllegalStateException("Failed to get biome registry");
|
|
});
|
|
|
|
dataresult1 = RegistryLookupCodec.a(IRegistry.ar).codec().parse(dynamic2);
|
|
logger1 = Convertable.LOGGER;
|
|
logger1.getClass();
|
|
- IRegistry<GeneratorSettingBase> iregistry2 = (IRegistry) dataresult1.resultOrPartial(SystemUtils.a("Noise settings registry: ", logger1::error)).orElseThrow(() -> {
|
|
+ IRegistry<GeneratorSettingBase> iregistry2 = (IRegistry) ((DataResult<IRegistry<GeneratorSettingBase>>) dataresult1).resultOrPartial(SystemUtils.a("Noise settings registry: ", logger1::error)).orElseThrow(() -> { // CraftBukkit - decompile error
|
|
return new IllegalStateException("Failed to get noise settings registry");
|
|
});
|
|
|
|
@@ -218,9 +222,23 @@
|
|
};
|
|
}
|
|
|
|
- public Convertable.ConversionSession c(String s) throws IOException {
|
|
- return new Convertable.ConversionSession(s);
|
|
+ // CraftBukkit start
|
|
+ public Convertable.ConversionSession c(String s, ResourceKey<WorldDimension> dimensionType) throws IOException {
|
|
+ return new Convertable.ConversionSession(s, dimensionType);
|
|
+ }
|
|
+
|
|
+ public static File getFolder(File file, ResourceKey<WorldDimension> dimensionType) {
|
|
+ if (dimensionType == WorldDimension.OVERWORLD) {
|
|
+ return file;
|
|
+ } else if (dimensionType == WorldDimension.THE_NETHER) {
|
|
+ return new File(file, "DIM-1");
|
|
+ } else if (dimensionType == WorldDimension.THE_END) {
|
|
+ return new File(file, "DIM1");
|
|
+ } else {
|
|
+ return new File(file, "dimensions/" + dimensionType.a().getNamespace() + "/" + dimensionType.a().getKey());
|
|
+ }
|
|
}
|
|
+ // CraftBukkit end
|
|
|
|
public class ConversionSession implements AutoCloseable {
|
|
|
|
@@ -228,8 +246,12 @@
|
|
public final Path folder;
|
|
private final String levelName;
|
|
private final Map<SavedFile, Path> e = Maps.newHashMap();
|
|
+ // CraftBukkit start
|
|
+ private final ResourceKey<WorldDimension> dimensionType;
|
|
|
|
- public ConversionSession(String s) throws IOException {
|
|
+ public ConversionSession(String s, ResourceKey<WorldDimension> dimensionType) throws IOException {
|
|
+ this.dimensionType = dimensionType;
|
|
+ // CraftBukkit end
|
|
this.levelName = s;
|
|
this.folder = Convertable.this.universe.resolve(s);
|
|
this.lock = SessionLock.a(this.folder);
|
|
@@ -246,7 +268,7 @@
|
|
}
|
|
|
|
public File a(ResourceKey<World> resourcekey) {
|
|
- return DimensionManager.a(resourcekey, this.folder.toFile());
|
|
+ return getFolder(this.folder.toFile(), this.dimensionType); // CraftBukkit
|
|
}
|
|
|
|
private void checkSession() {
|