PlayerBedLeaveEvent
PlayerBedLeaveEvent
继承关系
类描述
This event is fired when the player is leaving a bed.
当玩家从床上离开时触发。
译注:本事件的
shouldSetSpawnLocation()
方法似乎在服务端底层没有调用,setSpawnLocation(boolean)
是否有意义尚存疑。与“玩家就寝重设重生点”有关的逻辑位于
net.minecraft.server.v1_16_R3.EntityPlayer#getBedResult(BlockPosition blockposition, EnumDirection enumdirection)
方法中,该方法会调用重设玩家出生点的setRespawnPosition(ResourceKey<World> resourcekey, @Nullable BlockPosition blockposition, float f, boolean flag, boolean flag1)
方法。然而,getBedResult(BlockPosition blockposition, EnumDirection enumdirection)
方法似乎是在玩家尝试就寝时调用的,并非在玩家从床上离开时调用。从getBedResult(BlockPosition blockposition, EnumDirection enumdirection)
方法的内容来看,只要玩家所在世界允许睡觉(不是下界、末地等)、床没有距离玩家过远、床没有被阻挡,玩家右键床的瞬间出生点就会被重设。在这之后才会判断时间是否为白天、床附近是否有怪物游荡。所以在游戏中,即使是白天,右键床也可以重设出生点,只不过不能就寝。
方法列表
getBed
方法声明: public Block getBed()
方法签名: ()Lorg/bukkit/block/Block;
Returns the bed block involved in this event.
@return the bed block involved in this event
该方法用于获取涉事床方块。
@return 涉事床方块。
shouldSetSpawnLocation
方法声明: public boolean shouldSetSpawnLocation()
方法签名: ()Z
Get if this event should set the new spawn location for the
{@link Player}.
This does not remove any existing spawn location, only prevent it from
being changed (if true).
To change a {@link Player}'s spawn location, use
{@link Player#setBedSpawnLocation(Location)}.
@return true if the spawn location will be changed
该方法用于获取本事件是否要重设玩家出生点。
如果本方法返回
true
,并不会抹除现有的出生点,仅仅是防止出生点被重设。如欲重设一个玩家的出生点,可以使用
Player#setBedSpawnLocation(Location)
方法。@return 如果出生点将会被重设,则本方法返回
true
。
译注:见上。
另外,假如本方法返回
true
,字面意思似乎是“应当重设出生点”,但文档却言该情况下会防止出生点被重设,不知所云。
setSpawnLocation
方法声明: public void setSpawnLocation(boolean setBedSpawn)
方法签名: (Z)V
Set if this event should set the new spawn location for the
{@link Player}.
This will not remove any existing spawn location, only prevent it from
being changed (if true).
To change a {@link Player}'s spawn location, use
{@link Player#setBedSpawnLocation(Location)}.
@param setBedSpawn true to change the new spawn location
该方法用于设置本事件是否要重设玩家出生点。
如果本方法参数传入
true
,并不会抹除现有的出生点,仅仅是防止出生点被重设。如欲重设一个玩家的出生点,可以使用
Player#setBedSpawnLocation(Location)
方法。@param setBedSpawn 如欲重设出生点,则传入
true
。
译注:见上。
另外,假如传入
true
作为参数,字面意思似乎是“应当重设出生点”,但文档却言该情况下会防止出生点被重设,不知所云。
isCancelled
方法声明: public boolean isCancelled()
方法签名: ()Z
setCancelled
方法声明: public void setCancelled(boolean cancelled)
方法签名: (Z)V
getHandlers
方法声明: public HandlerList getHandlers()
方法签名: ()Lorg/bukkit/event/HandlerList;
getHandlerList
方法声明: public static HandlerList getHandlerList()
方法签名: ()Lorg/bukkit/event/HandlerList;
Last updated