交互配置 interacts.yml
interacts.yml 定义了地牢中的交互点。玩家与特定方块/实体/区域交互时会触发脚本。
顶层段使用 交互(或英文 interacts),其下每个键是一个交互点的名称。
interacts: 机关按钮: type: "RIGHT_CLICK_BLOCK" once: false # 可重复触发 parameters: location: "5,64,10" triggered_message: "" # 重复触发时的提示(留空则不显示) script: |- action.message('@trigger', '&e你按下了机关按钮') action.remove_obstacle('出生点屏障')
能量核心: type: "PLACE_BLOCK" once: true # 只能触发一次 parameters: location: "0,64,-10" required_block: "DIAMOND_BLOCK" # 需要放置的方块 fail_message: "&c需要放置钻石块才能激活能量核心!" triggered_message: "&c能量核心已经被激活过了" script: |- action.message('@trigger', '&a&l你激活了能量核心!') action.remove_obstacle('Boss房大门')
陷阱区域: type: "ENTER_REGION" once: false parameters: min: "-15,63,-15" max: "-10,68,-10" triggered_message: "" script: |- action.message('@trigger', '&c&l你触发了陷阱!') action.create_obstacle('岩浆陷阱')
神秘商人: type: "RIGHT_CLICK_ENTITY" once: false parameters: location: "-8,64,0" entity_type: "VILLAGER" triggered_message: "" script: |- action.message('@trigger', '&e[商人] &7你好,冒险者!') action.give_item('@trigger', 'COOKED_BEEF', 8)type 字段的合法取值如下(建议使用英文常量;常用类型也接受对应中文别名)。
| 类型常量 | 中文别名 | 说明 |
|---|---|---|
RIGHT_CLICK_BLOCK | 右键方块 / 右键 | 右键点击指定方块 |
LEFT_CLICK_BLOCK | 左键方块 / 左键 | 左键点击指定方块 |
BREAK_BLOCK | 破坏方块 / 破坏 | 破坏指定方块 |
PLACE_BLOCK | (无) | 在指定位置放置方块 |
STEP_ON | 踩踏 | 踩踏指定位置(压力板等) |
ENTER_REGION | 进入区域 / 进入 | 进入指定区域范围 |
RIGHT_CLICK_ENTITY | (无) | 右键点击指定位置的实体 |
除 ENTER_REGION 使用区域范围外,其余类型均通过 location(或 位置)按方块坐标匹配交互点位置。其它参数为可选的触发条件,所有条件键也支持对应中文写法。
| 参数键 | 适用类型 | 说明 |
|---|---|---|
location / 位置 | 除 ENTER_REGION 外 | 交互方块/实体所在坐标 x,y,z |
min / 最小点 | ENTER_REGION | 区域最小坐标 x,y,z |
max / 最大点 | ENTER_REGION | 区域最大坐标 x,y,z |
required_block / 需要方块 | PLACE_BLOCK 等 | 必须放置/匹配的方块材质 |
required_item / 需要物品 | 任意 | 必须手持的物品材质 |
required_item_name / 需要物品名称 | 任意 | 手持物品需包含的显示名称 |
fail_message / 失败消息 | 任意 | 条件不满足时的提示消息 |
| 字段(中文 / 英文) | 类型 | 默认值 | 说明 |
|---|---|---|---|
类型 / type | String | 右键方块 | 交互触发方式 |
仅一次 / once | Boolean | true | 每个玩家是否只能触发一次 |
已触发消息 / triggered_message | String | 无 | 重复触发时的提示消息,留空或不填则不显示 |
参数 / parameters | Map | 空 | 交互相关参数,支持嵌套子段 |
脚本 / script | List / 多行字符串 | 空 | 触发时执行的脚本 |