Skip to content

配置说明

LyDropReload 使用 config.yml 管理基础设置,使用 drop/ 目录下的 YAML 文件管理掉落组。配置重载时会重新读取这些文件,并重新注册掉落组、标记公告、全服标记限制和个人标记限制。

配置文件

文件 / 目录用途
config.yml经验指令、消息、数据保存、MySQL、每日金币上限、掉宝率、自动入包、怪物与掉落组分配等基础设置。
drop/*.yml掉落组配置,包括掉落对象、条件、分组、经验、货币、物品、指令、公告和标记限制。
taglimit.yml插件运行时保存全服标记限制的当前剩余次数。
playerdata/<玩家 UUID>.yml未使用 MySQL 时保存玩家每日金币数据和个人标记限制数据。

drop/示例掉落配置.yml 会在重载时生成,文件仅供参考,插件不会读取该示例文件作为实际掉落组配置。

重载配置

管理员或 OP 可以使用 /ldr reload 重载主配置和掉落组配置。重载时会重新读取 config.ymldrop/ 目录下的其他 .yml 文件。

标记限制还可以使用以下指令单独重置:

指令作用
/ldr tagreload重载掉落组中的全服标记限制,并将全服标记剩余次数重置为上限。
/ldr playertagreload重载掉落组中的个人标记限制,并将在线玩家的个人标记剩余次数重置为上限。
/ldr ecoreload清空玩家今日已获得的金币记录。

config.yml

经验指令

配置项类型默认值说明
exp-command字符串ll addexp-nomsg %player_name% {exp}经验掉落使用的控制台指令模板。{exp} 会替换为本次计算出的经验值,PlaceholderAPI 变量也会在执行前解析。

不使用经验插件时,可以将 exp-command 留空或删除。只有配置了有效的 exp-command 且本次经验大于 0 时,插件才会执行经验指令。

消息设置

消息颜色支持使用 & 颜色代码。物品消息还会替换 {item}{count} 等占位内容。

配置项说明
message.item获得物品时发送的消息。支持 {item}{count}
message.exp获得经验时发送的消息。支持 {exp}
message.eco获得金币时发送的消息。支持 {value}{remain}。当金币不受每日上限限制时,{remain} 显示为
message.eco-limit-reached本次金币掉落触发每日上限时发送的消息。
message.point获得点券时发送的消息。支持 {value}
drop-add-message掉宝率加成额外触发掉落时发送的消息列表。支持 {count},表示当前是第几次额外触发。
drop-to-inventory-message玩家切换为背包优先时发送的消息。
drop-to-warehouse-message玩家切换为仓库优先时发送的消息。

示例:

yaml
message:
  item: '&7你获得了 {item}x{count}.'
  exp: '&7你获得了 &a{exp}点经验.'
  eco: '&7你获得了 &e金币x{value}&7,今日剩余可获得: &e{remain}&7.'
  eco-limit-reached: '&c你今日可获得的掉落金币已达上限。'
  point: '&7你获得了 &b点券x{value}.'

drop-add-message-enable: true
drop-add-message:
  - '&7第{count}次触发爆率加成! 以下为本次爆率加成触发掉落:'

玩家使用 /ldr hide 可以切换掉落消息的显示状态。隐藏状态只影响该玩家的掉落消息,不会删除实际掉落。

数据保存

配置项类型默认值说明
auto-save-interval整数60自动保存间隔,单位为秒。用于保存玩家数据和全服标记限制数据。小于等于 0 时会按 60 秒处理。
tag-limit-debug-message布尔值false是否在控制台输出标记限制扣减调试信息,包括玩家、标记、个人剩余次数和全服剩余次数。
tag-refresh-messgae布尔值true是否在控制台提示标记公告注册、标记限制注册和限制刷新消息。配置键名称中的 messgae 拼写必须保持不变。

MySQL 数据库

MySQL 前置要求

只要启用 MySQL 存储,就必须安装 LyMySQLCore,并确认它已成功连接数据库。LyMySQLCore 未加载或连接失败时,本插件的 MySQL 数据读取、保存、同步及相关玩家数据功能不会生效。

启用 MySQL 后,插件会使用数据库保存玩家数据,并初始化以插件名称命名的数据表。玩家数据包括每日金币记录和个人标记限制数据。

配置项类型默认值说明
mysql.enable布尔值false是否启用 MySQL 玩家数据存储。启用后需要重启服务器。
mysql.ip字符串127.0.0.1MySQL 地址。
mysql.port整数3306MySQL 端口。
mysql.databasename字符串mc2数据库名称。
mysql.username字符串mc2数据库用户名。
mysql.password字符串mc1234数据库密码。

未启用 MySQL 时,玩家数据会保存到插件目录下的 playerdata/。全服标记限制的当前次数会保存到插件目录下的 taglimit.yml

每日金币上限

eco-daily-limit 用于限制玩家每天通过掉落获得的 eco 金币数量。玩家每日金币记录会在本地时间每天 0 点刷新,也可以使用 /ldr ecoreload 手动清空当前记录。

配置项类型说明
eco-daily-limit.default整数没有匹配任何权限时使用的每日上限。-1 表示不限制。
eco-daily-limit.permissions列表按权限设置每日金币上限。每项包含 permissionvalue
eco-daily-limit.permissions[].permission字符串用于匹配玩家的权限。
eco-daily-limit.permissions[].value整数匹配权限后的每日金币上限。-1 表示不限制。

权限规则按配置顺序读取。玩家可以匹配多条规则;普通正数上限取匹配规则中的较大值,匹配到 -1 时直接视为不限制。

示例:

yaml
eco-daily-limit:
  default: -1
  permissions:
    - permission: 'ldr.eco.limit.10000'
      value: 10000
    - permission: 'ldr.eco.limit.5000'
      value: 5000

观察者模式

配置项类型默认值说明
viewer-mode-can-get-drop布尔值true是否允许旁观者模式玩家参与掉落。设置为 false 时,worldservernearbynearby_randomparticipant 等掉落对象会排除旁观者模式玩家。

掉宝率加成

掉宝率属性按以下方式计算:每 100 点增加一次完整掉落判断,不足 100 的部分按百分比概率再增加一次。经验不会受到掉宝率加成影响。

配置项类型默认值说明
drop-add-attribute-placeholder字符串空字符串全局掉宝率变量。配置后会覆盖默认的掉宝率变量名称,并通过 PlaceholderAPI 解析为数值。
drop-add-attribute-compatible-with-currency布尔值false是否让货币掉落也随掉宝率加成重复计算。
currency-add-attribute-placeholder节点为指定货币设置独立的加成变量。变量解析结果会按百分比增加该货币数值。
currency-add-attribute-placeholder.<货币 ID>字符串指定货币使用的 PlaceholderAPI 变量。
drop-add-message-enable布尔值true是否提示掉宝率加成触发消息。
drop-add-message字符串列表见示例掉宝率加成触发时发送的消息。
drop-add-attribute-mythicmob布尔值false是否让掉宝率加成影响 MythicMobs 的原生物品掉落。该功能只处理原生物品掉落,不处理经验、金币等效果。
drop-add-attribute-mythicmob-event布尔值falseMythicMobs 原生掉落受掉宝率加成额外处理时,是否再次对外调用 MythicMobs 掉落事件。

currency-add-attribute-placeholder 的键名就是货币 ID,例如 ecopoint 或其他已接入的货币 ID:

yaml
drop-add-attribute-placeholder: ''
drop-add-attribute-compatible-with-currency: false
currency-add-attribute-placeholder:
  eco: ''
  point: ''
  离渊商店重置版货币id: ''

自动入包与仓库顺序

插件会按照当前玩家的入包模式处理物品:仓库优先时,先按照 custom-drop-index 尝试仓库;仓库无法接收时,如果启用了自动入包,则尝试玩家背包;背包也无法接收的部分会掉落到怪物死亡位置。未启用自动入包时,物品直接掉落到地面。

配置项类型默认值说明
drop-to-inv布尔值true是否允许掉落物自动进入玩家背包。背包空间不足的部分会掉落到地面。
custom-drop-index字符串列表llwhlycksrpds仓库尝试顺序。只控制各仓库之间的尝试顺序,仓库是否可用由对应插件是否安装并启用决定。
drop-to-warehouse-command-enable布尔值true是否允许玩家使用 /ldr switch 在仓库优先和背包优先之间切换。
drop-to-inventory-message字符串见示例切换到背包优先时发送的消息。
drop-to-warehouse-message字符串见示例切换到仓库优先时发送的消息。
default-drop-to-warehouse布尔值true玩家登录时设置的默认入包状态。true 为仓库优先,false 为背包优先。

支持的仓库标识如下:

标识对应仓库生效条件
llwhLyLootsWareHouse对应插件已启用,且仓库中存在该物品 ID。
lyckLyWarehouse对应插件已启用,并且仓库接受该物品。
srpYeeCore 的空间仓库YeeCore 已启用。
dsStarStorage 默认仓库StarStorage 已启用,且玩家仓库缓存已加载。

示例:

yaml
drop-to-inv: true
custom-drop-index:
  - 'llwh'
  - 'lyck'
  - 'srp'
  - 'ds'
drop-to-warehouse-command-enable: true
drop-to-inventory-message: '&7已切换掉落优先进入: &b背包'
drop-to-warehouse-message: '&7已切换掉落优先进入: &6仓库'
default-drop-to-warehouse: true

指令和调试提示

配置项类型默认值说明
run-command-message布尔值true是否在控制台显示插件执行掉落指令的消息。
kill-entity-send-name布尔值falseOP 击杀怪物时,是否向 OP 玩家提示插件识别到的怪物 ID 或名称,适合排查怪物分配配置。

怪物与掉落组分配

插件支持两种分配方向。两种配置会同时参与匹配,匹配到的掉落组会合并处理,并去除重复掉落组。

monster-drop-allocation

以掉落组 ID 为键,为掉落组配置可触发的怪物名称或 MythicMobs 内部 ID。怪物名称匹配到列表后,会触发该掉落组。

* 可以匹配任意怪物。

yaml
monster-drop-allocation:
  示例掉落组:
    - '测试怪物'
    - '无极789'
    - '千斤哥'
    - '西游哥'
    - '*'

drop-monster-allocation

以怪物名称或怪物 ID 为键,为该怪物配置要触发的掉落组 ID。

yaml
drop-monster-allocation:
  牛马赫兹:
    - '示例掉落组'

普通实体使用实体名称匹配;启用 MythicMobs 时使用 MythicMobs 的内部 ID 匹配。配置的掉落组必须已经从 drop/ 目录成功加载。

drop/*.yml

每个掉落组以顶层键表示。顶层键是掉落组 ID,不是怪物 ID;怪物与掉落组的关系需要通过 config.yml 中的分配节点配置。

yaml
'示例掉落组':
  drop-type: 'killer'
  group-select:
    当前等级:
      - 'papi:{%player_level% >= 0 && %player_level% <= 10}'

掉落对象:drop-type

drop-type 决定哪些玩家参与该掉落组的掉落判断。

说明
killer仅对击杀者执行掉落。
participant#<秒数>对在指定秒数内对实体造成过伤害的玩家执行掉落。
nearby#<范围>对实体附近指定范围内的玩家执行掉落。范围使用实体周围的 X、Y、Z 三轴范围。
nearby_random#<范围>从实体附近指定范围内的符合条件玩家中随机选择一名。
world对实体所在世界的玩家执行掉落。
server对服务器在线玩家执行掉落。

示例:

yaml
drop-type: 'participant#30'

viewer-mode-can-get-drop 会影响除强制指定玩家掉落外的玩家筛选。nearby 模式是否强制加入击杀者由 config.ymladd-killer-to-the-nearby 控制。

掉宝率开关:use-drop-add-attribute

配置项类型默认值说明
use-drop-add-attribute布尔值true是否允许当前掉落组受到掉宝率加成影响。设置为 false 时,该掉落组不会因掉宝率属性增加额外掉落判断。
drop-add-placeholder字符串空字符串当前掉落组专用的掉宝率变量。非空时优先使用该变量,否则使用 config.yml 中的全局变量。

条件:condition

condition 用于判断玩家是否可以参与当前掉落组。列表中的条件需要全部满足。

支持的条件格式:

格式说明
permission:{权限节点}玩家必须拥有指定权限。
nopermission:{权限节点}玩家不能拥有指定权限。
papi:{表达式}先解析 PlaceholderAPI,再计算表达式。
yaml
condition:
  - 'permission:{kill.测试怪物}'
  - 'papi:{%player_level% < 100}'

分组判断:group-select

group-select 用于根据条件选择后续的经验、货币和物品掉落分组。每个分组由一个名称和条件列表组成;条件全部满足时选择该分组。配置至少需要存在可用的 group-select 分组,否则无法继续匹配该掉落组。

支持的条件格式与 condition 相同:

yaml
group-select:
  当前等级:
    - 'papi:{%player_level% >= 0 && %player_level% <= 10}'
  高于等级:
    - 'papi:{%player_level% > 10}'

后续节点会使用相同的分组名称,例如 exp.当前等级currency.当前等级drop.当前等级

经验掉落:exp

exp 按分组配置经验数值。可以填写固定值,也可以填写最小值和最大值范围。

配置项说明
exp.<分组名>固定经验值或 最小值-最大值 随机范围。
yaml
exp:
  当前等级: '50-100'
  高于等级: '12-25'

经验最终通过 config.ymlexp-command 执行。未配置经验指令时,经验不会发放。

货币掉落:currency

currency 按分组配置货币 ID 和数值。数值可以是固定值,也可以是 最小值-最大值 随机范围。

货币 ID说明
eco通过 Vault 发放金币,并受到 eco-daily-limit 每日上限限制。
point通过 PlayerPoint 发放点券。
CX_<变量 ID>通过 CraftX 变量接口增加指定变量。变量当前值必须是合法数字。
其他货币 ID当 LyShopReload 已启用时,交给 LyShopReload 发放对应货币。
yaml
currency:
  当前等级:
    eco: '50-100'
    point: '5-10'
    CX_变量id: '0-5'
  高于等级:
    eco: '5-10'
    point: '1'

货币是否受到全局掉宝率加成由 config.ymldrop-add-attribute-compatible-with-currency 控制;具体货币的加成变量由 currency-add-attribute-placeholder.<货币 ID> 配置。

物品和指令掉落:drop

drop 按分组配置三类内容:

配置项说明
drop.<分组名>.command当前分组成功处理后执行的指令列表,不参与物品概率判断。
drop.<分组名>.default每一项独立进行概率判断的掉落列表。
drop.<分组名>.weight按权重从列表中选择一项的掉落列表。
yaml
drop:
  当前等级:
    command:
      - 'tell %player_name% 你触发了[当前等级]组掉落'
    default:
      - 'mm{材料1#1} 0.5 标记1'
      - 'ni{材料1#1} 0.5 标记1'
      - 'si{材料1#1} 0.5'
      - 'af{材料1#1} 0.5'
      - 'cmd{mm i give %player_name% 材料3 1} 0.5'
    weight:
      - 'mm{上般材料#1} 100 标记4'
      - 'ni{超等材料#1} 50 标记5'
      - 'cmd{mm i give %player_name% 极品材料 1} 20 标记6'

掉落条目格式

普通物品掉落的基本格式为:

text
前缀{物品ID#数量} 概率 [标记ID]
前缀对接物品库说明
mmMythicMobs获取 MythicMobs 物品。兼容项目检测到的 MythicMobs 4 和 MythicMobs 5 接口。
lisMythicMobs使用 MythicMobs 物品接口获取物品。
niNeigeItems获取 NeigeItems 物品。
siSX-Item获取 SX-Item 物品。插件检测 SX-ItemSXItem 是否启用。
nfNeonFlash获取 NeonFlash 物品。
afAzureFlow获取 AzureFlow 虚拟物品。
cmd控制台指令执行花括号中的控制台指令,不生成物品。

数量 支持固定数值或范围,例如 11-3default 中的概率支持四则运算表达式;weight 中的第二个参数为整数权重,不是概率。

cmd 条目示例:

text
cmd{mm i give %player_name% 材料3 1} 0.5

drop.<分组名>.command 中的指令可以直接写普通指令,也兼容 cmd{指令} 格式。配置中的指令会解析 PlaceholderAPI 变量;以 [op] 开头的指令会临时以 OP 身份执行。

掉落物品校验

重载掉落组时,插件会检查 defaultweight 中的 mmlisnisinfaf 条目。如果对应物品库已启用且物品 ID 不存在,插件会在控制台输出无效物品配置的位置。对应物品库未启用时,插件不会据此判断物品不存在。

全服公告:notice

notice 为标记 ID 配置公告内容。当带有该标记的掉落成功时,普通文本会发送给在线玩家,cmd{指令} 会执行指令。

yaml
notice:
  标记4:
    - '&7惊为天人! &e%player_name% &7击败了测试怪物时意外获得一块&b上等材料&7!!'
    - 'cmd{tell %player_name% 恭喜你获得了上等材料x1}'

公告文本支持 PlaceholderAPI。公告指令和掉落指令会替换以下实体与玩家位置变量:

变量说明
{t_world}被击杀实体所在世界。
{t_x}{t_y}{t_z}被击杀实体的坐标。
{p_world}掉落玩家所在世界。
{p_x}{p_y}{p_z}掉落玩家的坐标。

全服标记限制:tag-limit

tag-limit 按标记 ID 设置全服共享的掉落次数。标记被成功消耗后,全服剩余次数减少;达到刷新周期后恢复到 count

配置项类型说明
tag-limit.<标记 ID>.count整数每个刷新周期内全服最多成功掉落次数。
tag-limit.<标记 ID>.update-time整数刷新周期,单位为秒。
yaml
tag-limit:
  标记4:
    count: 3
    update-time: 3600
  标记5:
    count: 2
    update-time: 3600

全服标记限制的当前剩余次数会保存到 taglimit.yml。使用 /ldr tagreload 会重新载入配置并将全服标记次数重置为上限。

个人标记限制:player-tag-limit

player-tag-limit 为每名玩家单独计算标记剩余次数。配置结构与 tag-limit 相同,但不会影响其他玩家。

配置项类型说明
player-tag-limit.<标记 ID>.count整数每名玩家每个刷新周期内最多成功掉落次数。
player-tag-limit.<标记 ID>.update-time整数个人限制刷新周期,单位为秒。
yaml
player-tag-limit:
  标记4:
    count: 2
    update-time: 3600
  标记5:
    count: 1
    update-time: 3600

个人标记限制会随玩家数据保存。启用 MySQL 时保存到 MySQL;未启用 MySQL 时保存到玩家对应的 YAML 数据文件。使用 /ldr playertagreload 会重新载入配置,并将在线玩家的个人标记剩余次数重置为上限。

同一掉落条目同时配置标记时,插件会先检查全服限制和个人限制;只有两者都允许,掉落成功后才会扣减对应次数。掉宝率加成产生的额外掉落也会参与标记限制扣减。

配置相关变量

启用 PlaceholderAPI 后,插件注册 ldr 变量:

变量返回值
%ldr_drop_to%当前玩家的自动入包状态:warehouseinventory
%ldr_eco_daily_limit%玩家今日金币上限,-1 表示不限制。
%ldr_eco_daily_got%玩家今日已经获得的金币数量。
%ldr_eco_daily_remain%玩家今日剩余可获得的金币数量,-1 表示不限制。
%ldr_tag_<标记 ID>%全服标记剩余次数。
%ldr_tag_max_<标记 ID>%全服标记最大次数。
%ldr_player_tag_<标记 ID>%当前玩家的个人标记剩余次数。未配置或不存在时返回错误文本。
%ldr_player_tag_max_<标记 ID>%当前玩家的个人标记最大次数。未配置或不存在时返回错误文本。

例如:

text
%ldr_tag_标记4%
%ldr_player_tag_标记4%

常见配置问题

修改 MySQL 配置后数据没有生效

确认 mysql.enable: true,安装并启用 LyMySQLCore,并确认数据库连接成功。数据库连接失败时,MySQL 数据读取、保存和同步不会生效。

掉落组已经创建但没有掉落

检查以下内容:

  1. 掉落组文件位于插件的 drop/ 目录,并且文件扩展名为 .yml
  2. 顶层掉落组 ID 已在 config.ymlmonster-drop-allocationdrop-monster-allocation 中分配。
  3. condition 条件全部满足。
  4. group-select 至少匹配一个分组。
  5. 匹配到的分组同时存在于 drop 节点。
  6. 物品前缀、物品 ID、数量和概率格式正确。

nearby 掉落没有击杀者

确认 config.yml 中的 add-killer-to-the-nearby 已设置为 true。启用后,击杀者会被强制加入 nearby 掉落对象,即使击杀者位于指定范围之外。

掉落物没有进入仓库

检查 custom-drop-index 中的仓库标识是否正确,并确认对应仓库插件已安装并启用。仓库无法接收物品时,插件会继续尝试后续仓库;所有仓库都失败后,再根据 drop-to-inv 决定进入背包或掉落到地面。

个人标记限制没有保存

个人标记限制依赖玩家数据保存。启用 MySQL 时必须确认 LyMySQLCore 已成功连接数据库;未启用 MySQL 时检查插件目录下的 playerdata/ 是否可写。