Skip to content

配置说明

修改 config.ymlmessage.ymlreward/*.yml 后,可以使用 /ybb reload 重载。

配置文件

文件 / 目录用途
config.yml基础设置
message.yml消息文本
reward/方块破坏奖励节点

配置示例

下面是一个精简后的方块破坏奖励示例。复制时注意文件路径。

yaml
# 是否开启调试模式
debug: false

# 是否启用 bStats
metrics: true

# 是否在同一次方块破坏事件中,命中第一个成功节点后就停止后续节点
stop-after-first-success: false
yaml
default:
  match-item:
    - "material:{DIAMOND_PICKAXE}"
    - "permission:{blockbreak.reward}"
    - "papi:{%player_level% >= 10}"

  # true 为全部条件都满足,false 为满足任意一个条件
  match-item-model: true

  succeed-message: "&a方块奖励条件通过"
  fail-message: "&c当前工具或条件不满足,无法触发奖励"

  # 是否取消原版方块经验
  limit-drop-exp: false

  # 是否取消原版方块物品
  limit-drop-item: true

  # 精准采集时是否继续处理该奖励节点
  limit-drop-set: false

  worlds:
    - "world"

  blocks:
    - "DIAMOND_ORE"
    - "DEEPSLATE_DIAMOND_ORE"

  reward:
    diamond:
      chance: 50
      commands:
        - "[console] give %player% diamond 1"
        - "[message] &a你获得了 1 个钻石"
    money:
      chance: "%player_level% + 10"
      commands:
        - "[console] eco give %player% {chance}"
        - "[actionbar] &a本次方块破坏奖励已发放"
yaml
MESSAGE:
  RELOAD: "配置文件重载完成"
COMMAND:
  RELOAD: "重载插件的配置文件"
ADMIN:
  NO_PERMISSION_CMD: "&c你没有权限执行此指令"
  NO_CMD: "&c未找到此子指令"
  NO_FORMAT: "&c格式错误"
  NO_ONLINE: "&c玩家不在线或玩家不存在"
  PLUGIN_RELOAD: "§c插件已重载"

奖励节点

reward/*.yml 里的顶层节点就是奖励节点名。

玩家破坏方块后,插件会先按 worldsblocks 找到可用节点,再判断 match-item 条件。条件通过后,从该节点的 reward 下按权重抽取一个奖励组执行。

权重

chance 是权重,不是百分比。

例如 common50rare10 时,总权重是 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:{DIAMOND_PICKAXE}匹配物品类型
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-modeltrue 时,需要全部条件都通过;为 false 时,只要有一个条件通过即可。

方块与世界

worlds 用于限制触发世界。填写 * 或不配置时,表示所有世界都可以触发。

blocks 用于限制触发方块。新版本可以写 DIAMOND_ORE 这类材质名,旧版本也可以按插件兼容格式填写数字 ID。

命令类型

标识说明
[console]以控制台身份执行
[op]临时 OP 执行
[message]给玩家发送消息
[chat]让玩家发送聊天
[bc]全服广播
[sound]播放音效,格式为 [sound] 音效名:音量:音调
[actionbar]发送 ActionBar
[title]发送标题,格式为 [title] 主标题:副标题:淡入:停留:淡出
[delay]延迟后续命令,单位 tick
无标识以玩家身份执行命令

可用变量

变量说明
%player%目标玩家名
{chance}当前抽中奖励节点计算后的权重值
{node}当前节点 ID

命令内容也支持 PlaceholderAPI 变量,例如 %player_name%%player_level%