福利·龙核增强 LyDragonBoost
LyDragonBoost 是一个为 DragonCore 界面补充 PlaceholderAPI 变量的插件。插件会为在线玩家附近的实体刷新配置中的变量,并通过 DragonCore 同步到玩家界面,用于显示实体血量、目标玩家变量、MythicMobs 怪物配置数据和 AttributePlus 属性值。
依赖
| 依赖 | 用途 | 说明 |
|---|---|---|
| PlaceholderAPI | 注册和解析 LyDragonBoost 变量 | 插件启动时会尝试注册变量;未安装时相关变量无法使用。 |
| DragonCore | 同步变量到龙核界面 | 用于接收插件刷新后的界面变量。 |
| AttributePlus | 读取实体属性 | 仅使用 lhb_ap_ 变量时需要。 |
| MythicMobs | 读取 MythicMobs 怪物配置 | 仅使用 lhb_mm_ 变量时需要。 |
项目使用 Paper API 1.16.5-R0.1-SNAPSHOT 进行编译,代码目标 Java 版本为 8。项目文件未声明更宽泛的服务端版本支持范围。
功能
- 注册
lhbPlaceholderAPI 变量。 - 获取指定实体的当前血量、最大血量和血量百分比。
- 将指定在线玩家的 PlaceholderAPI 变量转换为当前界面文本。
- 获取指定 MythicMobs 怪物配置节点中的字符串或多行字符串。
- 获取指定实体的 AttributePlus 属性最小值、最大值或默认值。
- 按固定间隔刷新配置中的变量。
- 仅处理在线玩家视野范围内的存活生物实体;实体与玩家距离超过 50 格时不会处理。
- 支持通过命令重载配置。
命令
| 命令 | 执行条件 | 说明 |
|---|---|---|
/lhzq | OP | 显示当前可用的基础帮助信息。 |
/lhzq reload | OP | 重载 config.yml,并重新创建变量刷新任务。 |
插件没有在 plugin.yml 中声明独立的权限节点,命令执行权限由 OP 条件控制。
配置
配置文件为 plugins/LyDragonBoost/config.yml。
rate-placeholder-format
控制 lhb_health_rate 血量百分比的小数位格式。默认值为 %.0f,表示不保留小数;%.1f 表示保留 1 位小数,%.2f 表示保留 2 位小数。
yaml
rate-placeholder-format: '%.0f'update-placeholder-interval
控制变量刷新间隔,单位为 tick。20 tick 约等于 1 秒。配置值越小,刷新频率越高,也会增加处理开销。
yaml
update-placeholder-interval: 5update-placeholder-list
配置需要被定时刷新的 PlaceholderAPI 变量。列表中的变量不需要填写首尾的 %。插件会将 {uuid}、{name} 和 {type} 替换为当前实体信息,再交给 PlaceholderAPI 解析。
yaml
update-placeholder-list:
- 'lhb_health_rate:{uuid}'
- 'lhb_health_round:{uuid}'
- 'lhb_health_max_round:{uuid}'
- 'lsp_lhb_health_round:{uuid}'
- 'lsp_lhb_health_max_round:{uuid}'| 占位符 | 替换内容 |
|---|---|
{uuid} | 当前实体的 UUID。 |
{name} | 当前实体名称。 |
{type} | 当前实体类型名称,例如玩家为 PLAYER。 |
如果列表为空,插件不会创建变量刷新任务。未使用的变量建议从列表中移除,以减少刷新开销。
PlaceholderAPI 变量
变量完整格式为 %lhb_变量内容%。配置刷新列表时,不需要填写首尾的 %。
血量变量
| 变量 | 参数 | 返回内容 |
|---|---|---|
%lhb_health_round:<uuid>% | 实体 UUID | 指定生物实体的当前血量,固定保留 0 位小数。实体不存在或不是生物实体时返回 0。 |
%lhb_health_max_round:<uuid>% | 实体 UUID | 指定生物实体的最大血量,固定保留 0 位小数。实体不存在或不是生物实体时返回 0。 |
%lhb_health_rate:<uuid>% | 实体 UUID | 指定生物实体的当前血量百分比,格式由 rate-placeholder-format 控制。实体不存在或不是生物实体时返回空文本。 |
百分比计算方式为:
text
当前血量 ÷ 最大血量 × 100目标玩家变量
text
%lhb_look_<玩家名称>:<PlaceholderAPI变量>%插件会查找指定名称的在线玩家,并以该玩家作为 PlaceholderAPI 解析对象,返回指定变量的结果。
例如,变量结构可以写成:
yaml
- 'lhb_look_{name}:player_level'其中 {name} 会先替换为实体名称。目标玩家必须在线;找不到目标玩家时返回空文本。
MythicMobs 怪物变量
text
%lhb_mm_<uuid>:<配置节点>%插件会根据实体 UUID 查找活动中的 MythicMobs 怪物,并读取该怪物类型配置中的指定节点。
- 配置节点为字符串时,返回单行文本。
- 配置节点为字符串列表时,使用换行符连接每一项。
- 返回文本中的
&会转换为 Minecraft 颜色代码§。 - 找不到活动怪物或配置节点时返回空文本。
配置刷新列表中的写法示例:
yaml
- 'lhb_mm_{uuid}:怪物称号'AttributePlus 属性变量
text
%lhb_ap_<uuid>:<属性名称>%
%lhb_ap_<uuid>:<属性名称>:min%
%lhb_ap_<uuid>:<属性名称>:max%插件会读取指定生物实体的 AttributePlus 属性数据。
| 写法 | 返回内容 |
|---|---|
%lhb_ap_<uuid>:<属性名称>% | 属性数值数组中的最小值位置。 |
%lhb_ap_<uuid>:<属性名称>:min% | 属性最小值。 |
%lhb_ap_<uuid>:<属性名称>:max% | 属性最大值。 |
实体不存在或不是生物实体时返回空文本。属性名称必须与 AttributePlus 中的名称一致。
LSP 缩写变量
项目配置示例中包含以下经过 LSP 变量缩写插件处理的变量:
%lsp_lhb_health_round:<uuid>%%lsp_lhb_health_max_round:<uuid>%
LyDragonBoost 本身只直接注册 lhb 标识符;lsp_ 变量是否可用取决于对应的变量缩写插件。
刷新机制
插件启动后会读取 update-placeholder-interval 和 update-placeholder-list,并按配置间隔异步执行刷新任务。
每次刷新会遍历在线玩家及其所在世界的生物实体,并执行以下筛选:
- 跳过已死亡实体。
- 跳过与当前玩家距离超过 50 格的实体。
- 使用当前实体 UUID、名称和类型替换变量中的动态参数。
- 通过 PlaceholderAPI 解析变量。
- 使用 DragonCore 的同步变量接口将结果发送给当前玩家。
执行 /lhzq reload 时,旧的刷新任务会被取消,配置重新读取后再创建新的任务。
常见问题
变量返回错误文本怎么办?
确认变量格式、实体 UUID 和参数数量正确,并检查 PlaceholderAPI 是否已安装并成功启动。LyDragonBoost 注册的变量标识符为 lhb。
为什么变量没有自动刷新?
检查 update-placeholder-list 是否为空,并确认变量已经加入列表。列表中的变量不应填写首尾 %。同时检查 update-placeholder-interval 是否为合理的 tick 数值。
为什么看不到 DragonCore 界面变量?
确认 DragonCore 已安装并成功启动。插件只会将刷新结果发送给在线玩家,并且只处理距离玩家 50 格以内的存活生物实体。
为什么目标玩家变量没有返回内容?
lhb_look_ 变量只能查找在线玩家。检查目标玩家名称是否完全匹配,并确认冒号后填写的是有效的 PlaceholderAPI 变量名称。
为什么 MythicMobs 变量没有返回内容?
确认目标实体是当前活动中的 MythicMobs 怪物,并检查配置节点名称是否准确。读取 MythicMobs 变量时需要安装 MythicMobs。
为什么 AttributePlus 变量没有返回内容?
确认实体存在且为生物实体,并检查属性名称是否与 AttributePlus 配置一致。读取 AttributePlus 属性时需要安装 AttributePlus。
重载后配置没有生效怎么办?
确认修改的是 plugins/LyDragonBoost/config.yml,然后执行 /lhzq reload。该命令仅限 OP 执行。