SPIGOT-5877: Add support for Vanilla custom dimensions
By: Martoph <sager1018@gmail.com>
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
return new IllegalStateException("Failed to get noise settings registry");
|
||||
});
|
||||
|
||||
@@ -218,8 +222,10 @@
|
||||
@@ -218,9 +222,23 @@
|
||||
};
|
||||
}
|
||||
|
||||
@@ -45,11 +45,24 @@
|
||||
+ // CraftBukkit start
|
||||
+ public Convertable.ConversionSession c(String s, ResourceKey<WorldDimension> dimensionType) throws IOException {
|
||||
+ return new Convertable.ConversionSession(s, dimensionType);
|
||||
+ // CraftBukkit end
|
||||
+ }
|
||||
+
|
||||
+ 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 +234,12 @@
|
||||
|
||||
@@ -228,8 +246,12 @@
|
||||
public final Path folder;
|
||||
private final String levelName;
|
||||
private final Map<SavedFile, Path> e = Maps.newHashMap();
|
||||
@@ -63,27 +76,12 @@
|
||||
this.levelName = s;
|
||||
this.folder = Convertable.this.universe.resolve(s);
|
||||
this.lock = SessionLock.a(this.folder);
|
||||
@@ -246,8 +256,22 @@
|
||||
@@ -246,7 +268,7 @@
|
||||
}
|
||||
|
||||
public File a(ResourceKey<World> resourcekey) {
|
||||
- return DimensionManager.a(resourcekey, this.folder.toFile());
|
||||
+ // CraftBukkit start
|
||||
+ return this.getFolder(this.folder.toFile());
|
||||
+ }
|
||||
+
|
||||
+ private File getFolder(File file) {
|
||||
+ 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 {
|
||||
+ throw new IllegalArgumentException("Unknwon dimension " + this.dimensionType);
|
||||
+ }
|
||||
+ return getFolder(this.folder.toFile(), this.dimensionType); // CraftBukkit
|
||||
}
|
||||
+ // CraftBukkit end
|
||||
|
||||
private void checkSession() {
|
||||
if (!this.lock.a()) {
|
||||
|
||||
Reference in New Issue
Block a user