Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@2e7bb166 Deprecate dyes custom tag in favour of vanilla tag (#13855)
PaperMC/Paper@6048c2d9 Fix LivingEntity#knockback ignored when its Player (#13842)
PaperMC/Paper@b80b6046 fix: Attack strength ticker cooldown incorrectly reset (#13856)
PaperMC/Paper@1835b046 Call AsyncPlayerPreLoginEvent/AsyncPlayerConnectionConfigureEvent on virtual threads (#13816)
PaperMC/Paper@afea65c2 Fix leash event for boats and elytra (#13697)
PaperMC/Paper@39bd1bac [ci/skip] Rebuild patches
PaperMC/Paper@11dbf110 Call BlockRedstoneEvent for more interactions (#12206)
PaperMC/Paper@b8b4a1c7 Update Player#getClientViewDistance (#13530)
PaperMC/Paper@b685281d [ci/skip] Mention documenting new config options in CONTRIBUTING.md (#13664)
This commit is contained in:
granny
2026-05-03 22:54:21 -07:00
parent dc46f46d28
commit 348027faef
10 changed files with 22 additions and 22 deletions

View File

@@ -3,7 +3,7 @@ group = org.purpurmc.purpur
mcVersion = 26.1.2
apiVersion = 26.1.2
channel=STABLE
paperCommit = 39a1aa5c7fa9742accf82c247a0ea18014788b5f
paperCommit = b685281d7442aef8765f74e69ba95483de29cc20
org.gradle.configuration-cache = true
org.gradle.caching = true

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -4015,4 +_,123 @@
@@ -4014,4 +_,123 @@
*/
@ApiStatus.Experimental
PlayerGameConnection getConnection();

View File

@@ -153,7 +153,7 @@ index 1922a09d57f7f91ef2dec814918fd9da4a9189cd..49c5c8ab8f3333d4d6a96643e7018905
+ // Purpur end - Ridables
}
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 2057dacb7b48feae232d4f651104dd60ea9dc9c0..40f3e802ca9a9ca9977ce32a24bc56af971f2eaa 100644
index 0b8ab186f1e40750b158686c0ab31908fd3b1de3..cc44373545f9c29c9c827159ccd26e295e48c9d7 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -243,9 +243,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -186,7 +186,7 @@ index 2057dacb7b48feae232d4f651104dd60ea9dc9c0..40f3e802ca9a9ca9977ce32a24bc56af
@Override
protected void checkFallDamage(final double ya, final boolean onGround, final BlockState onState, final BlockPos pos) {
@@ -3166,6 +3167,20 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3153,6 +3154,20 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.move(MoverType.SELF, this.getDeltaMovement());
this.setDeltaMovement(this.getDeltaMovement().scale(0.5));
} else {
@@ -207,7 +207,7 @@ index 2057dacb7b48feae232d4f651104dd60ea9dc9c0..40f3e802ca9a9ca9977ce32a24bc56af
this.moveRelative(airSpeed, input);
this.move(MoverType.SELF, this.getDeltaMovement());
this.setDeltaMovement(this.getDeltaMovement().scale(0.91F));
@@ -3864,8 +3879,10 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3856,8 +3871,10 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.pushEntities();
profiler.pop();
// Paper start - Add EntityMoveEvent
@@ -220,7 +220,7 @@ index 2057dacb7b48feae232d4f651104dd60ea9dc9c0..40f3e802ca9a9ca9977ce32a24bc56af
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
@@ -3875,6 +3892,21 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3867,6 +3884,21 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.absSnapTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
}
}
@@ -3865,7 +3865,7 @@ index c88545ac6fc99e5d055126ef39f799f9caef257b..1d02a5a037cb50844419ef41227be242
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0);
} else {
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index 0dce4c8b7fed76975af7c9c96f08e5dad6f0c413..cdcc2e23259bc259ed2edc7e2eff8ddc4636a5bb 100644
index 22474b08a7a76ca1a68be121d4c82fdb375c1b16..70eeb536cd18662e75079109142e9e3f8eceec61 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -110,12 +110,31 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -5194,7 +5194,7 @@ index a37fa3473db1f48212eecea683aea53284d50f15..2d0203b256080c3779331ff686714ae4
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 cc14126928b2ee3df91b98adfcdbc15a9057e8b2..68688267947f19154a220fc4bea828232d08c313 100644
index f147403c3cff53c8d4fb3f7d62131582244eb7c0..54e99bf8787be854e2b0d18584b58f42deaee7ea 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -194,6 +194,19 @@ public abstract class Player extends Avatar implements ContainerUser {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index a20626d0b750ba89836d806bef61528758849311..fd20156ba4319778323756485557b3dbc32b09c1 100644
index 8f536177aabda1387d3562912b48ae8fce1dd278..fbb288020b0526d44312610782f41ab443a42ad9 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3945,7 +3945,16 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3937,7 +3937,16 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (freeFallInterval % 2 == 0) {
List<EquipmentSlot> slotsWithGliders = EquipmentSlot.VALUES.stream().filter(slot -> canGlideUsing(this.getItemBySlot(slot), slot)).toList();
EquipmentSlot slotToDamage = Util.getRandom(slotsWithGliders, this.random);
@@ -27,11 +27,11 @@ index a20626d0b750ba89836d806bef61528758849311..fd20156ba4319778323756485557b3db
this.gameEvent(GameEvent.ELYTRA_GLIDE);
diff --git a/net/minecraft/world/item/FireworkRocketItem.java b/net/minecraft/world/item/FireworkRocketItem.java
index c17607cb1fd5403f17a64b4218571e669b840a2e..6545145e1f83b333fd1d05ab714c9869c5d2d7fe 100644
index 0afc0916e358d4b9c9c360358a6c1aebe1ac723b..ce4380f76c89008b5fa8cd5fd666a0c22e93b26b 100644
--- a/net/minecraft/world/item/FireworkRocketItem.java
+++ b/net/minecraft/world/item/FireworkRocketItem.java
@@ -73,6 +73,17 @@ public class FireworkRocketItem extends Item implements ProjectileItem {
if (player.dropAllLeashConnections(null)) {
if (player.dropAllLeashConnections(player, hand)) { // Paper - PlayerUnleashEntityEvent
level.playSound(null, player, SoundEvents.LEAD_BREAK, SoundSource.NEUTRAL, 1.0F, 1.0F);
}
+ // Purpur start - Implement elytra settings

View File

@@ -52,10 +52,10 @@ index 7195082470ca411caf9c071e970edddae93cb127..9740bb9ec78cad900b9fa7d8ed6fca6a
}
}
diff --git a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
index 5c749dbb137fed1c94430c0df637fec95a8773be..25c403d66d6e4c8b1798f5ba7f0a610430b4cc09 100644
index a820abd08a5e2a7deada616305f3a3e8ecc4fea8..f289bd4a4251dc98b194b79d030dc480dd9dbb66 100644
--- a/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
+++ b/net/minecraft/world/entity/vehicle/boat/AbstractBoat.java
@@ -814,7 +814,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
@@ -822,7 +822,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {
@Override
public final ItemStack getPickResult() {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 1ff07b2d360e42a073a6ff0f2a188f320f8376b3..f32ebfa15c4c56eee63c5c520aa6a65faccdc104 100644
index 49c5c8ab8f3333d4d6a96643e7018905a533b645..a593c6408b007f67c2c8e534f0b40f6c17545d8d 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -558,6 +558,21 @@ public abstract class Entity
@@ -32,7 +32,7 @@ index 1ff07b2d360e42a073a6ff0f2a188f320f8376b3..f32ebfa15c4c56eee63c5c520aa6a65f
this.type = type;
this.level = level;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 5ce6af2b5b22f439aa747d937f0baef7c2479635..6f26248e50eaa14a881b500e396a817b3fd4d9b0 100644
index 123cb2d5edfbfaec8ba3a2a2683bfb42ea79c36a..c7a0c22c93d4d025c64e9102d53e89da33d181b7 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -59,7 +59,7 @@ index 5ce6af2b5b22f439aa747d937f0baef7c2479635..6f26248e50eaa14a881b500e396a817b
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
@@ -3915,6 +3918,37 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3907,6 +3910,37 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -290,7 +_,7 @@
@@ -288,7 +_,7 @@
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(name)); // Spigot
} else {

View File

@@ -155,7 +155,7 @@
}
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3269,6 +_,7 @@
@@ -3256,6 +_,7 @@
float dmg = (float)(diff * 10.0 - 3.0);
if (dmg > 0.0F) {
this.playSound(this.getFallDamageSound((int)dmg), 1.0F, 1.0F);
@@ -163,7 +163,7 @@
this.hurt(this.damageSources().flyIntoWall(), dmg);
}
}
@@ -4748,6 +_,12 @@
@@ -4740,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.typeHolder());
}

View File

@@ -8,7 +8,7 @@
} else {
state = state.cycle(OPEN);
level.setBlock(pos, state, Block.UPDATE_CLIENTS | Block.UPDATE_IMMEDIATE);
@@ -288,4 +_,18 @@
@@ -280,4 +_,18 @@
public static boolean isWoodenDoor(final BlockState state) {
return state.getBlock() instanceof DoorBlock door && door.type().canOpenByHand();
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/NoteBlock.java
+++ b/net/minecraft/world/level/block/NoteBlock.java
@@ -103,7 +_,7 @@
@@ -108,7 +_,7 @@
}
private void playNote(final @Nullable Entity source, final BlockState state, final Level level, final BlockPos pos) {