From 44c430591829895d165517e73eae9a6e7c74ee45 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sun, 28 Apr 2024 07:27:18 +1000 Subject: [PATCH] Do not remove leash knot if leasing to an existing leash knot gets cancelled By: DerFrZocker --- .../net/minecraft/world/entity/decoration/EntityLeash.patch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch b/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch index c50e027325..23a7bb576c 100644 --- a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch +++ b/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch @@ -14,20 +14,21 @@ public class EntityLeash extends EntityHanging { public static final double OFFSET_Y = 0.375D; -@@ -89,6 +96,12 @@ +@@ -89,6 +96,13 @@ EntityInsentient entityinsentient = (EntityInsentient) iterator.next(); if (entityinsentient.getLeashHolder() == entityhuman) { + // CraftBukkit start + if (CraftEventFactory.callPlayerLeashEntityEvent(entityinsentient, this, entityhuman, enumhand).isCancelled()) { + ((EntityPlayer) entityhuman).connection.send(new PacketPlayOutAttachEntity(entityinsentient, entityinsentient.getLeashHolder())); ++ flag = true; // Also set true when the event is cancelled otherwise it tries to unleash the entities + continue; + } + // CraftBukkit end entityinsentient.setLeashedTo(this, true); flag = true; } -@@ -97,18 +110,32 @@ +@@ -97,18 +111,32 @@ boolean flag1 = false; if (!flag) {