@@ -8,9 +8,18 @@ makes it so that the server keeps the last difficulty used instead
8
8
of restoring the server.properties every single load.
9
9
10
10
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
12
12
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
13
13
+++ 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
14
23
@@ -1726,11 +1726,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
15
24
}
16
25
}
@@ -31,6 +40,15 @@ index f3a1af9299f3c0b03309b838b00d3eca7caf5966..186193d1d652876e9ad7cdf5223ec2c6
31
40
}
32
41
}
33
42
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
+ }
34
52
diff --git a/src/main/java/net/minecraft/server/commands/DifficultyCommand.java b/src/main/java/net/minecraft/server/commands/DifficultyCommand.java
35
53
index 33c859df0b669d0c3e97ccba29f17c1ba2166a27..9f03b738aea623fe409ca176397f48be055466da 100644
36
54
--- a/src/main/java/net/minecraft/server/commands/DifficultyCommand.java
@@ -75,3 +93,18 @@ index 7bd2a88de8eaf9d72d9424a39d5df2600bed7e58..c0ae236619bbdf9293fbf1c4a1764a78
75
93
}
76
94
}
77
95
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