Skip to content

Integrations

Noogear edited this page Mar 19, 2026 · 2 revisions

集成说明

WarriorView 支持以下可选插件集成。各集成均可在 config.yml 的 integrations 节点中独立开关。


LuckPerms

需要安装: LuckPerms 5.x

启用方式

# config.yml
integrations:
  luckperms:
    enabled: true

功能:权限变体(variants)

启用后,可在 indicator/*.yml 中为任意 tag 添加 variants 列表,根据攻击者拥有的权限节点显示不同的指示器样式。

触发条件:

  • 对应指示器的 only-player: true(默认值即为 true)
  • 配置了 variants 列表且至少一个变体的 permission 不为空

integrations.luckperms.enabled 不影响变体是否生效,只影响权限检查的实现方式(见下方说明)。

匹配规则:

  1. 按 variants 列表从上到下顺序匹配
  2. 第一个满足权限的变体生效,其余忽略
  3. 均不满足时回退到该 tag 的基础配置

变体字段继承: 变体中未填写的字段自动继承父层 tag 的配置,只需覆盖需要变更的字段。

示例

# indicator/damage-indicator.yml
ENTITY_ATTACK:
  text-format: "<white>{damage}"
  position: AIM
  animation: arc_toss

  variants:
    # SVIP 玩家 —— 彩虹渐变(优先级高,必须放在前面)
    - permission: "warriorview.indicator.svip"
      text-format: "<gradient:gold:light_purple>{damage}</gradient>"
      animation: spring_bounce

    # VIP 玩家 —— 金色加粗
    - permission: "warriorview.indicator.vip"
      text-format: "<gold><bold>⚔ {damage}</bold>"
      animation: spring_bounce

若 LuckPerms 未安装或 enabled: false,variants 功能仍然生效,权限检查回退到 Bukkit 标准 API(Player::hasPermission),并以轮询方式定期刷新权限缓存。安装并启用 LuckPerms 可获得更高性能的内存检查器,以及由权限变更事件驱动的精确缓存失效。


PlaceholderAPI

需要安装: PlaceholderAPI 2.x

启用方式

# config.yml
integrations:
  placeholderapi:
    enabled: true

功能:加载期占位符解析

启用后,插件在加载/重载时对以下配置字段中的 PAPI 占位符(格式:%identifier_params%)进行一次性解析,将其替换为占位符的实际值后写入内存。运行期无任何 PAPI 相关开销。

支持 PAPI 占位符的字段:

配置文件 字段
indicator/*.yml text-format
char-replace.yml 所有替换目标值(YAML 值部分)
number-format.yml 所有后缀字符串(YAML 值部分)

仅支持全局占位符(%server_name%、%online_players% 等与服务器整体相关的占位符),不支持玩家相关占位符(如 %player_name%),因为加载期没有具体玩家上下文。

加载时序

  • 插件在 onEnable 时尝试读取 PAPI 占位符
  • 若 PAPI 插件尚未完成注册(如扩展包在服务器启动后才加载),插件将在 ServerLoad 事件触发后自动重试一次
  • 若重试后仍有未解析的占位符,将在控制台输出警告

示例

# indicator/damage-indicator.yml
default:
  # %server_name% 将在服务器启动时被解析为服务器名称
  text-format: "<gray>[%server_name%]</gray> <white>{damage}"

# char-replace.yml
custom-digits:
  "0": "%some_global_placeholder%"

# number-format.yml
server-compact:
  1000: "%server_name%K"

若 PlaceholderAPI 未安装或 enabled: false,所有占位符字符串将原样保留,不做任何处理。

Clone this wiki locally