diff --git a/slimeworldmanager-nms-v1_16_R1/src/main/java/com/grinderwolf/swm/nms/v1_16_R1/v1_16_R1SlimeNMS.java b/slimeworldmanager-nms-v1_16_R1/src/main/java/com/grinderwolf/swm/nms/v1_16_R1/v1_16_R1SlimeNMS.java index ddee5b5b..a2aa1808 100644 --- a/slimeworldmanager-nms-v1_16_R1/src/main/java/com/grinderwolf/swm/nms/v1_16_R1/v1_16_R1SlimeNMS.java +++ b/slimeworldmanager-nms-v1_16_R1/src/main/java/com/grinderwolf/swm/nms/v1_16_R1/v1_16_R1SlimeNMS.java @@ -60,7 +60,11 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.Locale; +import java.util.Properties; +import java.util.UUID; @Getter public class v1_16_R1SlimeNMS implements SlimeNMS { @@ -199,26 +203,29 @@ private World.Environment getEnvironment(SlimeWorld world) { } private WorldDataServer createWorldData(SlimeWorld world) { + String worldName = world.getName(); + CompoundTag extraData = world.getExtraData(); WorldDataServer worldDataServer; - NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(world.getExtraData()); + NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(extraData); MinecraftServer mcServer = MinecraftServer.getServer(); - SlimePropertyMap propertyMap = world.getPropertyMap(); - Properties properties = new Properties(); - String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); - String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; - - properties.put("generator-settings", generatorString); - properties.put("level-type", "FLAT"); - - GeneratorSettings generatorSettings = GeneratorSettings.a(properties); - if (extraTag.hasKeyOfType("LevelData", CraftMagicNumbers.NBT.TAG_COMPOUND)) { NBTTagCompound levelData = extraTag.getCompound("LevelData"); int dataVersion = levelData.hasKeyOfType("DataVersion", 99) ? levelData.getInt("DataVersion") : -1; Dynamic dynamic = mcServer.getDataFixer().update(DataFixTypes.LEVEL.a(), new Dynamic<>(DynamicOpsNBT.a, levelData), dataVersion, SharedConstants.getGameVersion() .getWorldVersion()); + + SlimePropertyMap propertyMap = world.getPropertyMap(); + Properties properties = new Properties(); + String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); + String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; + + properties.put("generator-settings", generatorString); + properties.put("level-type", "FLAT"); + + GeneratorSettings generatorSettings = GeneratorSettings.a(properties); + Lifecycle lifecycle = Lifecycle.stable(); LevelVersion levelVersion = LevelVersion.a(dynamic); WorldSettings worldSettings = WorldSettings.a(dynamic, mcServer.datapackconfiguration); @@ -228,12 +235,13 @@ private WorldDataServer createWorldData(SlimeWorld world) { } else { EnumDifficulty difficulty = ((DedicatedServer) mcServer).getDedicatedServerProperties().difficulty; EnumGamemode defaultGamemode = ((DedicatedServer) mcServer).getDedicatedServerProperties().gamemode; - WorldSettings worldSettings = new WorldSettings(world.getName(), defaultGamemode, false, + WorldSettings worldSettings = new WorldSettings(worldName, defaultGamemode, false, difficulty, false, new GameRules(), mcServer.datapackconfiguration); - worldDataServer = new WorldDataServer(worldSettings, generatorSettings, Lifecycle.stable()); + worldDataServer = new WorldDataServer(worldSettings, ((DedicatedServer) mcServer) + .getDedicatedServerProperties().generatorSettings, Lifecycle.stable()); } - worldDataServer.checkName(world.getName()); + worldDataServer.checkName(worldName); worldDataServer.a(mcServer.getServerModName(), mcServer.getModded().isPresent()); worldDataServer.c(true); diff --git a/slimeworldmanager-nms-v1_16_R2/src/main/java/com/grinderwolf/swm/nms/v1_16_R2/v1_16_R2SlimeNMS.java b/slimeworldmanager-nms-v1_16_R2/src/main/java/com/grinderwolf/swm/nms/v1_16_R2/v1_16_R2SlimeNMS.java index 1944ed63..2456d482 100644 --- a/slimeworldmanager-nms-v1_16_R2/src/main/java/com/grinderwolf/swm/nms/v1_16_R2/v1_16_R2SlimeNMS.java +++ b/slimeworldmanager-nms-v1_16_R2/src/main/java/com/grinderwolf/swm/nms/v1_16_R2/v1_16_R2SlimeNMS.java @@ -168,26 +168,28 @@ private World.Environment getEnvironment(SlimeWorld world) { } private WorldDataServer createWorldData(SlimeWorld world) { + String worldName = world.getName(); + CompoundTag extraData = world.getExtraData(); WorldDataServer worldDataServer; - NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(world.getExtraData()); + NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(extraData); MinecraftServer mcServer = MinecraftServer.getServer(); - SlimePropertyMap propertyMap = world.getPropertyMap(); - Properties properties = new Properties(); - String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); - String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; - - properties.put("generator-settings", generatorString); - properties.put("level-type", "FLAT"); - - GeneratorSettings generatorSettings = GeneratorSettings.a(mcServer.getCustomRegistry(), properties); - if (extraTag.hasKeyOfType("LevelData", CraftMagicNumbers.NBT.TAG_COMPOUND)) { NBTTagCompound levelData = extraTag.getCompound("LevelData"); int dataVersion = levelData.hasKeyOfType("DataVersion", 99) ? levelData.getInt("DataVersion") : -1; Dynamic dynamic = mcServer.getDataFixer().update(DataFixTypes.LEVEL.a(), new Dynamic<>(DynamicOpsNBT.a, levelData), dataVersion, SharedConstants.getGameVersion() .getWorldVersion()); + + SlimePropertyMap propertyMap = world.getPropertyMap(); + Properties properties = new Properties(); + String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); + String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; + + properties.put("generator-settings", generatorString); + properties.put("level-type", "FLAT"); + + GeneratorSettings generatorSettings = GeneratorSettings.a(mcServer.getCustomRegistry(), properties); Lifecycle lifecycle = Lifecycle.stable(); LevelVersion levelVersion = LevelVersion.a(dynamic); WorldSettings worldSettings = WorldSettings.a(dynamic, mcServer.datapackconfiguration); @@ -197,13 +199,13 @@ private WorldDataServer createWorldData(SlimeWorld world) { } else { EnumDifficulty difficulty = ((DedicatedServer) mcServer).getDedicatedServerProperties().difficulty; EnumGamemode defaultGamemode = ((DedicatedServer) mcServer).getDedicatedServerProperties().gamemode; - WorldSettings worldSettings = new WorldSettings(world.getName(), defaultGamemode, false, + WorldSettings worldSettings = new WorldSettings(worldName, defaultGamemode, false, difficulty, false, new GameRules(), mcServer.datapackconfiguration); worldDataServer = new WorldDataServer(worldSettings, ((DedicatedServer) mcServer) .getDedicatedServerProperties().generatorSettings, Lifecycle.stable()); } - worldDataServer.checkName(world.getName()); + worldDataServer.checkName(worldName); worldDataServer.a(mcServer.getServerModName(), mcServer.getModded().isPresent()); worldDataServer.c(true); diff --git a/slimeworldmanager-nms-v1_16_R3/src/main/java/com/grinderwolf/swm/nms/v1_16_R3/v1_16_R3SlimeNMS.java b/slimeworldmanager-nms-v1_16_R3/src/main/java/com/grinderwolf/swm/nms/v1_16_R3/v1_16_R3SlimeNMS.java index 12e8c2d0..a89ce5c8 100644 --- a/slimeworldmanager-nms-v1_16_R3/src/main/java/com/grinderwolf/swm/nms/v1_16_R3/v1_16_R3SlimeNMS.java +++ b/slimeworldmanager-nms-v1_16_R3/src/main/java/com/grinderwolf/swm/nms/v1_16_R3/v1_16_R3SlimeNMS.java @@ -168,26 +168,28 @@ private World.Environment getEnvironment(SlimeWorld world) { } private WorldDataServer createWorldData(SlimeWorld world) { + String worldName = world.getName(); + CompoundTag extraData = world.getExtraData(); WorldDataServer worldDataServer; - NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(world.getExtraData()); + NBTTagCompound extraTag = (NBTTagCompound) Converter.convertTag(extraData); MinecraftServer mcServer = MinecraftServer.getServer(); - SlimePropertyMap propertyMap = world.getPropertyMap(); - Properties properties = new Properties(); - String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); - String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; - - properties.put("generator-settings", generatorString); - properties.put("level-type", "FLAT"); - - GeneratorSettings generatorSettings = GeneratorSettings.a(mcServer.getCustomRegistry(), properties); - if (extraTag.hasKeyOfType("LevelData", CraftMagicNumbers.NBT.TAG_COMPOUND)) { NBTTagCompound levelData = extraTag.getCompound("LevelData"); int dataVersion = levelData.hasKeyOfType("DataVersion", 99) ? levelData.getInt("DataVersion") : -1; Dynamic dynamic = mcServer.getDataFixer().update(DataFixTypes.LEVEL.a(), new Dynamic<>(DynamicOpsNBT.a, levelData), dataVersion, SharedConstants.getGameVersion() .getWorldVersion()); + + SlimePropertyMap propertyMap = world.getPropertyMap(); + Properties properties = new Properties(); + String defaultBiome = propertyMap.getString(SlimeProperties.DEFAULT_BIOME); + String generatorString = "{\"structures\":{\"structures\":{}},\"biome\":\"" + defaultBiome + "\",\"layers\":[]}"; + + properties.put("generator-settings", generatorString); + properties.put("level-type", "FLAT"); + + GeneratorSettings generatorSettings = GeneratorSettings.a(mcServer.getCustomRegistry(), properties); Lifecycle lifecycle = Lifecycle.stable(); LevelVersion levelVersion = LevelVersion.a(dynamic); WorldSettings worldSettings = WorldSettings.a(dynamic, mcServer.datapackconfiguration); @@ -197,13 +199,13 @@ private WorldDataServer createWorldData(SlimeWorld world) { } else { EnumDifficulty difficulty = ((DedicatedServer) mcServer).getDedicatedServerProperties().difficulty; EnumGamemode defaultGamemode = ((DedicatedServer) mcServer).getDedicatedServerProperties().gamemode; - WorldSettings worldSettings = new WorldSettings(world.getName(), defaultGamemode, false, + WorldSettings worldSettings = new WorldSettings(worldName, defaultGamemode, false, difficulty, false, new GameRules(), mcServer.datapackconfiguration); worldDataServer = new WorldDataServer(worldSettings, ((DedicatedServer) mcServer) .getDedicatedServerProperties().generatorSettings, Lifecycle.stable()); } - worldDataServer.checkName(world.getName()); + worldDataServer.checkName(worldName); worldDataServer.a(mcServer.getServerModName(), mcServer.getModded().isPresent()); worldDataServer.c(true);