跳到主要内容

物品触发器

插件提供了丰富的触发器,允许在特定事件发生时执行自定义动作块。

每个触发器都有其特定的触发条件和可用变量。

同时部分触发器还支持可配置额外条件。

信息

子触发器: 子触发器触发时父触发器也会触发,同时子触发器继承父触发器的所有内置变量。

onPost - 数据处理完成

物品生成过程中触发,用于在物品创建时执行初始化逻辑。

别名: post (驿站)

触发时机: 物品生成器创建物品时

内置变量:

变量名类型描述
itemRatzielItemRatzielItem 物品
playerPlayer目标玩家(如果有)

onInteract - 交互

玩家使用物品交互时触发,包括左键和右键交互等等。

别名: interactInteract

触发时机: 玩家使用物品进行任何交互时

内置变量:

变量名类型描述
eventPlayerWorldContactEvent交互事件对象
playerPlayer交互的玩家
itemRatzielItem使用的物品

onLeft - 左键交互

所有左键交互时触发。

父触发器:onInteract

别名: left

触发时机: 玩家左键点击时

onRight - 右键交互

右键交互时触发。

父触发器:onInteract

别名: right

触发时机: 玩家右键点击时

onLeftClickAir / onRightClickAir

父触发器:onLeft / onRight

别名: onLeftAirleft-air / onRightAirright-air

触发时机: 左键/右键点击空气时

onLeftClickBlock / onRightClickBlock

父触发器:onLeft / onRight

别名: onLeftBlockleft-block / onRightBlockright-block

触发时机: 左键/右键点击方块时

onLeftClickEntity / onRightClickEntity

父触发器:onLeft / onRight

别名: onLeftEntityleft-entity / onRightEntityright-entity

触发时机: 左键/右键点击方块时


onAttack - 攻击

使用物品攻击实体时触发。

父触发器:onLeftClickEntity

别名: attackatkonAtk

触发时机: 玩家使用物品攻击其他实体时

内置变量:

变量名类型描述
eventEntityEvent攻击事件
playerPlayer攻击者
itemRatzielItem使用的武器
targetEntity被攻击的实体

onKill - 击杀

击杀实体时触发。

别名: kill

触发时机: 使用物品击杀实体时

内置变量:

变量名类型描述
eventEntityDeathEvent击杀事件
playerPlayer击杀者
killerPlayer击杀者(别名)
itemRatzielItem使用的武器
entityEntity被击杀的实体

onDrop - 丢弃

丢弃物品时触发。

别名: drop

触发时机: 玩家丢弃物品时

内置变量:

变量名类型描述
eventPlayerDropItemEvent丢弃事件
playerPlayer丢弃者
itemRatzielItem被丢弃的物品
droppedItem掉落物实体

onPick - 拾取

拾取物品时触发。

别名: onPickedUppick

触发时机: 玩家拾取物品时

内置变量:

变量名类型描述
eventEntityPickupItemEvent拾取事件
playerPlayer拾取者
itemRatzielItem被拾取的物品
pickedItem拾取物实体

onTick - 定时器

定时触发器,可以设置触发周期。

别名: tick

触发时机: 按设定周期持续触发

内置变量:

变量名类型描述
playerPlayer玩家
itemRatzielItem指定栏位的物品

配置参数:

参数描述默认值
period触发周期(tick)1
slot检测的物品栏位MAIN_HAND

可用栏位:

  • MAIN_HAND - 主手
  • OFF_HAND - 副手
  • HELMET - 头盔
  • CHESTPLATE - 胸甲
  • LEGGINGS - 护腿
  • BOOTS - 靴子
  • 任意栏位 ID

示例:

onTick:
period: 20 # 每秒触发一次
slot: MAIN_HAND
run: |-
// 每秒执行的逻辑
player.sendActionBar("时间: " + System.currentTimeMillis())