InventoryInteractEvent

InventoryInteractEvent

继承关系

=>  org.bukkit.event.Event

    =>  org.bukkit.event.inventory.InventoryEvent

        =>  org.bukkit.event.inventory.InventoryInteractEvent

类描述

An abstract base class for events that describe an interaction between a

HumanEntity and the contents of an Inventory.

本类是一个抽象类,作为一些具体事件的基类使用。本类的子事件用于描述 HumanEntity 对象和物品栏之间的交互行为。

译注:该事件未实现 getHandlers()getHandlerList() 方法,无法直接监听。

方法列表

getWhoClicked

方法声明: public HumanEntity getWhoClicked()

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

Gets the player who performed the click.

@return The clicking player.

该方法用于获取点击物品栏的玩家。

@return 点击物品栏的玩家。

setResult

方法声明: public void setResult(@NotNull Result newResult)

方法签名: (Lorg/bukkit/event/Event/Result;)V

Sets the result of this event. This will change whether or not this

event is considered cancelled.

@param newResult the new {@link org.bukkit.event.Event.Result} for this event

@see #isCancelled()

该方法用于设置事件的结果。本方法会影响事件取消与否。

@param newResult 事件的新结果。

@see 参见本事件 isCancelled() 方法。

getResult

方法声明: public Result getResult()

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

Gets the {@link org.bukkit.event.Event.Result} of this event. The Result describes the

behavior that will be applied to the inventory in relation to this

event.

@return the Result of this event.

该方法用于获取事件的结果。通过本方法的返回值,可以预估涉事物品栏将会发生的变化。

@return 事件的结果。

译注:参见本事件 isCancelled() 方法。

isCancelled

方法声明: public boolean isCancelled()

方法签名: ()Z

Gets whether or not this event is cancelled. This is based off of the

Result value returned by {@link #getResult()}. Result.ALLOW and

Result.DEFAULT will result in a returned value of false, but

Result.DENY will result in a returned value of true.

{@inheritDoc}

@return whether the event is cancelled

该方法用于获取事件取消与否。本方法的返回值是基于本事件的 getResult() 方法而计算的。如果 getResult() 方法返回 Result.ALLOWResult.DEFAULT 则本方法返回 false ,而若 getResult() 方法返回 Result.DENY 则本方法返回 true

@return 事件取消与否。

译注:isCancelled()setCancelled(boolean) 方法是较为传统的,使用布尔值表示事件取消与否。而 getResult()setResult(Event.Result) 方法,所使用的是 Event.Result ,不是布尔值。Event.Result 所承载的含义比布尔值更精确。其枚举字段中,ALLOW 代表强行允许,DENY 代表强行禁止,而 DEFAULT 代表的是“按照原版游戏规则处理”。所谓“原版游戏规则”,即没有任何监听器插手的情况下,事件的“默认”结果。

setCancelled(boolean) 方法仍然可以使用,它会对参数作处理,将传入的 true 转变为 Result.DENY ,传入的 false 转变为 Result.ALLOW 。虽然如此,setResult(Event.Result) 方法可以使事件顺其自然地发生,这是布尔值无法替代的。有时,部分插件作者希望覆盖其之前的所有监听器对事件的操作结果,但又不是强行允许事件发生,这就可以用到 Result.DEFAULT

setCancelled

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

方法签名: (Z)V

Proxy method to {@link #setResult(org.bukkit.event.Event.Result)} for the Cancellable

interface. {@link #setResult(org.bukkit.event.Event.Result)} is preferred, as it allows

you to specify the Result beyond Result.DENY and Result.ALLOW.

{@inheritDoc}

@param toCancel result becomes DENY if true, ALLOW if false

本方法是 Cancellable 接口 setResult(org.bukkit.event.Event.Result) 方法的代理。推荐使用 setResult(org.bukkit.event.Event.Result) 替代本方法,因为前者可以用于指定 Result.DENYResult.ALLOW 以外的结果。

@param toCancel 如果传入 true 则事件结果变为 Result.DENY ,传入 false 则事件结果变为 Result.ALLOW

译注:如果使用 setResult(org.bukkit.event.Event.Result) 方法,可以指定 Result.DEFAULT 为事件结果,而本方法不能。

参见本事件 isCancelled() 方法。

Last updated