事件制作器

事件制作器

包的不可见触发器 — 数据包/KubeJS命令、共享ID、仅创造模式可见性。

Event Maker 将不可见的触发器转变为由数据包驱动的事件。放置可穿过的体积,或将 ID 绘制到普通方块上。当玩家激活一个门时,你的命令将以该玩家的身份运行——内置多人游戏安全的单次触发。

专为整合包、冒险地图和需要脚本化门控而无需命令方块混乱的事件服务器打造。


特性

  • 事件触发器 — 无碰撞,生存模式不可见,创造模式显示青色线框
  • 事件魔杖 — 将触发器 ID 注入到任意方块上而无需替换它
  • 共享 ID — 多个方块,一个逻辑门(门、走廊、地板)
  • ID 继承 — 新放置的事件触发器会复用你最后设置的 ID
  • 三种激活模式 — 穿过、侧面触碰或踩踏
  • 单次触发或持续触发 — 每个玩家仅触发一次,或在离开后重新进入时再次触发
  • 服务器就绪 — 单次触发按玩家独立计算;标记保留,其他人仍可激活
  • 数据包 / KubeJS — 在 event_trigger/ 下的 JSON 中定义命令
  • 管理员命令 — 重置、检查或标记单次触发进度

快速开始

  1. 创造模式 → Event Maker 标签 → 放置事件触发器方块(或在现有方块上使用事件魔杖)
  2. 设置一个 ID,例如 welcome 或 mypack:arena_enter
  3. 添加匹配的数据包数据(示例如下)
  4. 切换到生存模式并激活门——命令将以该玩家的身份运行

事件魔杖

  • Shift + 右键 — 设置魔杖的触发器 ID
  • 右键点击方块 — 分配该 ID(事件触发器,或注入到任意其他方块上)
  • 左键点击已注入的方块 — 清除 ID 和轮廓(方块保留)

激活

字段 值 默认值
activation walk_through,touch,stepped_on walk_through
persistent true / false false
commands 命令字符串列表 必填
  • walk_through — 玩家进入方块体积
  • touch — 玩家从侧面触碰方块(不包含上方)
  • stepped_on — 玩家站在方块顶部
  • persistent: false — 每个玩家仅触发一次;标记保留供其他人使用
  • persistent: true — 标记保留;在玩家完全离开后再次接触时重新触发

命令以触发玩家身份运行(权限等级 2)。聊天输出被抑制。@s 指向该玩家。


数据包 / KubeJS

将文件放入:

data/<命名空间>/event_trigger/

或使用 KubeJS:

kubejs/data/<命名空间>/event_trigger/

编辑后运行 /reload。

所有 ID 放在一个文件中(推荐)

文件名任意(例如 events.json):

{
  "welcome": {
    "activation": "walk_through",
    "persistent": false,
    "commands": [
      "title @s actionbar {\"text\":\"Welcome!\",\"color\":\"green\"}",
      "give @s minecraft:bread 1"
    ]
  },
  "pressure": {
    "activation": "stepped_on",
    "persistent": true,
    "commands": [
      "title @s actionbar {\"text\":\"Stepped\"}"
    ]
  },
  "bump": {
    "activation": "touch",
    "commands": [
      "playsound minecraft:entity.experience_orb.pickup player @s"
    ]
  }
}

键会成为该命名空间下的 ID(eventmaker:welcome,……)。完整的 命名空间:路径 键同样有效。

每个 ID 一个文件

data/eventmaker/event_trigger/welcome.json:

{
  "activation": "walk_through",
  "commands": [
    "title @s actionbar {\"text\":\"Welcome!\",\"color\":\"green\"}"
  ]
}

文件路径即为 ID。对于 mypack:arena_enter,使用 data/mypack/event_trigger/arena_enter.json。


服务器命令

权限等级 2。管理每个玩家的单次触发进度:

  • /eventmaker reset <players> [id] — 清除玩家的进度(所有 ID,或指定 ID)
  • /eventmaker resetall [id] — 清除所有人的进度
  • /eventmaker check <player> [id] — 列出已消耗的 ID,或检查单个 ID
  • /eventmaker mark <players> <id> — 将 ID 标记为已消耗

ID 接受 路径 或 命名空间:路径。重置也会清除接触状态,因此仍站在门内的玩家可以立即再次触发。


要求

  • Minecraft 1.21.1
  • NeoForge