From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 28 Jun 2020 03:59:10 -0400 Subject: [PATCH] Fix Per World Difficulty / Remembering Difficulty Fixes per world difficulty with /difficulty command and also makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/CommandDifficulty.java b/src/main/java/net/minecraft/server/CommandDifficulty.java index bc71070c670d1a64c60b9f19711a5e8a50ace56e..9efc743e028650ccc9cda5a2c9deb1836253b91d 100644 --- a/src/main/java/net/minecraft/server/CommandDifficulty.java +++ b/src/main/java/net/minecraft/server/CommandDifficulty.java @@ -36,10 +36,11 @@ public class CommandDifficulty { public static int a(CommandListenerWrapper commandlistenerwrapper, EnumDifficulty enumdifficulty) throws CommandSyntaxException { MinecraftServer minecraftserver = commandlistenerwrapper.getServer(); - if (minecraftserver.getSaveData().getDifficulty() == enumdifficulty) { + WorldServer world = commandlistenerwrapper.getWorld(); // Paper + if (world.worldDataServer.getDifficulty() == enumdifficulty) { // Paper throw CommandDifficulty.a.create(enumdifficulty.c()); } else { - minecraftserver.a(enumdifficulty, true); + minecraftserver.a(world, enumdifficulty, true); // Paper commandlistenerwrapper.sendMessage(new ChatMessage("commands.difficulty.success", new Object[]{enumdifficulty.b()}), true); return 0; } diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java index a16495f69626356e5312f8804c66d40a29894b7e..1c878265be0f458ff264bc4a4011397e5b60b20e 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -325,7 +325,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @Override public void updateWorldSettings() { - this.a(this.getDedicatedServerProperties().difficulty, true); + //this.a(this.getDedicatedServerProperties().difficulty, true); // Paper - Don't overwrite level.dat's difficulty, keep current } @Override diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 4f0b79be16dbc8b528095f8ebfe80d70ef6074ce..a7b6be15b6c5d99fd8adc60c2d7f31a0b8ad4054 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1518,11 +1518,14 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant