奖励规则
奖励节点写在 reward/ 目录的 YAML 文件里。一个文件可以写多个节点,节点名不要重复。
节点字段
| 字段 | 说明 |
|---|---|
match-item | 手持物品匹配条件,可删除 |
match-item-model | true 为全部条件都满足,false 为满足任意一个条件 |
succeed-message | 条件通过时发送给玩家的消息,可删除 |
fail-message | 条件不通过时发送给玩家的消息,可删除 |
limit-fish-exp | 是否取消本次原版钓鱼经验 |
limit-fish-item | 是否移除本次原版钓鱼物品 |
worlds | 生效世界,写 * 表示所有世界 |
reward | 奖励组列表 |
权重
chance 是权重,不是百分比。
例如 common 为 50,rare 为 10 时,总权重是 60。每次执行会在总权重里随机抽取,common 被抽中的概率约为 50 / 60。
chance 支持四则运算和 PlaceholderAPI 变量,例如:
| 写法 | 说明 |
|---|---|
50 | 固定权重 |
%player_level% + 10 | 按玩家等级动态增加权重 |
(%player_level% + 10) * 1.5 | 支持括号和乘除 |
提示
计算结果会向下取整。权重建议保持为大于 0 的数值。
条件
match-item 用于判断玩家钓鱼时的主手物品和玩家状态。
| 条件 | 说明 |
|---|---|
name:{文本} | 完全匹配物品名 |
contain_name:{文本} | 物品名包含指定文本 |
lore:{文本} | 完全匹配一行 Lore |
contain_lore:{文本} | Lore 任意一行包含指定文本 |
material:{FISHING_ROD} | 匹配物品类型 |
custom_model_data:{1001} | 匹配 CustomModelData,仅 1.14+ 有效 |
item_model:{minecraft:test} | 匹配 ItemModel,仅 1.21.2+ 有效 |
permission:{权限} | 玩家拥有指定权限 |
no_permission:{权限} | 玩家没有指定权限 |
papi:{%player_level% > 10} | PAPI 数值或字符串判断 |
nbt:{文本} | 主手物品 NBT 包含指定文本 |
match-item-model 为 true 时,需要全部条件都通过;为 false 时,只要有一个条件通过即可。
命令类型
| 标识 | 说明 |
|---|---|
[console] | 以控制台身份执行 |
[op] | 临时 OP 执行 |
[message] | 给玩家发送消息 |
[chat] | 让玩家发送聊天 |
[bc] | 全服广播 |
[sound] | 播放音效,格式为 [sound] 音效名:音量:音调 |
[actionbar] | 发送 ActionBar |
[title] | 发送标题,格式为 [title] 主标题:副标题:淡入:停留:淡出 |
[delay] | 延迟后续命令,单位 tick |
| 无标识 | 以玩家身份执行命令 |
可用变量
| 变量 | 说明 |
|---|---|
%player% | 目标玩家名 |
{chance} | 当前抽中奖励节点计算后的权重值 |
{node} | 当前节点 ID |
命令内容也支持 PlaceholderAPI 变量,例如 %player_name%、%player_level%。