All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.event.player.PlayerFishEvent Maven / Gradle / Ivy

package org.bukkit.event.player;

import org.bukkit.entity.Entity;
import org.bukkit.entity.Fish;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;

/**
 * Thrown when a player is fishing
 */
public class PlayerFishEvent extends PlayerEvent implements Cancellable {
  private static final HandlerList handlers = new HandlerList();
  private final Entity entity;
  private final State state;
  private final Fish hookEntity;
  private boolean cancel = false;
  private int exp;

  /**
   * @param player the player fishing
   * @param entity the caught entity
   * @param state  the state of fishing
   * @deprecated replaced by {@link #PlayerFishEvent(Player, Entity, Fish,
   * State)} to include the {@link Fish} hook entity.
   */
  @Deprecated
  public PlayerFishEvent(final Player player, final Entity entity, final State state) {
    this(player, entity, null, state);
  }

  public PlayerFishEvent(final Player player, final Entity entity, final Fish hookEntity, final State state) {
    super(player);
    this.entity = entity;
    this.hookEntity = hookEntity;
    this.state = state;
  }

  public static HandlerList getHandlerList() {
    return handlers;
  }

  /**
   * Gets the entity caught by the player.
   * 

* If player has fished successfully, the result may be cast to {@link * org.bukkit.entity.Item}. * * @return Entity caught by the player, Entity if fishing, and null if * bobber has gotten stuck in the ground or nothing has been caught */ public Entity getCaught() { return entity; } /** * Gets the fishing hook. * * @return Fish the entity representing the fishing hook/bobber. */ public Fish getHook() { return hookEntity; } public boolean isCancelled() { return cancel; } public void setCancelled(boolean cancel) { this.cancel = cancel; } /** * Gets the amount of experience received when fishing. *

* Note: This value has no default effect unless the event state is {@link * State#CAUGHT_FISH}. * * @return the amount of experience to drop */ public int getExpToDrop() { return exp; } /** * Sets the amount of experience received when fishing. *

* Note: This value has no default effect unless the event state is {@link * State#CAUGHT_FISH}. * * @param amount the amount of experience to drop */ public void setExpToDrop(int amount) { exp = amount; } /** * Gets the state of the fishing * * @return A State detailing the state of the fishing */ public State getState() { return state; } @Override public HandlerList getHandlers() { return handlers; } /** * An enum to specify the state of the fishing */ public enum State { /** * When a player is fishing, ie casting the line out. */ FISHING, /** * When a player has successfully caught a fish and is reeling it in. */ CAUGHT_FISH, /** * When a player has successfully caught an entity */ CAUGHT_ENTITY, /** * When a bobber is stuck in the ground */ IN_GROUND, /** * When a player fails to catch anything while fishing usually due to * poor aiming or timing */ FAILED_ATTEMPT, } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy