From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 19 Feb 2022 20:15:41 -0800 Subject: [PATCH] Option to have default CustomSpawners in custom worlds By default, only LevelStem's that specifically match the ResourceKey for OVERWORLD will have the 5 (currently) impls of CustomSpawner (for phantoms, wandering traders, etc.). This adds an option to instead of just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 2d41aaa651dfefff9968ccbfee693c4410ba0f4e..5ec58c9eab4b790b68bb196d02c0818fc98ffaa4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -623,7 +623,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop spawners; + if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.useDimensionTypeForCustomSpawners && this.registryAccess().registryOrThrow(Registries.DIMENSION_TYPE).getResourceKey(worlddimension.type().value()).orElseThrow() == net.minecraft.world.level.dimension.BuiltinDimensionTypes.OVERWORLD) { + spawners = list; + } else { + spawners = Collections.emptyList(); + } + world = new ServerLevel(this, this.executor, worldSession, iworlddataserver, worldKey, worlddimension, worldloadlistener, flag, j, spawners, true, this.overworld().getRandomSequences(), org.bukkit.World.Environment.getEnvironment(dimension), gen, biomeProvider); + // Paper end - option to use the dimension_type to check if spawners should be added } worlddata.setModdedInfo(this.getServerModName(), this.getModdedStatus().shouldReportAsModified());