RaidStopEvent

RaidStopEvent

继承关系

=>  org.bukkit.event.Event

    =>  org.bukkit.event.world.WorldEvent

        =>  org.bukkit.event.raid.RaidEvent

            =>  org.bukkit.event.raid.RaidStopEvent

类描述

Called when a {@link Raid} is stopped.

当袭击中止时触发。

译注:当一次袭击中止(比如游戏难度切换为和平)时,会触发 RaidStopEvent ,然后结束,不会触发 RaidFinishEvent 。触发情况详列于下方。

当一次袭击失败(袭击中心不在村庄范围内且已生成过至少一波袭击者)时,会触发 RaidFinishEvent ,此时 RaidFinishEvent#getWinners() 方法返回空列表,不会触发 RaidStopEvent

当一次袭击胜利时,会先触发 RaidFinishEvent ,然后进行庆祝倒计时,庆祝完毕后触发 RaidStopEvent

就袭击中止原因而言,一共有五种。与 RaidStopEvent.Reason 枚举项一一对应。

其一是游戏难度被设为和平。和平状态下不能生成怪物,遑论产生袭击。

其二是袭击持续时间过久。参见 Minecraft Wiki 中的相关页面 https://minecraft.fandom.com/wiki/Raid#Expiring 可知,当袭击持续了现实世界中的四十分钟以后,如果还没有胜利或失败,会中止。

其三是袭击结束。袭击胜利时,先触发 RaidFinishEvent ,然后进行庆祝倒计时,庆祝完毕后触发 RaidStopEvent

其四是无法找到合适位置生成袭击者。详见 RaidSpawnWaveEvent 译注。如果三次确定袭击者生成位置的尝试均失败,则袭击中止。

其五是袭击中心不在村庄范围内。此时如果生成过至少一波袭击者,则判定为袭击失败,直接触发 RaidFinishEvent ,不会触发 RaidStopEvent 。如果袭击中心不属于任何村庄范围,且没有生成过袭击者,则触发 RaidStopEvent ,袭击中止。

方法列表

getReason

方法声明: public Reason getReason()

方法签名: ()Lorg/bukkit/event/raid/RaidStopEvent/Reason;

Returns the stop reason.

@return Reason

该方法用于获取袭击中止的原因。

@return 一个 Reason 枚举字段,用于确定袭击中止的详细原因。

getHandlers

方法声明: public HandlerList getHandlers()

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

getHandlerList

方法声明: public static HandlerList getHandlerList()

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

枚举: Reason

译注:无文档。该类系用于确定袭击中止原因的枚举。

PEACE

Because the difficulty has been changed to peaceful.

游戏难度被设置为和平。

译注:见上。

TIMEOUT

The raid took a long time without a final result.

袭击旷日持久,并且没有最终结果。

译注:见上。

FINISHED

Finished the raid.

袭击结束。

译注:见上。

UNSPAWNABLE

Couldn't find a suitable place to spawn raiders.

无法找到合适位置生成袭击者。

译注:见上。

NOT_IN_VILLAGE

The place where the raid occurs no longer be a village.

袭击发生处已经不再位于村庄范围内。

译注:见上。

Last updated