13
0
geforkt von Mirrors/Paper

SPIGOT-4822: Existing world fails to load

By: md_5 <git@md-5.net>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2019-05-01 18:10:27 +10:00
Ursprung 39114e773e
Commit 03d3b41708

Datei anzeigen

@ -908,7 +908,8 @@ public final class CraftServer implements Server {
WorldNBTStorage sdm = new WorldNBTStorage(getWorldContainer(), name, getServer(), getHandle().getServer().dataConverterManager); WorldNBTStorage sdm = new WorldNBTStorage(getWorldContainer(), name, getServer(), getHandle().getServer().dataConverterManager);
WorldData worlddata = sdm.getWorldData(); WorldData worlddata = sdm.getWorldData();
WorldSettings worldSettings = null; WorldSettings worldSettings;
// See MinecraftServer.a(String, String, long, WorldType, JsonElement)
if (worlddata == null) { if (worlddata == null) {
worldSettings = new WorldSettings(creator.seed(), EnumGamemode.getById(getDefaultGameMode().getValue()), generateStructures, hardcore, type); worldSettings = new WorldSettings(creator.seed(), EnumGamemode.getById(getDefaultGameMode().getValue()), generateStructures, hardcore, type);
JsonElement parsedSettings = new JsonParser().parse(creator.generatorSettings()); JsonElement parsedSettings = new JsonParser().parse(creator.generatorSettings());
@ -916,8 +917,10 @@ public final class CraftServer implements Server {
worldSettings.setGeneratorSettings(parsedSettings.getAsJsonObject()); worldSettings.setGeneratorSettings(parsedSettings.getAsJsonObject());
} }
worlddata = new WorldData(worldSettings, name); worlddata = new WorldData(worldSettings, name);
} else {
worlddata.a(name);
worldSettings = new WorldSettings(worlddata);
} }
worlddata.checkName(name); // CraftBukkit - Migration did not rewrite the level.dat; This forces 1.8 to take the last loaded world as respawn (in this case the end)
DimensionManager actualDimension = DimensionManager.a(creator.environment().getId()); DimensionManager actualDimension = DimensionManager.a(creator.environment().getId());
DimensionManager internalDimension = new DimensionManager(dimension, name, name, (w, manager) -> actualDimension.getWorldProvider(w), actualDimension.hasSkyLight()); DimensionManager internalDimension = new DimensionManager(dimension, name, name, (w, manager) -> actualDimension.getWorldProvider(w), actualDimension.hasSkyLight());