|
49 | 49 | entity.dropLeash();
|
50 | 50 | } else {
|
51 | 51 | entity.removeLeash();
|
52 |
| -@@ -154,7 +_,7 @@ |
| 52 | +@@ -154,8 +_,7 @@ |
53 | 53 | if (leashHolder != null && leashHolder.level() == entity.level()) {
|
54 | 54 | double d = entity.leashDistanceTo(leashHolder);
|
55 | 55 | entity.whenLeashedTo(leashHolder);
|
56 | 56 | - if (d > entity.leashSnapDistance()) {
|
| 57 | +- level.playSound(null, leashHolder.getX(), leashHolder.getY(), leashHolder.getZ(), SoundEvents.LEAD_BREAK, SoundSource.NEUTRAL, 1.0F, 1.0F); |
57 | 58 | + 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); |
59 | 59 | entity.leashTooFarBehaviour();
|
60 | 60 | } else if (d > entity.leashElasticDistance() - leashHolder.getBbWidth() - entity.getBbWidth()
|
| 61 | + && entity.checkElasticInteractions(leashHolder, leashData)) { |
61 | 62 | @@ -175,6 +_,12 @@
|
62 | 63 | entity.checkFallDistanceAccumulation();
|
63 | 64 | }
|
|
71 | 72 | default double leashSnapDistance() {
|
72 | 73 | return 12.0;
|
73 | 74 | }
|
74 |
| -@@ -196,7 +_,21 @@ |
| 75 | +@@ -196,7 +_,25 @@ |
75 | 76 | }
|
76 | 77 |
|
77 | 78 | default void leashTooFarBehaviour() {
|
|
82 | 83 | + // Paper start - Expand EntityUnleashEvent
|
83 | 84 | + final org.bukkit.event.entity.EntityUnleashEvent event = new org.bukkit.event.entity.EntityUnleashEvent(entity.getBukkitEntity(), org.bukkit.event.entity.EntityUnleashEvent.UnleashReason.DISTANCE, true);
|
84 | 85 | + if (!event.callEvent()) return;
|
| 86 | ++ |
| 87 | ++ Entity leashHolder = this.getLeashHolder(); |
| 88 | ++ Level level = leashHolder.level(); |
85 | 89 | + 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 |
86 | 91 | + }
|
87 | 92 | + // CraftBukkit end
|
88 | 93 | + if (dropLeash) {
|
|
0 commit comments