LogoArcartX Doc

玩家事件

服务端玩家状态变化事件

玩家事件

  • 由服务端玩家状态变化触发的事件,与客户端事件不同,这些事件在服务端逻辑中产生。

PlayerAreaEnterEvent

  • 玩家进入ArcartX区域时触发
  • 属性
    • player: Player — 玩家
    • area: Area — 进入的区域对象
  • 可取消:否
  • 调用示例
@EventHandler
public void onAreaEnter(PlayerAreaEnterEvent event) {
    String areaName = event.getArea().getName();
    // 玩家进入了区域
}

PlayerAreaLeaveEvent

  • 玩家离开ArcartX区域时触发
  • 属性
    • player: Player — 玩家
    • area: Area — 离开的区域对象
    • newArea: Area? — 新进入的区域(如果直接从一个区域进入另一个区域),可能为null
  • 可取消:否
  • 调用示例
@EventHandler
public void onAreaLeave(PlayerAreaLeaveEvent event) {
    Area newArea = event.getNewArea();
    if (newArea != null) {
        // 玩家从一个区域直接进入了另一个区域
    } else {
        // 玩家离开区域进入了无区域地带
    }
}

PlayerExtraSlotUpdateEvent

  • 玩家额外槽位物品更新时触发(通过 ArcartXPlayer.setSlotItemStack 设置时)
  • 属性
    • player: Player — 玩家
    • slotID: String — 槽位ID
    • itemStack: ItemStack — 更新后的物品
  • 可取消:否
  • 调用示例
@EventHandler
public void onSlotUpdate(PlayerExtraSlotUpdateEvent event) {
    String slotID = event.getSlotID();
    ItemStack item = event.getItemStack();
    // 槽位物品已更新
}

PlayerModelUpdateEvent

  • 玩家模型更新时触发(通过 ArcartXPlayer.setModel 设置时)
  • 属性
    • player: Player — 玩家
    • modelID: String — 新模型ID
  • 可取消:否
  • 调用示例
@EventHandler
public void onModelUpdate(PlayerModelUpdateEvent event) {
    String modelID = event.getModelID();
    // 玩家模型已更新
}

On this page