PlayerFishEvent

PlayerFishEvent

继承关系

=>  org.bukkit.event.Event

    =>  org.bukkit.event.player.PlayerEvent

        =>  org.bukkit.event.player.PlayerFishEvent

类描述

Thrown when a player is fishing

当玩家钓鱼时触发。

译注:不同于 PlayerBucketEntityEvent ,本事件在玩家使用钓鱼竿钓鱼时触发,而非用桶装入鱼时触发。而且在钓鱼过程中,本事件可能会触发很多次。

当玩家手持钓鱼竿甩出鱼漂时,无论鱼漂是否进入水中、是否钩住实体、是否接触到固体方块,都会立即触发一次本事件,PlayerFishEvent.STATEFISHING

当玩家甩出的鱼漂钩住实体时,不会触发本事件。当玩家甩出的鱼漂钩住了实体,且玩家右键收竿,将实体拉向自身时,将会触发本事件,PlayerFishEvent.STATECAUGHT_ENTITY

当玩家甩出的鱼漂钩住固体方块时,不会触发本事件。当玩家甩出的鱼漂钩住了方块,且玩家右键收竿,将鱼漂收回时,将会触发本事件,PlayerFishEvent.STATEIN_GROUND

当玩家甩出的鱼漂无法钩住任何实体或方块,也无法接触水面时(比如从过高的高空甩出鱼漂时),在一段时间后鱼漂会被自动收回,不会触发本事件。如果鱼漂在空气中且玩家主动收竿,将会触发本事件,PlayerFishEvent.STATEREEL_IN

当鱼漂在水面上,且有鱼咬钩时,将会触发本事件,PlayerFishEvent.STATEBITE 。每有鱼咬一次钩就触发一次本事件(玩家可能一直没有收竿,因此鱼多次咬钩又离开)。此后如果玩家没有及时收竿,让鱼游走了,将会触发本事件,PlayerFishEvent.STATEFAILED_ATTEMPT 。每错过一次咬钩就触发一次本事件。当玩家及时右键钓鱼竿得到收获时,将会触发本事件,PlayerFishEvent.STATECAUGHT_FISH 。当玩家右键收回在水中的鱼漂且没有收获时(比如时间过短,没有鱼咬钩),将会触发本事件,PlayerFishEvent.STATEREEL_IN

因此,一次钓鱼过程中,本事件可能会以如下顺序触发(使用 PlayerFishEvent.STATE 的字段表示):

FISHING -> BITE -> FAILED_ATTEMPT -> BITE -> CAUGHT_FISH (咬钩一次但错过了,第二次咬钩时钓上鱼)

FISHING -> BITE -> FAILED_ATTEMPT -> REEL_IN (咬钩一次但错过了,随后收竿,没有收获)

FISHING -> REEL_IN (抛出鱼竿之后立刻收回)

FISHING -> IN_GROUND (鱼漂卡到方块里然后收回)

FISHING -> CAUGHT_ENTITY (鱼漂钩住生物然后收回)

方法列表

getCaught

方法声明: public Entity getCaught()

方法签名: ()Lorg/bukkit/entity/Entity;

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

该方法用于获取玩家用鱼竿钩住的实体。

如果玩家在水中钓鱼得到收获,那么会把钓上的物品堆转为物品实体,作为返回值。

@return 玩家用鱼竿钩住的实体。如果玩家没有钩住实体,而是在水中钓鱼得到了收获,则返回收获的物品堆实体。如果鱼漂卡在方块里或没有钓上任何实体,则返回 null

getHook

方法声明: public FishHook getHook()

方法签名: ()Lorg/bukkit/entity/FishHook;

Gets the fishing hook.

@return the entity representing the fishing hook/bobber.

该方法用于获取鱼漂实体。

@return 鱼漂实体。

isCancelled

方法声明: public boolean isCancelled()

方法签名: ()Z

setCancelled

方法声明: public void setCancelled(boolean cancel)

方法签名: (Z)V

getExpToDrop

方法声明: public int getExpToDrop()

方法签名: ()I

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

该方法用于获取钓上鱼所奖励的经验值。

注意,除非本事件的 getState() 方法返回 State#CAUGHT_FISH ,否则这个值没有意义。

@return 钓上鱼所奖励的经验值。

setExpToDrop

方法声明: public void setExpToDrop(int amount)

方法签名: (I)V

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

该方法用于设置钓上鱼所奖励的经验值。

注意,除非本事件的 getState() 方法返回 State#CAUGHT_FISH ,否则这个值没有意义。

@param amount 钓上鱼所奖励的经验值。

getState

方法声明: public State getState()

方法签名: ()Lorg/bukkit/event/player/PlayerFishEvent/State;

Gets the state of the fishing

@return A State detailing the state of the fishing

该方法用于获取钓鱼过程处于何阶段。

@return 一个 State 枚举字段,用于确定钓鱼过程所处的阶段。

译注:见上。

getHandlers

方法声明: public HandlerList getHandlers()

方法签名: ()Lorg/bukkit/event/HandlerList;

getHandlerList

方法声明: public static HandlerList getHandlerList()

方法签名: ()Lorg/bukkit/event/HandlerList;

枚举: State

An enum to specify the state of the fishing

用于确定钓鱼过程所处阶段的枚举。

FISHING

When a player is fishing, ie casting the line out.

玩家开始钓鱼,把鱼线抛出。

CAUGHT_FISH

When a player has successfully caught a fish and is reeling it in. In

this instance, a "fish" is any item retrieved from water as a result

of fishing, ie an item, but not necessarily a fish.

玩家成功钓上了鱼并收竿。所谓钓上了“鱼”,其实是指玩家从水中得到收获,比如钓上某个种类不属于鱼类的物品,不一定真的是钓上了鱼。

CAUGHT_ENTITY

When a player has successfully caught an entity. This refers to any

already spawned entity in the world that has been hooked directly by

the rod.

玩家用鱼漂钩住了实体并收竿。所谓“实体”,必须比鱼漂更早生成(玩家抛竿的瞬间生成鱼漂实体),并被鱼漂直接钩住。

IN_GROUND

When a bobber is stuck in the ground.

鱼漂卡在了地面上。

FAILED_ATTEMPT

When a player fails to catch a bite while fishing usually due to

poor timing.

玩家没能在鱼咬钩时尽早收竿,让鱼游走了。通常是由于玩家的时间判断能力差。

REEL_IN

When a player reels in their hook without receiving any bites.

在没有鱼咬钩的情况下,玩家收回了鱼钩。

BITE

Called when there is a bite on the hook and it is ready to be reeled

in.

有鱼咬钩,可以收竿。

Last updated