aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch')
-rw-r--r--patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch181
1 files changed, 181 insertions, 0 deletions
diff --git a/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
new file mode 100644
index 0000000000..79635fc588
--- /dev/null
+++ b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -0,0 +1,181 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Sun, 27 Mar 2022 13:51:09 -0400
+Subject: [PATCH] Pass ServerLevel for gamerule callbacks
+
+
+diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+index 9a45921cbb1e7a39e6ef46cc93c14766ee8229ad..8115cf64a30b6438721769df6045e1b77acf88ce 100644
+--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+@@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
+
+ //DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s); // Paper moved to after init
+ if (dedicatedserverproperties.announcePlayerAchievements != null) {
+- ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, this);
++ ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper
+ }
+
+ if (dedicatedserverproperties.enableQuery) {
+diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+index 2333252a3c46affb76c09731968117fdd46a9b1b..65b94c6e2d85637342ebfb5478189536759d8338 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -2901,7 +2901,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+ this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
+ if (this.server.isHardcore()) {
+ this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
+- ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.server);
++ ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.player.serverLevel()); // Paper
+ }
+ }
+ break;
+diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java
+index de713f1ca1d61a6b1fca2b66de9162556d102449..edd2c9d0cf5a81c779011cb4215d496a8987b784 100644
+--- a/src/main/java/net/minecraft/world/level/GameRules.java
++++ b/src/main/java/net/minecraft/world/level/GameRules.java
+@@ -51,7 +51,7 @@ public class GameRules {
+ public static final GameRules.Key<GameRules.BooleanValue> RULE_SENDCOMMANDFEEDBACK = GameRules.register("sendCommandFeedback", GameRules.Category.CHAT, GameRules.BooleanValue.create(true));
+ public static final GameRules.Key<GameRules.BooleanValue> RULE_REDUCEDDEBUGINFO = GameRules.register("reducedDebugInfo", GameRules.Category.MISC, GameRules.BooleanValue.create(false, (minecraftserver, gamerules_gameruleboolean) -> {
+ int i = gamerules_gameruleboolean.get() ? 22 : 23;
+- Iterator iterator = minecraftserver.getPlayerList().getPlayers().iterator();
++ Iterator iterator = minecraftserver.players().iterator(); // Paper
+
+ while (iterator.hasNext()) {
+ ServerPlayer entityplayer = (ServerPlayer) iterator.next();
+@@ -72,7 +72,7 @@ public class GameRules {
+ public static final GameRules.Key<GameRules.BooleanValue> RULE_DISABLE_RAIDS = GameRules.register("disableRaids", GameRules.Category.MOBS, GameRules.BooleanValue.create(false));
+ public static final GameRules.Key<GameRules.BooleanValue> RULE_DOINSOMNIA = GameRules.register("doInsomnia", GameRules.Category.SPAWNING, GameRules.BooleanValue.create(true));
+ public static final GameRules.Key<GameRules.BooleanValue> RULE_DO_IMMEDIATE_RESPAWN = GameRules.register("doImmediateRespawn", GameRules.Category.PLAYER, GameRules.BooleanValue.create(false, (minecraftserver, gamerules_gameruleboolean) -> {
+- Iterator iterator = minecraftserver.getPlayerList().getPlayers().iterator();
++ Iterator iterator = minecraftserver.players().iterator(); // Paper
+
+ while (iterator.hasNext()) {
+ ServerPlayer entityplayer = (ServerPlayer) iterator.next();
+@@ -166,13 +166,13 @@ public class GameRules {
+ ((GameRules.Type<T>) type).callVisitor(consumer, (GameRules.Key<T>) key); // CraftBukkit - decompile error
+ }
+
+- public void assignFrom(GameRules rules, @Nullable MinecraftServer server) {
++ public void assignFrom(GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ rules.rules.keySet().forEach((gamerules_gamerulekey) -> {
+ this.assignCap(gamerules_gamerulekey, rules, server);
+ });
+ }
+
+- private <T extends GameRules.Value<T>> void assignCap(GameRules.Key<T> key, GameRules rules, @Nullable MinecraftServer server) {
++ private <T extends GameRules.Value<T>> void assignCap(GameRules.Key<T> key, GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ T t0 = rules.getRule(key);
+
+ this.getRule(key).setFrom(t0, server);
+@@ -240,10 +240,10 @@ public class GameRules {
+
+ private final Supplier<ArgumentType<?>> argument;
+ private final Function<GameRules.Type<T>, T> constructor;
+- final BiConsumer<MinecraftServer, T> callback;
++ final BiConsumer<net.minecraft.server.level.ServerLevel, T> callback; // Paper
+ private final GameRules.VisitorCaller<T> visitorCaller;
+
+- Type(Supplier<ArgumentType<?>> argumentType, Function<GameRules.Type<T>, T> ruleFactory, BiConsumer<MinecraftServer, T> changeCallback, GameRules.VisitorCaller<T> ruleAcceptor) {
++ Type(Supplier<ArgumentType<?>> argumentType, Function<GameRules.Type<T>, T> ruleFactory, BiConsumer<net.minecraft.server.level.ServerLevel, T> changeCallback, GameRules.VisitorCaller<T> ruleAcceptor) { // Paper
+ this.argument = argumentType;
+ this.constructor = ruleFactory;
+ this.callback = changeCallback;
+@@ -275,10 +275,10 @@ public class GameRules {
+
+ public void setFromArgument(CommandContext<CommandSourceStack> context, String name, GameRules.Key<T> gameRuleKey) { // Paper
+ this.updateFromArgument(context, name, gameRuleKey); // Paper
+- this.onChanged(((CommandSourceStack) context.getSource()).getServer());
++ this.onChanged(((CommandSourceStack) context.getSource()).getLevel()); // Paper
+ }
+
+- public void onChanged(@Nullable MinecraftServer server) {
++ public void onChanged(@Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ if (server != null) {
+ this.type.callback.accept(server, this.getSelf());
+ }
+@@ -299,7 +299,7 @@ public class GameRules {
+
+ protected abstract T copy();
+
+- public abstract void setFrom(T rule, @Nullable MinecraftServer server);
++ public abstract void setFrom(T rule, @Nullable net.minecraft.server.level.ServerLevel level); // Paper
+ }
+
+ public interface GameRuleTypeVisitor {
+@@ -315,7 +315,7 @@ public class GameRules {
+
+ private boolean value;
+
+- static GameRules.Type<GameRules.BooleanValue> create(boolean initialValue, BiConsumer<MinecraftServer, GameRules.BooleanValue> changeCallback) {
++ static GameRules.Type<GameRules.BooleanValue> create(boolean initialValue, BiConsumer<net.minecraft.server.level.ServerLevel, GameRules.BooleanValue> changeCallback) { // Paper
+ return new GameRules.Type<>(BoolArgumentType::bool, (gamerules_gameruledefinition) -> {
+ return new GameRules.BooleanValue(gamerules_gameruledefinition, initialValue);
+ }, changeCallback, GameRules.GameRuleTypeVisitor::visitBoolean);
+@@ -343,7 +343,7 @@ public class GameRules {
+ return this.value;
+ }
+
+- public void set(boolean value, @Nullable MinecraftServer server) {
++ public void set(boolean value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ this.value = value;
+ this.onChanged(server);
+ }
+@@ -373,7 +373,7 @@ public class GameRules {
+ return new GameRules.BooleanValue(this.type, this.value);
+ }
+
+- public void setFrom(GameRules.BooleanValue rule, @Nullable MinecraftServer server) {
++ public void setFrom(GameRules.BooleanValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ this.value = rule.value;
+ this.onChanged(server);
+ }
+@@ -383,7 +383,7 @@ public class GameRules {
+
+ private int value;
+
+- private static GameRules.Type<GameRules.IntegerValue> create(int initialValue, BiConsumer<MinecraftServer, GameRules.IntegerValue> changeCallback) {
++ private static GameRules.Type<GameRules.IntegerValue> create(int initialValue, BiConsumer<net.minecraft.server.level.ServerLevel, GameRules.IntegerValue> changeCallback) { // Paper
+ return new GameRules.Type<>(IntegerArgumentType::integer, (gamerules_gameruledefinition) -> {
+ return new GameRules.IntegerValue(gamerules_gameruledefinition, initialValue);
+ }, changeCallback, GameRules.GameRuleTypeVisitor::visitInteger);
+@@ -411,7 +411,7 @@ public class GameRules {
+ return this.value;
+ }
+
+- public void set(int value, @Nullable MinecraftServer server) {
++ public void set(int value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ this.value = value;
+ this.onChanged(server);
+ }
+@@ -462,7 +462,7 @@ public class GameRules {
+ return new GameRules.IntegerValue(this.type, this.value);
+ }
+
+- public void setFrom(GameRules.IntegerValue rule, @Nullable MinecraftServer server) {
++ public void setFrom(GameRules.IntegerValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper
+ this.value = rule.value;
+ this.onChanged(server);
+ }
+diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+index 1e26fea83065c7e76b196e6599892c11d4370617..5deed29e78ba599c4732b9bac57f0661e4871882 100644
+--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+@@ -1950,7 +1950,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ // Paper end
+ GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule));
+ handle.deserialize(event.getValue()); // Paper
+- handle.onChanged(this.getHandle().getServer());
++ handle.onChanged(this.getHandle()); // Paper
+ return true;
+ }
+
+@@ -1991,7 +1991,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ // Paper end
+ GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName()));
+ handle.deserialize(event.getValue()); // Paper
+- handle.onChanged(this.getHandle().getServer());
++ handle.onChanged(this.getHandle()); // Paper
+ return true;
+ }
+