d8847bc1f3
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: fde5602a PR-927: Add PlayerRecipeBookSettingsChangeEvent 949ff217 PR-930: Add methods to get/set evoker fang attack delay f6f7c79d SPIGOT-7514, PR-929: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics d40e22da PR-712: Add API to get full result of crafting items CraftBukkit Changes: c8feb0629 PR-1291: Improve precondition message in Entity#playEffect 482c56a00 PR-1285: Add PlayerRecipeBookSettingsChangeEvent cdf798800 PR-1290: Add methods to get/set evoker fang attack delay 2c1b5f78f SPIGOT-7514, PR-1289: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics 6aa644ae9 PR-992: Add API to get full result of crafting items ffb1319bc PR-1287: Fix scoreboards not updating in Player#setStatistic
191 Zeilen
12 KiB
Diff
191 Zeilen
12 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
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 5a0a34ea500607b1370df3e5ee4c1ad64f252449..321675996b83fbe34d7e0d690eafe170d7466e17 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 17fe79afb31d58d8f444eca7285f77189bafa35d..ab0a3fed682f6b2cd5e60224c3a0d2a55c69efe8 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -2752,7 +2752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
|
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 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d5b2a27ee 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();
|
|
@@ -66,7 +66,7 @@ public class GameRules {
|
|
public static final GameRules.Key<GameRules.IntegerValue> RULE_MAX_ENTITY_CRAMMING = GameRules.register("maxEntityCramming", GameRules.Category.MOBS, GameRules.IntegerValue.create(24));
|
|
public static final GameRules.Key<GameRules.BooleanValue> RULE_WEATHER_CYCLE = GameRules.register("doWeatherCycle", GameRules.Category.UPDATES, GameRules.BooleanValue.create(true));
|
|
public static final GameRules.Key<GameRules.BooleanValue> RULE_LIMITED_CRAFTING = GameRules.register("doLimitedCrafting", 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();
|
|
@@ -81,7 +81,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();
|
|
@@ -176,13 +176,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);
|
|
@@ -250,10 +250,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;
|
|
@@ -285,10 +285,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());
|
|
}
|
|
@@ -309,7 +309,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 {
|
|
@@ -325,7 +325,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);
|
|
@@ -353,7 +353,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);
|
|
}
|
|
@@ -383,7 +383,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);
|
|
}
|
|
@@ -393,7 +393,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);
|
|
@@ -421,7 +421,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);
|
|
}
|
|
@@ -472,7 +472,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 b76d59ae107eec1ea52edfb2d08b1a1da7931593..6beefb48468779005cb3e93d1c6d8c0465e84d73 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;
|
|
}
|
|
|