Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@57c7aac4 Propagate failures from suggestion futures fixes #13587 (#13598)
PaperMC/Paper@fd39dbdb Provide locale pointer for config connection audience (#13600)
PaperMC/Paper@a687a82c [ci/skip] chore: remove unneeded task configuration (#13484)
PaperMC/Paper@e5718dce fix: PlayerServerFullCheckEvent#deny not setting the allow flag (#13601)
PaperMC/Paper@ae0c3a9e Add ItemCraftedEvent (#12245)
PaperMC/Paper@581214ad Fix fixClimbingBypassingCramming option (#12793)
PaperMC/Paper@0d768aac Add RecipeChoice.ItemTypeChoice (#12049)
PaperMC/Paper@e2b76dfd Implement deprecated getItemStack method in ItemTypeRecipeChoice (#13607)
PaperMC/Paper@9d303299 Fix pre-tick cooldown reset on swap (#13589)
PaperMC/Paper@04739de1 Make SkinSource Player implementation reflect profile changes (#13585)
PaperMC/Paper@c59990d9 Update affects spawning api (#13556)
PaperMC/Paper@302c47c0 Don't tick disconnected connections (#13614)
This commit is contained in:
granny
2026-02-07 15:58:19 -08:00
parent 9c546987c7
commit f6242c0a30
9 changed files with 37 additions and 41 deletions

View File

@@ -18,7 +18,7 @@ index 05eb0c3273ffa1b5a1ebd8f8ae42c11830d755c7..49d3154afe2ca5789e63bdf972c79196
public boolean isClientAuthoritative() {
return false;
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 8793253032e43920d9668079d5a2537ac5aec415..2717e0a1fd8a3cc7d4a6f8d18659293e86025cd0 100644
index 21ec2d87249824a6f796833baa48b122e39157d2..cbf0f526329b0de3281795667203a6500c6aedd0 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1836,6 +1836,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -62,10 +62,10 @@ index a16813766ad244c002a752b0c03779c550d39e75..74f1230a2a7ca443ef4dc95720695292
private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 5af26990d6cce42c3c12ac6d896ed3859c3497e3..0e17b54d7c3046cc85d15956793450ff70857b3c 100644
index 74f8f1c8a3d688fadcbc266bac126e13d9d93dc5..91f9739bf34b824c5955ad0a9ef04dcb7c2e6736 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2915,6 +2915,8 @@ public class ServerGamePacketListenerImpl
@@ -2916,6 +2916,8 @@ public class ServerGamePacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
final boolean resendData = event.isCancelled() || !ServerGamePacketListenerImpl.this.player.getItemInHand(hand).is(itemType);
@@ -3378,7 +3378,7 @@ index 2d903c77017ae356eb309df3c2c43b91c4e52f2f..bd78d8c3e8c1d9b581c751d336322fbf
} else {
AbstractThrownPotion abstractThrownPotion1 = damageSource.getDirectEntity() instanceof AbstractThrownPotion abstractThrownPotion
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
index 980ec0e45581812c027bb2ce8cd25d74e5f10663..844ba943a2a752f9b25506b644a4b4abc981b4cb 100644
index 815649e51cc2748f8672441ce709e08365294787..06687be7b218a2a3140924f5e7216199d85d35be 100644
--- a/net/minecraft/world/entity/monster/Endermite.java
+++ b/net/minecraft/world/entity/monster/Endermite.java
@@ -47,14 +47,33 @@ public class Endermite extends Monster {
@@ -3898,7 +3898,7 @@ index 6e8400c4d523da8799d586c5c9019ae78710fbcb..9647741b67e1b4b7bbff0df22fc1bf3f
super(mob);
}
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 93b46d52d8019aef91798b796ab2f490f886a3e9..cf305d4a0a71f91caa31757dcd8ca5be84fc3f03 100644
index 142f776ea2bfcd434d045a78d5629cd05b006b20..99b1f5009a14dab2641c1f9096d819538545989e 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -38,14 +38,33 @@ public class Silverfish extends Monster {
@@ -5179,7 +5179,7 @@ index aceeb9919473f5ff1b84efe950d10aa4dbc10121..5c7da654ef967356173a9d85a8675a7d
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
this.setTradingPlayer(player);
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index d4ce7052a497261e0ab139f2a434dda598fc154b..3339cb1068ab162e36c410950e83e5f32dd9b705 100644
index 616c1aafcda05ae1d2a833f2f725b9eefb52cbc6..98078f38f4b24484f615fb02fe11618ad3b4a133 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -199,6 +199,19 @@ public abstract class Player extends Avatar implements ContainerUser {

View File

@@ -17,11 +17,11 @@
+ }
+ );
+ // Purpur end - AFK API
+
+
@Override
public void tick() {
if (this.ackBlockChangesUpTo > -1) {
@@ -363,6 +_,12 @@
if (this.isDisconnected()) return; // Paper
@@ -364,6 +_,12 @@
&& this.server.playerIdleTimeout() > 0
&& Util.getMillis() - this.player.getLastActionTime() > TimeUnit.MINUTES.toMillis(this.server.playerIdleTimeout())
&& !this.player.wonGame) {
@@ -34,7 +34,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
}
}
@@ -682,6 +_,8 @@
@@ -683,6 +_,8 @@
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -43,7 +43,7 @@
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -761,6 +_,7 @@
@@ -762,6 +_,7 @@
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
@@ -51,7 +51,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return;
}
@@ -1301,6 +_,10 @@
@@ -1302,6 +_,10 @@
final int maxBookPageSize = pageMax.intValue();
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize;
@@ -62,7 +62,7 @@
for (final String page : pageList) {
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
byteTotal += byteLength;
@@ -1325,7 +_,8 @@
@@ -1326,7 +_,8 @@
}
if (byteTotal > byteAllowed) {
@@ -72,7 +72,7 @@
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return;
}
@@ -1344,31 +_,45 @@
@@ -1345,31 +_,45 @@
Optional<String> optional = packet.title();
optional.ifPresent(list::add);
list.addAll(packet.pages());
@@ -122,7 +122,7 @@
itemStack.set(
DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getPlainTextName(), 0, list, true)
);
@@ -1381,6 +_,16 @@
@@ -1382,6 +_,16 @@
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText);
}
@@ -139,7 +139,7 @@
@Override
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -1420,7 +_,15 @@
@@ -1421,7 +_,15 @@
@Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -156,7 +156,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else {
ServerLevel serverLevel = this.player.level();
@@ -1603,7 +_,7 @@
@@ -1604,7 +_,7 @@
movedWrongly = true;
if (event.getLogWarning())
// Paper end
@@ -165,7 +165,7 @@
} // Paper
}
@@ -1668,6 +_,8 @@
@@ -1669,6 +_,8 @@
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -174,7 +174,7 @@
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -1723,6 +_,13 @@
@@ -1724,6 +_,13 @@
this.player.tryResetCurrentImpulseContext();
}
@@ -188,7 +188,7 @@
this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1740,6 +_,17 @@
@@ -1741,6 +_,17 @@
}
}
@@ -206,7 +206,7 @@
private boolean shouldCheckPlayerMovement(boolean isElytraMovement) {
if (this.isSingleplayerOwner()) {
return false;
@@ -2168,6 +_,7 @@
@@ -2169,6 +_,7 @@
boolean cancelled;
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
@@ -214,7 +214,7 @@
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
@@ -2820,6 +_,7 @@
@@ -2821,6 +_,7 @@
AABB boundingBox = target.getBoundingBox();
if (packet.isWithinRange(this.player, boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
@@ -222,7 +222,7 @@
packet.dispatch(
new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
@@ -3580,7 +_,7 @@
@@ -3581,7 +_,7 @@
@Override
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/EntityGetter.java
+++ b/net/minecraft/world/level/EntityGetter.java
@@ -182,7 +_,7 @@
@@ -187,7 +_,7 @@
default boolean hasNearbyAlivePlayer(double x, double y, double z, double distance) {
for (Player player : this.players()) {

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java
@@ -36,6 +_,7 @@
@@ -43,6 +_,7 @@
stack = Ingredient.of(((RecipeChoice.MaterialChoice) bukkit).getChoices().stream().map((mat) -> CraftItemType.bukkitToMinecraft(mat)));
} else if (bukkit instanceof RecipeChoice.ExactChoice) {
stack = Ingredient.ofStacks(((RecipeChoice.ExactChoice) bukkit).getChoices().stream().map((mat) -> CraftItemStack.asNMSCopy(mat)).toList());