插件变量
LyDropReload 通过 PlaceholderAPI 注册变量标识 ldr。变量可用于支持 PlaceholderAPI 的文本、菜单、记分板或其它插件。
使用玩家数据相关变量时,变量必须在玩家上下文中解析。控制台等没有玩家对象的环境会返回空字符串。
变量列表
| 变量 | 返回值 | 说明 |
|---|---|---|
%ldr_drop_to% | warehouse 或 inventory | 返回当前玩家的掉落优先目标。warehouse 表示仓库优先,inventory 表示背包优先。 |
%ldr_eco_daily_limit% | 数字或 -1 | 返回当前玩家每日可获得的金币上限。-1 表示不限制。 |
%ldr_eco_daily_got% | 数字 | 返回当前玩家当天已经获得的金币数量。 |
%ldr_eco_daily_remain% | 数字或 -1 | 返回当前玩家当天还可以获得的金币数量。-1 表示不限制。 |
%ldr_player_tag_<标记名>% | 数字或 §c错误 | 返回当前玩家指定个人标记的剩余次数。 |
%ldr_player_tag_max_<标记名>% | 当前版本通常返回 §c错误 | 配置文件中列出了该变量,但当前变量解析顺序会优先按 player_tag_ 处理,可能把 max_<标记名> 当成完整标记名。 |
%ldr_tag_<标记名>% | 数字或 §c错误 | 返回指定全服标记的当前剩余次数。 |
%ldr_tag_max_<标记名>% | 当前版本通常返回 §c错误 | 配置文件中列出了该变量,但当前变量解析顺序会优先按 tag_ 处理,可能把 max_<标记名> 当成完整标记名。 |
<标记名> 必须替换为掉落配置中实际使用的标记 ID。尖括号仅表示占位内容,不要原样填写。
掉落目标
text
%ldr_drop_to%返回值如下:
| 返回值 | 含义 |
|---|---|
warehouse | 当前玩家优先尝试进入已启用的仓库。 |
inventory | 当前玩家优先进入自己的背包。背包放不下的物品会掉落到地上。 |
该变量的结果受以下配置和玩家状态影响:
drop-to-warehouse-command-enable开启时,使用玩家当前的切换状态。drop-to-warehouse-command-enable关闭时,使用default-drop-to-warehouse的默认值。- 玩家加入服务器时,会根据
default-drop-to-warehouse设置初始状态。 - 玩家可以通过
ldr switch在仓库优先和背包优先之间切换。
该变量只表示掉落优先目标,不代表仓库一定成功接收物品。仓库不存在、未启用或无法接收物品时,插件会继续按掉落逻辑处理。
每日金币
每日上限
text
%ldr_eco_daily_limit%返回当前玩家每日可获得的金币上限:
eco-daily-limit.default用于没有匹配权限时的默认上限。eco-daily-limit.permissions根据玩家权限匹配额外上限。- 权限规则中
value: -1表示不限制。 - 多条有效权限规则同时匹配时,插件使用较大的上限;如果匹配到值为
-1的规则,则返回-1。
今日已获得金币
text
%ldr_eco_daily_got%返回当前玩家当天已经实际获得的金币数量。
当金币掉落受到每日上限限制时,只有实际发放的数量会计入该变量。超过当日剩余额度的部分不会计入。
今日剩余金币
text
%ldr_eco_daily_remain%返回当前玩家当天还可以获得的金币数量。
- 有每日上限时,返回
每日上限 - 今日已获得数量,最小为0。 - 每日上限为
-1时,返回-1。
每日金币进度按服务器本地日期计算。日期变化后,玩家当日金币数量会重置为 0,每日上限会根据当前权限重新计算。
全服标记限制
全服标记限制由掉落配置中的 tag-limit 节点定义。标记的剩余次数由服务器统一维护,配置示例如下:
yaml
# 掉落组配置中的示例
tag-limit:
标记4:
count: 3
update-time: 3600实际配置中应保持正确缩进:
yaml
tag-limit:
标记4:
count: 3
update-time: 3600全服标记剩余次数
text
%ldr_tag_标记4%当全服标记 标记4 已注册时,返回当前剩余可掉落次数。
全服标记在注册时会将当前次数设为 count。达到 update-time 秒后,当前次数恢复为最大次数。插件还会将全服标记的当前次数保存到 taglimit.yml,重启后读取已保存的剩余次数。
全服标记最大次数
配置文件注释中列出了以下变量:
text
%ldr_tag_max_标记4%但当前 PlaceholderAPI 解析代码会先判断 tag_ 前缀,再判断 tag_max_ 前缀。因此该变量可能会被解析为标记名 max_标记4,通常返回 §c错误,不能按预期返回最大次数。
玩家个人标记限制
玩家个人标记限制由掉落配置中的 player-tag-limit 节点定义。每名玩家分别计算剩余次数,配置示例如下:
yaml
player-tag-limit:
标记4:
count: 2
update-time: 3600个人标记剩余次数
text
%ldr_player_tag_标记4%返回当前玩家标记 标记4 的剩余次数。
个人标记会按玩家分别计算:
- 玩家第一次读取已配置标记时,剩余次数初始化为
count。 - 每次成功产出带有该标记的掉落时,个人剩余次数按实际产出数量扣减。
- 达到
update-time秒后,当前玩家该标记的剩余次数恢复为count。 - 未配置的个人标记不会创建限制,变量返回
§c错误。
个人标记最大次数
配置文件注释中列出了以下变量:
text
%ldr_player_tag_max_标记4%但当前 PlaceholderAPI 解析代码会先判断 player_tag_ 前缀,再判断 player_tag_max_ 前缀。因此该变量可能会被解析为标记名 max_标记4,通常返回 §c错误,不能按预期返回最大次数。
标记名格式
当前可正常按标记名查询的变量格式如下:
text
%ldr_tag_<标记名>%
%ldr_player_tag_<标记名>%例如掉落配置中存在标记 标记4:
text
%ldr_tag_标记4%
%ldr_player_tag_标记4%配置文件注释中还保留了最大次数变量格式:
text
%ldr_tag_max_<标记名>%
%ldr_player_tag_max_<标记名>%由于当前变量分支判断顺序,最大次数变量存在解析冲突,实际使用时可能返回 §c错误。
数据存储要求
每日金币数据和玩家个人标记限制属于玩家数据。数据存储方式由 MySQL 连接状态决定:
- 未启用 MySQL 或数据库连接未成功时,使用插件目录下的本地 YAML 玩家数据文件。
- 启用 MySQL 时,必须安装 LyMySQLCore,并确保数据库连接成功。
- 只有 LyMySQLCore 已安装且数据库连接成功后,相关玩家数据才会通过 MySQL 正常读取和保存。
- MySQL 未成功连接时,相关个人数据无法按 MySQL 方式正常读取和保存。
返回异常
- 没有玩家上下文时,所有变量返回空字符串。
- 未配置的个人标记变量返回
§c错误。 - 未找到对应全服标记限制时,全服标记变量返回
§c错误。 - 未知变量返回
§c错误。 - 当前版本的
tag_max_和player_tag_max_变量存在前缀解析顺序冲突,通常返回§c错误。