From 681673fbc4ba81fddedb7a050751e1485fb63260 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Thu, 14 Aug 2025 01:24:12 +0800 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@6d0833ec Use target level for waypoint modify command (#12933) PaperMC/Paper@9694886d Fix endermite spawn position PaperMC/Paper@a664311f Fix AbstractArrow not setting noPhysics flag (#12935) PaperMC/Paper@abf6b6c2 Allow replace effects in Consumable Component Builder (#12938) PaperMC/Paper@3d1425f0 Fix phantoms failing to target players near non-insomniacs (#12953) PaperMC/Paper@4fe66e58 Fix lead_break sound playing after cancelling EntityUnleashEvent (#12944) PaperMC/Paper@86b716bc Fix BlockFadeEvent not being called when fire extinguishes in rain (#12972) --- gradle.properties | 2 +- .../0094-Purpur-Server-Minecraft-Changes.patch | 16 ++++++++-------- ...208-SparklyPaper-Parallel-world-ticking.patch | 11 +++++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5e36edae..81bc6f9a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=cn.dreeam.leaf mcVersion=1.21.8 version=1.21.8-R0.1-SNAPSHOT -paperCommit=846c64f4d1852aa0079978c72a71883fd5039ee8 +paperCommit=86b716bc5ba5e6345576a1437bd80b6b70082315 org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/leaf-server/minecraft-patches/features/0094-Purpur-Server-Minecraft-Changes.patch b/leaf-server/minecraft-patches/features/0094-Purpur-Server-Minecraft-Changes.patch index 144b0c90..fe6d019a 100644 --- a/leaf-server/minecraft-patches/features/0094-Purpur-Server-Minecraft-Changes.patch +++ b/leaf-server/minecraft-patches/features/0094-Purpur-Server-Minecraft-Changes.patch @@ -1923,7 +1923,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b } diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index a8fd1554acbe14ac74cba718ceddc9f65057bcc7..53a0d464c1eb68ee2eff7f93c5c745ee4667093a 100644 +index 1d2d06db06c6a44204a647822b1a2812567f64d9..98f9a1378c6cef93adb431730972d6b05c14b121 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -146,6 +146,7 @@ import org.jetbrains.annotations.Contract; @@ -9895,7 +9895,7 @@ index 5ef9566b16a4d0300ee45a993c46e734db156416..04d5910d736dee2a88a2602f4a984954 return false; } else { diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java -index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..32f037ae8a3dbb1f3c7e123db67b91ee23bc83b3 100644 +index 666d50b738622d26cc15ccc3c11414490296abf6..a376615bc30a168c95a9a800b06801f90da75181 100644 --- a/net/minecraft/world/entity/monster/Phantom.java +++ b/net/minecraft/world/entity/monster/Phantom.java @@ -49,19 +49,110 @@ public class Phantom extends Mob implements Enemy { @@ -10135,7 +10135,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..32f037ae8a3dbb1f3c7e123db67b91ee if (!nearbyPlayers.isEmpty()) { nearbyPlayers.sort(Comparator.comparing(Entity::getY).reversed()); -@@ -415,25 +546,160 @@ public class Phantom extends Mob implements Enemy { +@@ -416,25 +547,160 @@ public class Phantom extends Mob implements Enemy { } } @@ -10299,7 +10299,7 @@ index ffcfdbc80df2a9e6c546348b86e7615e6109eb49..32f037ae8a3dbb1f3c7e123db67b91ee if (Phantom.this.horizontalCollision) { Phantom.this.setYRot(Phantom.this.getYRot() + 180.0F); this.speed = 0.1F; -@@ -500,6 +766,12 @@ public class Phantom extends Mob implements Enemy { +@@ -501,6 +767,12 @@ public class Phantom extends Mob implements Enemy { return false; } else if (!target.isAlive()) { return false; @@ -12998,10 +12998,10 @@ index 677b4b681f9c2c09a8ae3cfdec72102265547a7b..d8f9fb603fd2e3e5c1dfc05face7f42b protected void onHit(HitResult result) { super.onHit(result); diff --git a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index 4b04ca7d50d7a85827bd89fff24434e603e99579..2258736e6f9f52efe5bd353b8949a7a0b9a4fdb8 100644 +index 5aa63c90e1c0605faef76588efdc7c3903be4605..ebc7db0fc6e8fb8f4bd19945e61287b2ff61cdbc 100644 --- a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -@@ -126,9 +126,10 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { +@@ -129,9 +129,10 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { return; } // CraftBukkit end @@ -13010,10 +13010,10 @@ index 4b04ca7d50d7a85827bd89fff24434e603e99579..2258736e6f9f52efe5bd353b8949a7a0 Endermite endermite = EntityType.ENDERMITE.create(serverLevel, EntitySpawnReason.TRIGGERED); if (endermite != null) { + endermite.setPlayerSpawned(true); // Purpur - Add back player spawned endermite API - endermite.snapTo(owner.getX(), owner.getY(), owner.getZ(), owner.getYRot(), owner.getXRot()); + endermite.snapTo(preTeleportX, preTeleportY, preTeleportZ, preTeleportYRot, preTeleportXRot); // Paper - spawn endermite at pre teleport position as teleport has been moved up serverLevel.addFreshEntity(endermite, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.ENDER_PEARL); } -@@ -148,7 +149,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { +@@ -151,7 +152,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { if (serverPlayer1 != null) { serverPlayer1.resetFallDistance(); serverPlayer1.resetCurrentImpulseContext(); diff --git a/leaf-server/minecraft-patches/features/0208-SparklyPaper-Parallel-world-ticking.patch b/leaf-server/minecraft-patches/features/0208-SparklyPaper-Parallel-world-ticking.patch index 85161995..dc2462b7 100644 --- a/leaf-server/minecraft-patches/features/0208-SparklyPaper-Parallel-world-ticking.patch +++ b/leaf-server/minecraft-patches/features/0208-SparklyPaper-Parallel-world-ticking.patch @@ -849,7 +849,7 @@ index f9e7532f86122a379692561a639a209a126e8bba..fab317d6c9a1c914f19bae11846cb576 if (isLocatorBarEnabledFor(player)) { if (!connection.isBroken()) { diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index c9b0bc7ad989b85ad6224ef13d8cbbbe300b0606..317e6ee0cf5c49501cba71b883cae205fb1cd54c 100644 +index 1e7eb352143c3ff87f070a2f69a9c253d100c57c..97b55cde60c69b5d306b776a345af4e94f7fab01 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -3510,15 +3510,40 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1056,22 +1056,25 @@ index d3a86b2d9de3be3bdd38682712472b86b90f5661..a4fc8d4d17971643921e91438f527a25 }); } diff --git a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index 2258736e6f9f52efe5bd353b8949a7a0b9a4fdb8..aa71eca6cd69cfa79b84cb181c25c4be8e4511b2 100644 +index ebc7db0fc6e8fb8f4bd19945e61287b2ff61cdbc..4d6d843769e1ac9176fc1e90d429b8f0f2ec1f85 100644 --- a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -@@ -119,8 +119,10 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { +@@ -119,11 +119,13 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { Vec3 vec3 = this.oldPosition(); if (owner instanceof ServerPlayer serverPlayer) { if (serverPlayer.connection.isAcceptingMessages()) { + // Leaf start - SparklyPaper - parallel world ticking mod (handling for pearl teleportation cross-dimension) + java.util.function.Consumer teleportPlayerCrossDimensionTask = taskServerPlayer -> { // CraftBukkit start + // Store pre teleportation position as the teleport has been moved up. + final double preTeleportX = serverPlayer.getX(), preTeleportY = serverPlayer.getY(), preTeleportZ = serverPlayer.getZ(); + final float preTeleportYRot = serverPlayer.getYRot(), preTeleportXRot = serverPlayer.getXRot(); - ServerPlayer serverPlayer1 = serverPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); + ServerPlayer serverPlayer1 = taskServerPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL)); if (serverPlayer1 == null) { this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.HIT); return; -@@ -149,10 +151,16 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { +@@ -152,10 +154,16 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { if (serverPlayer1 != null) { serverPlayer1.resetFallDistance(); serverPlayer1.resetCurrentImpulseContext();