Skip to content

Commit 0032236

Browse files
authored
Make Levels Use Correct Spawn Settings (#6419)
1 parent 6703c13 commit 0032236

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

patches/server/0468-Fix-Per-World-Difficulty-Remembering-Difficulty.patch

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,18 @@ makes it so that the server keeps the last difficulty used instead
88
of restoring the server.properties every single load.
99

1010
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
11-
index f3a1af9299f3c0b03309b838b00d3eca7caf5966..186193d1d652876e9ad7cdf5223ec2c6f5c65779 100644
11+
index b4ca88f9285fb5a55ed5b03355a77fd564ebaa80..58652325de8c3978359a9864bb68da9347990774 100644
1212
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
1313
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
14+
@@ -856,7 +856,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
15+
chunkproviderserver.getLightEngine().setTaskPerBatch(worldserver.paperConfig.lightQueueSize); // Paper - increase light queue size
16+
// CraftBukkit start
17+
// this.updateSpawnFlags();
18+
- worldserver.setSpawnSettings(this.isSpawningMonsters(), this.isSpawningAnimals());
19+
+ worldserver.setSpawnSettings(worldserver.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && ((DedicatedServer) this).settings.getProperties().spawnMonsters, this.isSpawningAnimals()); // Paper - per level difficulty (from setDifficulty(ServerLevel, Difficulty, boolean))
20+
21+
this.forceTicks = false;
22+
// CraftBukkit end
1423
@@ -1726,11 +1726,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
1524
}
1625
}
@@ -31,6 +40,15 @@ index f3a1af9299f3c0b03309b838b00d3eca7caf5966..186193d1d652876e9ad7cdf5223ec2c6
3140
}
3241
}
3342

43+
@@ -1744,7 +1747,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
44+
while (iterator.hasNext()) {
45+
ServerLevel worldserver = (ServerLevel) iterator.next();
46+
47+
- worldserver.setSpawnSettings(this.isSpawningMonsters(), this.isSpawningAnimals());
48+
+ worldserver.setSpawnSettings(worldserver.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && ((DedicatedServer) this).settings.getProperties().spawnMonsters, this.isSpawningAnimals()); // Paper - per level difficulty (from setDifficulty(ServerLevel, Difficulty, boolean))
49+
}
50+
51+
}
3452
diff --git a/src/main/java/net/minecraft/server/commands/DifficultyCommand.java b/src/main/java/net/minecraft/server/commands/DifficultyCommand.java
3553
index 33c859df0b669d0c3e97ccba29f17c1ba2166a27..9f03b738aea623fe409ca176397f48be055466da 100644
3654
--- a/src/main/java/net/minecraft/server/commands/DifficultyCommand.java
@@ -75,3 +93,18 @@ index 7bd2a88de8eaf9d72d9424a39d5df2600bed7e58..c0ae236619bbdf9293fbf1c4a1764a78
7593
}
7694
}
7795

96+
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
97+
index ecc65fe9783f0f369695edc1183f3d49686d66f9..d1038dc34735e666ea35d5b0fcec67120a15ff85 100644
98+
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
99+
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
100+
@@ -865,8 +865,8 @@ public final class CraftServer implements Server {
101+
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
102+
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
103+
for (ServerLevel world : this.console.getAllLevels()) {
104+
- world.serverLevelData.setDifficulty(config.difficulty);
105+
- world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
106+
+ // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
107+
+ world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
108+
if (this.getTicksPerAnimalSpawns() < 0) {
109+
world.ticksPerAnimalSpawns = 400;
110+
} else {

0 commit comments

Comments
 (0)