Skip to content

福利·龙核增强 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。项目文件未声明更宽泛的服务端版本支持范围。

功能

  • 注册 lhb PlaceholderAPI 变量。
  • 获取指定实体的当前血量、最大血量和血量百分比。
  • 将指定在线玩家的 PlaceholderAPI 变量转换为当前界面文本。
  • 获取指定 MythicMobs 怪物配置节点中的字符串或多行字符串。
  • 获取指定实体的 AttributePlus 属性最小值、最大值或默认值。
  • 按固定间隔刷新配置中的变量。
  • 仅处理在线玩家视野范围内的存活生物实体;实体与玩家距离超过 50 格时不会处理。
  • 支持通过命令重载配置。

命令

命令执行条件说明
/lhzqOP显示当前可用的基础帮助信息。
/lhzq reloadOP重载 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: 5

update-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-intervalupdate-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 执行。