3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-19 04:50:06 +01:00

SPIGOT-4822: Existing world fails to load

Dieser Commit ist enthalten in:
md_5 2019-05-01 18:10:27 +10:00
Ursprung 4fa2ad7c66
Commit 327c30812b

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());