Skip to content

Commit 4fe66e5

Browse files
authored
Fix lead_break sound playing after cancelling EntityUnleashEvent (#12944)
1 parent 3d1425f commit 4fe66e5

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

paper-server/patches/sources/net/minecraft/world/entity/Leashable.java.patch

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,16 @@
4949
entity.dropLeash();
5050
} else {
5151
entity.removeLeash();
52-
@@ -154,7 +_,7 @@
52+
@@ -154,8 +_,7 @@
5353
if (leashHolder != null && leashHolder.level() == entity.level()) {
5454
double d = entity.leashDistanceTo(leashHolder);
5555
entity.whenLeashedTo(leashHolder);
5656
- if (d > entity.leashSnapDistance()) {
57+
- level.playSound(null, leashHolder.getX(), leashHolder.getY(), leashHolder.getZ(), SoundEvents.LEAD_BREAK, SoundSource.NEUTRAL, 1.0F, 1.0F);
5758
+ if (d > entity.leashSnapDistanceOrConfig()) { // Paper - Configurable max leash distance
58-
level.playSound(null, leashHolder.getX(), leashHolder.getY(), leashHolder.getZ(), SoundEvents.LEAD_BREAK, SoundSource.NEUTRAL, 1.0F, 1.0F);
5959
entity.leashTooFarBehaviour();
6060
} else if (d > entity.leashElasticDistance() - leashHolder.getBbWidth() - entity.getBbWidth()
61+
&& entity.checkElasticInteractions(leashHolder, leashData)) {
6162
@@ -175,6 +_,12 @@
6263
entity.checkFallDistanceAccumulation();
6364
}
@@ -71,7 +72,7 @@
7172
default double leashSnapDistance() {
7273
return 12.0;
7374
}
74-
@@ -196,7 +_,21 @@
75+
@@ -196,7 +_,25 @@
7576
}
7677

7778
default void leashTooFarBehaviour() {
@@ -82,7 +83,11 @@
8283
+ // Paper start - Expand EntityUnleashEvent
8384
+ final org.bukkit.event.entity.EntityUnleashEvent event = new org.bukkit.event.entity.EntityUnleashEvent(entity.getBukkitEntity(), org.bukkit.event.entity.EntityUnleashEvent.UnleashReason.DISTANCE, true);
8485
+ if (!event.callEvent()) return;
86+
+
87+
+ Entity leashHolder = this.getLeashHolder();
88+
+ Level level = leashHolder.level();
8589
+ dropLeash = event.isDropLeash();
90+
+ level.playSound(null, leashHolder.getX(), leashHolder.getY(), leashHolder.getZ(), SoundEvents.LEAD_BREAK, SoundSource.NEUTRAL, 1.0F, 1.0F); // Moved from Leashable#tickLeash
8691
+ }
8792
+ // CraftBukkit end
8893
+ if (dropLeash) {

0 commit comments

Comments
 (0)