From f92bc8a15fbf88ebcb42118626bbbfee7fc7ca05 Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Sun, 3 Jul 2011 00:23:37 -0400 Subject: Added PlayerFish event. --- src/main/java/org/bukkit/event/Event.java | 6 ++ .../org/bukkit/event/player/PlayerFishEvent.java | 85 ++++++++++++++++++++++ .../org/bukkit/event/player/PlayerListener.java | 7 ++ .../org/bukkit/plugin/java/JavaPluginLoader.java | 7 ++ 4 files changed, 105 insertions(+) create mode 100644 src/main/java/org/bukkit/event/player/PlayerFishEvent.java (limited to 'src/main') diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index e6f30964..1d725598 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -287,6 +287,12 @@ public abstract class Event implements Serializable { * @see org.bukkit.event.player.PlayerBedLeaveEvent */ PLAYER_BED_LEAVE(Category.PLAYER), + /** + * Called when a player is fishing + * + * @see org.bukkit.event.player.PlayerFishEvent + */ + PLAYER_FISH(Category.PLAYER), /** * BLOCK EVENTS diff --git a/src/main/java/org/bukkit/event/player/PlayerFishEvent.java b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java new file mode 100644 index 00000000..584785be --- /dev/null +++ b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java @@ -0,0 +1,85 @@ +package org.bukkit.event.player; + +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.entity.Entity; + +/** + * Thrown when a player is fishing + */ +public class PlayerFishEvent extends PlayerEvent implements Cancellable { + private final Entity entity; + private boolean cancel = false; + private State state; + + public PlayerFishEvent(final Player player, final Entity entity, State state) { + super(Type.PLAYER_FISH, player); + this.entity = entity; + this.state = state; + } + + /** + * Gets the entity caught by the player + * + * @return Entity caught by the player, null if fishing, bobber has gotten stuck in the ground or nothing has been caught + */ + public Entity getCaught() { + return entity; + } + + /** + * Gets the cancellation state of this event. A cancelled event will not + * be executed in the server, but will still pass to other plugins + * + * @return true if this event is cancelled + */ + public boolean isCancelled() { + return cancel; + } + + /** + * Sets the cancellation state of this event. A cancelled event will not + * be executed in the server, but will still pass to other plugins + * + * @param cancel true if you wish to cancel this event + */ + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } + + /** + * Gets the state of the fishing + * + * @return A State detailing the state of the fishing + */ + public State getState() { + return state; + } + + /** + * An enum to specify the state of the fishing + */ + public enum State { + + /** + * When a player is fishing + */ + FISHING, + /** + * When a player has successfully caught a fish + */ + CAUGHT_FISH, + /** + * When a player has successfully caught an entity + */ + CAUGHT_ENTITY, + /** + * When a bobber is stuck in the grund + */ + IN_GROUND, + /** + * When a player fails to catch anything while fishing usually due to poor aiming or timing + */ + FAILED_ATTEMPT, + } +} diff --git a/src/main/java/org/bukkit/event/player/PlayerListener.java b/src/main/java/org/bukkit/event/player/PlayerListener.java index 4789bb06..54e5f042 100644 --- a/src/main/java/org/bukkit/event/player/PlayerListener.java +++ b/src/main/java/org/bukkit/event/player/PlayerListener.java @@ -176,4 +176,11 @@ public class PlayerListener implements Listener { * @param event Relevant event details */ public void onPlayerPortal(PlayerPortalEvent event) {} + + /** + * Called when a player is fishing + * + * @param event Relevant event details + */ + public void onPlayerFish(PlayerFishEvent event) {} } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index ec3eb340..e29c3018 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -406,6 +406,13 @@ public final class JavaPluginLoader implements PluginLoader { } }; + case PLAYER_FISH: + return new EventExecutor() { + public void execute(Listener listener, Event event) { + ((PlayerListener) listener).onPlayerFish((PlayerFishEvent) event); + } + }; + // Block Events case BLOCK_PHYSICS: return new EventExecutor() { -- cgit v1.2.3