配置说明
修改 config.yml、message.yml 和 packet/*.yml 后,可以使用 /yrc reload 重载。
配置文件
| 文件 / 目录 | 用途 |
|---|---|
config.yml | 基础设置 |
message.yml | 消息文本 |
packet/ | 随机命令组配置 |
配置示例
下面是一个精简后的随机命令组示例。复制时注意文件路径。
yaml
# 是否开启调试模式
debug: false
# 是否启用 bStats
metrics: trueyaml
# 命令组 ID,执行时使用 /yrc run <玩家> starter 1
starter:
# 条件列表,可删除
match:
- "permission:{starter.reward}"
- "papi:{%player_level% >= 10}"
# 条件模式
# true = 所有条件都满足才通过
# false = 满足任意一个条件就通过
match-model: true
# 条件通过 / 不通过时发送给玩家的消息,可删除
succeed-message: "&a条件通过,开始抽取奖励"
fail-message: "&c条件不通过,无法执行该命令组"
# 随机节点
reward:
common:
chance: 50
commands:
- "[console] give %player% diamond 1"
- "[message] &a你获得了 1 个钻石"
rare:
# 支持 PlaceholderAPI 变量和四则运算
chance: "%player_level% + 10"
commands:
- "[console] give %player% emerald 5"
- "[title] &6恭喜:&e抽中稀有奖励:10:40:10"
- "[sound] ENTITY_PLAYER_LEVELUP:1.0:1.0"yaml
MESSAGE:
RELOAD: "配置文件重载完成"
RUN_USAGE: "使用 /yrc run <玩家名> <命令组> [次数]"
RUN_PLAYER_NOT_FOUND: "玩家 {0} 不在线"
RUN_GROUP_NOT_FOUND: "命令组 {0} 不存在"
RUN_INVALID_COUNT: "次数必须是大于0的整数"
RUN_NO_COMMANDS: "命令组 {0} 未配置有效命令"
RUN_SUCCESS: "已为玩家 {0} 执行命令组 {1} {2}次"
COMMAND:
RELOAD: "重载插件的配置文件"
RUN: "执行指定的命令组"
ERROR:
USAGE_COMMAND: "命令用法错误"
ADMIN:
NO_PERMISSION_CMD: "&c你没有权限执行此指令"
NO_CMD: "&c未找到此子指令"
NO_FORMAT: "&c格式错误"
NO_ONLINE: "&c玩家不在线或玩家不存在"
PLUGIN_RELOAD: "§c插件已重载"权重
chance 是权重,不是百分比。
例如 common 为 50,rare 为 10 时,总权重是 60。每次执行会在总权重里随机抽取,common 被抽中的概率约为 50 / 60。
chance 支持四则运算和 PlaceholderAPI 变量,例如:
| 写法 | 说明 |
|---|---|
50 | 固定权重 |
%player_level% + 10 | 按玩家等级动态增加权重 |
(%player_level% + 10) * 1.5 | 支持括号和乘除 |
提示
计算结果会向下取整。权重建议保持为大于 0 的数值。
条件
match 用于判断玩家是否满足执行条件。当前判断的物品是玩家主手物品。
| 条件 | 说明 |
|---|---|
name:{文本} | 完全匹配物品名 |
contain_name:{文本} | 物品名包含指定文本 |
lore:{文本} | 完全匹配一行 Lore |
contain_lore:{文本} | Lore 任意一行包含指定文本 |
material:{DIAMOND} | 匹配物品类型 |
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-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%。