More diff/changed variable name cleanup

This commit is contained in:
Nassim Jahnke
2024-12-21 12:15:25 +01:00
parent 85c428b0be
commit e0593e9286
13 changed files with 284 additions and 277 deletions

View File

@@ -1288,7 +1288,7 @@ public final class CraftServer implements Server {
Preconditions.checkArgument(creator != null, "WorldCreator cannot be null");
String name = creator.name();
ChunkGenerator generator = creator.generator();
ChunkGenerator chunkGenerator = creator.generator();
BiomeProvider biomeProvider = creator.biomeProvider();
File folder = new File(this.getWorldContainer(), name);
World world = this.getWorld(name);
@@ -1307,151 +1307,170 @@ public final class CraftServer implements Server {
Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name);
}
if (generator == null) {
generator = this.getGenerator(name);
if (chunkGenerator == null) {
chunkGenerator = this.getGenerator(name);
}
if (biomeProvider == null) {
biomeProvider = this.getBiomeProvider(name);
}
ResourceKey<LevelStem> actualDimension;
switch (creator.environment()) {
case NORMAL:
actualDimension = LevelStem.OVERWORLD;
break;
case NETHER:
actualDimension = LevelStem.NETHER;
break;
case THE_END:
actualDimension = LevelStem.END;
break;
default:
throw new IllegalArgumentException("Illegal dimension (" + creator.environment() + ")");
}
ResourceKey<LevelStem> actualDimension = switch (creator.environment()) {
case NORMAL -> LevelStem.OVERWORLD;
case NETHER -> LevelStem.NETHER;
case THE_END -> LevelStem.END;
default -> throw new IllegalArgumentException("Illegal dimension (" + creator.environment() + ")");
};
LevelStorageSource.LevelStorageAccess worldSession;
LevelStorageSource.LevelStorageAccess levelStorageAccess;
try {
worldSession = LevelStorageSource.createDefault(this.getWorldContainer().toPath()).validateAndCreateAccess(name, actualDimension);
levelStorageAccess = LevelStorageSource.createDefault(this.getWorldContainer().toPath()).validateAndCreateAccess(name, actualDimension);
} catch (IOException | ContentValidationException ex) {
throw new RuntimeException(ex);
}
Dynamic<?> dynamic;
if (worldSession.hasWorldData()) {
net.minecraft.world.level.storage.LevelSummary worldinfo;
Dynamic<?> dataTag;
if (levelStorageAccess.hasWorldData()) {
net.minecraft.world.level.storage.LevelSummary summary;
try {
dynamic = worldSession.getDataTag();
worldinfo = worldSession.getSummary(dynamic);
} catch (NbtException | ReportedNbtException | IOException ioexception) {
LevelStorageSource.LevelDirectory convertable_b = worldSession.getLevelDirectory();
MinecraftServer.LOGGER.warn("Failed to load world data from {}", convertable_b.dataFile(), ioexception);
dataTag = levelStorageAccess.getDataTag();
summary = levelStorageAccess.getSummary(dataTag);
} catch (NbtException | ReportedNbtException | IOException e) {
LevelStorageSource.LevelDirectory levelDirectory = levelStorageAccess.getLevelDirectory();
MinecraftServer.LOGGER.warn("Failed to load world data from {}", levelDirectory.dataFile(), e);
MinecraftServer.LOGGER.info("Attempting to use fallback");
try {
dynamic = worldSession.getDataTagFallback();
worldinfo = worldSession.getSummary(dynamic);
} catch (NbtException | ReportedNbtException | IOException ioexception1) {
MinecraftServer.LOGGER.error("Failed to load world data from {}", convertable_b.oldDataFile(), ioexception1);
MinecraftServer.LOGGER.error("Failed to load world data from {} and {}. World files may be corrupted. Shutting down.", convertable_b.dataFile(), convertable_b.oldDataFile());
dataTag = levelStorageAccess.getDataTagFallback();
summary = levelStorageAccess.getSummary(dataTag);
} catch (NbtException | ReportedNbtException | IOException e1) {
MinecraftServer.LOGGER.error("Failed to load world data from {}", levelDirectory.oldDataFile(), e1);
MinecraftServer.LOGGER.error(
"Failed to load world data from {} and {}. World files may be corrupted. Shutting down.",
levelDirectory.dataFile(),
levelDirectory.oldDataFile()
);
return null;
}
worldSession.restoreLevelDataFromOld();
levelStorageAccess.restoreLevelDataFromOld();
}
if (worldinfo.requiresManualConversion()) {
if (summary.requiresManualConversion()) {
MinecraftServer.LOGGER.info("This world must be opened in an older version (like 1.6.4) to be safely converted");
return null;
}
if (!worldinfo.isCompatible()) {
if (!summary.isCompatible()) {
MinecraftServer.LOGGER.info("This world was created by an incompatible version.");
return null;
}
} else {
dynamic = null;
dataTag = null;
}
boolean hardcore = creator.hardcore();
PrimaryLevelData worlddata;
WorldLoader.DataLoadContext worldloader_a = this.console.worldLoader;
RegistryAccess.Frozen iregistrycustom_dimension = worldloader_a.datapackDimensions();
net.minecraft.core.Registry<LevelStem> iregistry = iregistrycustom_dimension.lookupOrThrow(Registries.LEVEL_STEM);
if (dynamic != null) {
LevelDataAndDimensions leveldataanddimensions = LevelStorageSource.getLevelDataAndDimensions(dynamic, worldloader_a.dataConfiguration(), iregistry, worldloader_a.datapackWorldgen());
worlddata = (PrimaryLevelData) leveldataanddimensions.worldData();
iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess();
PrimaryLevelData primaryLevelData;
WorldLoader.DataLoadContext context = this.console.worldLoader;
RegistryAccess.Frozen registryAccess = context.datapackDimensions();
net.minecraft.core.Registry<LevelStem> contextLevelStemRegistry = registryAccess.lookupOrThrow(Registries.LEVEL_STEM);
if (dataTag != null) {
LevelDataAndDimensions levelDataAndDimensions = LevelStorageSource.getLevelDataAndDimensions(
dataTag, context.dataConfiguration(), contextLevelStemRegistry, context.datapackWorldgen()
);
primaryLevelData = (PrimaryLevelData) levelDataAndDimensions.worldData();
registryAccess = levelDataAndDimensions.dimensions().dimensionsRegistryAccess();
} else {
LevelSettings worldsettings;
WorldOptions worldoptions = new WorldOptions(creator.seed(), creator.generateStructures(), false);
WorldDimensions worlddimensions;
LevelSettings levelSettings;
WorldOptions worldOptions = new WorldOptions(creator.seed(), creator.generateStructures(), false);
WorldDimensions worldDimensions;
DedicatedServerProperties.WorldDimensionData properties = new DedicatedServerProperties.WorldDimensionData(GsonHelper.parse((creator.generatorSettings().isEmpty()) ? "{}" : creator.generatorSettings()), creator.type().name().toLowerCase(Locale.ROOT));
levelSettings = new LevelSettings(
name,
GameType.byId(this.getDefaultGameMode().getValue()),
hardcore, Difficulty.EASY,
false,
new GameRules(context.dataConfiguration().enabledFeatures()),
context.dataConfiguration())
;
worldDimensions = properties.create(context.datapackWorldgen());
worldsettings = new LevelSettings(name, GameType.byId(this.getDefaultGameMode().getValue()), hardcore, Difficulty.EASY, false, new GameRules(worldloader_a.dataConfiguration().enabledFeatures()), worldloader_a.dataConfiguration());
worlddimensions = properties.create(worldloader_a.datapackWorldgen());
WorldDimensions.Complete complete = worldDimensions.bake(contextLevelStemRegistry);
Lifecycle lifecycle = complete.lifecycle().add(context.datapackWorldgen().allRegistriesLifecycle());
WorldDimensions.Complete worlddimensions_b = worlddimensions.bake(iregistry);
Lifecycle lifecycle = worlddimensions_b.lifecycle().add(worldloader_a.datapackWorldgen().allRegistriesLifecycle());
worlddata = new PrimaryLevelData(worldsettings, worldoptions, worlddimensions_b.specialWorldProperty(), lifecycle);
iregistrycustom_dimension = worlddimensions_b.dimensionsRegistryAccess();
primaryLevelData = new PrimaryLevelData(levelSettings, worldOptions, complete.specialWorldProperty(), lifecycle);
registryAccess = complete.dimensionsRegistryAccess();
}
iregistry = iregistrycustom_dimension.lookupOrThrow(Registries.LEVEL_STEM);
worlddata.customDimensions = iregistry;
worlddata.checkName(name);
worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified());
contextLevelStemRegistry = registryAccess.lookupOrThrow(Registries.LEVEL_STEM);
primaryLevelData.customDimensions = contextLevelStemRegistry;
primaryLevelData.checkName(name);
primaryLevelData.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified());
if (this.console.options.has("forceUpgrade")) {
net.minecraft.server.Main.forceUpgrade(worldSession, DataFixers.getDataFixer(), this.console.options.has("eraseCache"), () -> true, iregistrycustom_dimension, this.console.options.has("recreateRegionFiles"));
net.minecraft.server.Main.forceUpgrade(levelStorageAccess, DataFixers.getDataFixer(), this.console.options.has("eraseCache"), () -> true, registryAccess, this.console.options.has("recreateRegionFiles"));
}
long j = BiomeManager.obfuscateSeed(worlddata.worldGenOptions().seed()); // Paper - use world seed
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
LevelStem worlddimension = iregistry.getValue(actualDimension);
long i = BiomeManager.obfuscateSeed(primaryLevelData.worldGenOptions().seed());
List<CustomSpawner> list = ImmutableList.of(
new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(primaryLevelData)
);
LevelStem customStem = contextLevelStemRegistry.getValue(actualDimension);
WorldInfo worldInfo = new CraftWorldInfo(worlddata, worldSession, creator.environment(), worlddimension.type().value(), worlddimension.generator(), this.getHandle().getServer().registryAccess()); // Paper - Expose vanilla BiomeProvider from WorldInfo
if (biomeProvider == null && generator != null) {
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
WorldInfo worldInfo = new CraftWorldInfo(primaryLevelData, levelStorageAccess, creator.environment(), customStem.type().value(), customStem.generator(), this.getHandle().getServer().registryAccess()); // Paper - Expose vanilla BiomeProvider from WorldInfo
if (biomeProvider == null && chunkGenerator != null) {
biomeProvider = chunkGenerator.getDefaultBiomeProvider(worldInfo);
}
ResourceKey<net.minecraft.world.level.Level> worldKey;
ResourceKey<net.minecraft.world.level.Level> dimensionKey;
String levelName = this.getServer().getProperties().levelName;
if (name.equals(levelName + "_nether")) {
worldKey = net.minecraft.world.level.Level.NETHER;
dimensionKey = net.minecraft.world.level.Level.NETHER;
} else if (name.equals(levelName + "_the_end")) {
worldKey = net.minecraft.world.level.Level.END;
dimensionKey = net.minecraft.world.level.Level.END;
} else {
worldKey = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(creator.key().namespace(), creator.key().value()));
dimensionKey = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(creator.key().namespace(), creator.key().value()));
}
// If set to not keep spawn in memory (changed from default) then adjust rule accordingly
if (creator.keepSpawnLoaded() == net.kyori.adventure.util.TriState.FALSE) { // Paper
worlddata.getGameRules().getRule(GameRules.RULE_SPAWN_CHUNK_RADIUS).set(0, null);
primaryLevelData.getGameRules().getRule(GameRules.RULE_SPAWN_CHUNK_RADIUS).set(0, null);
}
ServerLevel internal = (ServerLevel) new ServerLevel(this.console, this.console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(worlddata.getGameRules().getInt(GameRules.RULE_SPAWN_CHUNK_RADIUS)),
worlddata.isDebugWorld(), j, creator.environment() == Environment.NORMAL ? list : ImmutableList.of(), true, this.console.overworld().getRandomSequences(), creator.environment(), generator, biomeProvider);
ServerLevel serverLevel = new ServerLevel(
this.console,
this.console.executor,
levelStorageAccess,
primaryLevelData,
dimensionKey,
customStem,
this.getServer().progressListenerFactory.create(primaryLevelData.getGameRules().getInt(GameRules.RULE_SPAWN_CHUNK_RADIUS)),
primaryLevelData.isDebugWorld(),
i,
creator.environment() == Environment.NORMAL ? list : ImmutableList.of(),
true,
this.console.overworld().getRandomSequences(),
creator.environment(),
chunkGenerator, biomeProvider
);
if (!(this.worlds.containsKey(name.toLowerCase(Locale.ROOT)))) {
return null;
}
this.console.addLevel(internal); // Paper - Put world into worldlist before initing the world; move up
this.console.initWorld(internal, worlddata, worlddata, worlddata.worldGenOptions());
this.console.addLevel(serverLevel); // Paper - Put world into worldlist before initing the world; move up
this.console.initWorld(serverLevel, primaryLevelData, primaryLevelData, primaryLevelData.worldGenOptions());
internal.setSpawnSettings(true);
serverLevel.setSpawnSettings(true);
// Paper - Put world into worldlist before initing the world; move up
this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal);
io.papermc.paper.FeatureHooks.tickEntityManager(internal); // SPIGOT-6526: Load pending entities so they are available to the API // Paper - chunk system
this.getServer().prepareLevels(serverLevel.getChunkSource().chunkMap.progressListener, serverLevel);
io.papermc.paper.FeatureHooks.tickEntityManager(serverLevel); // SPIGOT-6526: Load pending entities so they are available to the API // Paper - chunk system
this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld()));
return internal.getWorld();
this.pluginManager.callEvent(new WorldLoadEvent(serverLevel.getWorld()));
return serverLevel.getWorld();
}
@Override