001/* 002 * Trident - A Multithreaded Server Alternative 003 * Copyright 2014 The TridentSDK Team 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package net.tridentsdk.event.player; 019 020import net.tridentsdk.entity.living.Player; 021import net.tridentsdk.event.Cancellable; 022import net.tridentsdk.inventory.Item; 023 024/** 025 * Called when a player's fishing state changes,e.g. throws line, catches a fish, catches an entity, etc. 026 * 027 * @author The TridentSDK Team 028 * @since 0.3-alpha-DP 029 */ 030public class PlayerFishEvent extends PlayerEvent implements Cancellable { 031 private final State state; 032 private int exp; 033 private Item item; 034 private boolean cancelled; 035 036 public PlayerFishEvent(Player player, State state, int exp, Item item) { 037 super(player); 038 this.state = state; 039 this.exp = exp; 040 this.item = item; 041 } 042 043 @Override 044 public boolean isIgnored() { 045 return cancelled; 046 } 047 048 @Override 049 public void cancel(boolean cancelled) { 050 this.cancelled = cancelled; 051 } 052 053 public State state() { 054 return this.state; 055 } 056 057 public int experience() { 058 return this.exp; 059 } 060 061 public void setExp(int exp) { 062 this.exp = exp; 063 } 064 065 public Item item() { 066 return this.item; 067 } 068 069 public void setItem(Item item) { 070 this.item = item; 071 } 072 073 /** 074 * The state of a fishing inject when deployed 075 * 076 * @author The TridentSDK Team 077 * @since 0.3-alpha-DP 078 */ 079 public enum State { 080 /** 081 * When the inject is in the water 082 */ 083 FISHING, 084 /** 085 * Undefined 086 */ 087 FAILED_ATTEMPT, 088 /** 089 * A fish is caught on the inject 090 */ 091 CAUGHT_FISH, 092 /** 093 * The inject attaches to an entity 094 */ 095 CAUGHT_ENTITY, 096 /** 097 * The inject attaches to the ground 098 */ 099 IN_GROUND 100 } 101}