From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 3 Jan 2021 21:25:31 -0800 Subject: [PATCH] Make EntityUnleashEvent cancellable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java index 2f347a0687e592bf00ef7e5a031a5dde5177ba3b..cd6c48bac5c782166de274da6a50629efbc82c4c 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1468,7 +1468,7 @@ public abstract class Mob extends LivingEntity { if (flag1 && this.isLeashed()) { // Paper start - drop leash variable EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), UnleashReason.UNKNOWN, true); - this.level.getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + if (!event.callEvent()) { return flag1; } this.dropLeash(true, event.isDropLeash()); // Paper end } diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java index 5f256c1ac5d49e19cfccf174dd55506313c493e0..744a99151ceecc85349861a99f6cb65e04c41b73 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java @@ -51,7 +51,7 @@ public abstract class PathfinderMob extends Mob { if (f > entity.level.paperConfig.maxLeashDistance) { // Paper // Paper start - drop leash variable EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); - this.level.getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + if (!event.callEvent()) { return; } this.dropLeash(true, event.isDropLeash()); // Paper end } @@ -63,7 +63,7 @@ public abstract class PathfinderMob extends Mob { if (f > entity.level.paperConfig.maxLeashDistance) { // Paper // Paper start - drop leash variable EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); - this.level.getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + if (!event.callEvent()) return; this.dropLeash(true, event.isDropLeash()); // Paper end this.goalSelector.disableControlFlag(Goal.Flag.MOVE);