From 59fd0e3a840d34371fa30ceb418a5357b2a7c799 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 7 Mar 2021 00:37:05 -0800 Subject: [PATCH] fix per-world difficulty command (#5306) --- ...orld-Difficulty-Remembering-Difficulty.patch | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 9869a5675..21f973cc3 100644 --- a/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/Spigot-Server-Patches/Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -47,15 +47,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } - public void a(EnumDifficulty enumdifficulty, boolean flag) { -+ // Paper start - fix per world difficulty -+ public void a(WorldServer world, EnumDifficulty enumdifficulty, boolean flag) { -+ WorldDataServer worldData = world.worldDataServer; - if (flag || !this.saveData.isDifficultyLocked()) { - this.saveData.setDifficulty(this.saveData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty); +- if (flag || !this.saveData.isDifficultyLocked()) { +- this.saveData.setDifficulty(this.saveData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty); - this.updateSpawnFlags(); - this.getPlayerList().getPlayers().forEach(this::b); -+ world.setSpawnFlags(worldData.getDifficulty() != EnumDifficulty.PEACEFUL && ((DedicatedServer)this).propertyManager.getProperties().spawnMonsters, this.getSpawnAnimals()); -+ //this.getPlayerList().getPlayers().forEach(this::b); ++ // Paper start - fix per world difficulty ++ public void setWorldDifficulty(WorldServer world, EnumDifficulty enumdifficulty, boolean forcefullySet) { this.a(world, enumdifficulty, forcefullySet); } ++ public void a(WorldServer world, EnumDifficulty enumdifficulty, boolean flag) { ++ WorldDataServer worldData = world.worldDataServer; ++ if (flag || !worldData.isDifficultyLocked()) { ++ worldData.setDifficulty(worldData.isHardcore() ? EnumDifficulty.HARD : enumdifficulty); ++ world.setSpawnFlags(worldData.getDifficulty() != EnumDifficulty.PEACEFUL && ((DedicatedServer) this).propertyManager.getProperties().spawnMonsters, this.getSpawnAnimals()); ++ //this.getPlayerList().getPlayers().forEach(this::b); // Commented: WorldDataServer#setDifficulty handles updating players' difficulties + // Paper end } }