From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: myiume Date: Wed, 19 Feb 2014 15:40:37 +0200 Subject: [PATCH] Fix PlayerFishEvent not properly cancelling. Fixes BUKKIT-5245,BUKKIT-5396 PlayerFishEvent event states are not properly being cancelled, the FishingHookEntity being deleted when the event is cancelled, thus making the event happen. The event states of CAUGHT_ENTITY, CAUGHT_FISH, FAILED_ATTEMPT, IN_GROUND must keep the EntityFishingHook alive in order to cancel the event. Removed the entity despawn lines when event is cancelled and added a cancelled action for FAILED_ATTEMPT state. diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java @@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity { this.world.getServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { - this.die(); - this.owner.hookedFish = null; return 0; } // CraftBukkit end @@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity { this.world.getServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { - this.die(); - this.owner.hookedFish = null; return 0; } // CraftBukkit end @@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity { this.world.getServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { - this.die(); - this.owner.hookedFish = null; return 0; } // CraftBukkit end @@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity { if (b0 == 0) { PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) this.owner.getBukkitEntity(), null, (Fish) this.getBukkitEntity(), PlayerFishEvent.State.FAILED_ATTEMPT); this.world.getServer().getPluginManager().callEvent(playerFishEvent); + + if (playerFishEvent.isCancelled()) { + return 0; + } } // CraftBukkit end --