Skip to content

PAPI 占位符

DM 接上 PlaceholderAPI 以后,可以把副本状态、队伍信息、历史成绩、排行榜数据直接显示到计分板、菜单、全息、聊天格式和其他支持 PAPI 的插件里。

DM 的占位符前缀固定是:

text
%dm_*%

启用方式

需要同时满足下面两点:

  1. 服务器已安装 PlaceholderAPI
  2. config.yml 里开启 集成.PAPI.启用

还有一个很实际的前提:

  • DM 这套 PAPI 在没有玩家对象时,会直接返回空文本
  • 所以下面这批占位符,更适合放在菜单、计分板、玩家信息面板、玩家全息这类带玩家上下文的位置
  • 如果你把它塞进纯服务端轮播、没有玩家上下文的公告链路,看到空文本是正常现象

稳定可用的局内信息

这些键在当前版本源码里能看到明确写入流程,日常使用可以放心接。

占位符说明默认值
%dm_in_dungeon%玩家是否在副本中false
%dm_dungeon_id%当前副本 ID
%dm_dungeon_name%当前副本显示名
%dm_dungeon_stage%当前阶段 ID
%dm_dungeon_time%当前副本已进行秒数0
%dm_dungeon_time_format%当前副本时间,格式 mm:ss00:00
%dm_party_size%当前队伍人数0

%dm_dungeon_time_format% 不是单独存的一份数据,它是根据 %dm_dungeon_time% 现场格式化出来的。

队员显示

text
%dm_member_1%
%dm_member_2%
...
%dm_member_20%

没有对应队员时会返回空文本,适合做队伍面板、全息列表、旁观信息。

局内货币

格式:

text
%dm_currency_<货币名>%

示例:

text
%dm_currency_积分%
%dm_currency_金币%

这部分读取的是副本内玩家会话里的货币值,也就是脚本里 货币.给予货币.扣除货币.设置 改的那一套数据。

活力值

占位符说明默认值
%dm_vitality_current%当前活力值0
%dm_vitality_max%活力上限0

历史成绩

占位符说明无记录时
%dm_clears_<副本ID>%当前玩家该副本通关次数0
%dm_best_time_<副本ID>%当前玩家最佳时间,格式化后显示-
%dm_best_time_ms_<副本ID>%当前玩家最佳时间,毫秒值0

示例:

text
%dm_clears_shadow_crypt%
%dm_best_time_shadow_crypt%
%dm_best_time_ms_shadow_crypt%

每日进入限制

占位符说明默认值
%dm_daily_limit_<副本ID>%该副本配置的每日进入上限0
%dm_daily_count_<副本ID>%当前玩家今天已进入次数0
%dm_daily_remaining_<副本ID>%当前玩家今天剩余次数0

示例:

text
%dm_daily_limit_shadow_crypt%
%dm_daily_count_shadow_crypt%
%dm_daily_remaining_shadow_crypt%

这组占位符按副本 ID 查询。

  • 副本 ID 写错或副本不存在时,返回 0
  • 副本没开每日限制时,%dm_daily_limit_<副本ID>% 返回 0
  • 副本没开每日限制时,%dm_daily_remaining_<副本ID>% 返回 -1
  • daily_countdaily_remaining 都是按当前玩家单独统计的

这组占位符更适合放在菜单、计分板、玩家信息面板这类带玩家上下文的地方。像全服广播、纯服务端轮播这类没有玩家对象的场景,DM 的 PAPI 占位符本身就不会正常返回玩家数据。

排行榜

按名次查询:

text
%dm_lb_name_1_shadow_crypt%
%dm_lb_time_1_shadow_crypt%
%dm_lb_time_ms_1_shadow_crypt%
%dm_lb_date_1_shadow_crypt%

支持的名次查询类型:

  • name
  • time
  • time_ms
  • date

查询当前玩家和榜单总览:

text
%dm_lb_rank_shadow_crypt%
%dm_lb_my_time_shadow_crypt%
%dm_lb_my_time_ms_shadow_crypt%
%dm_lb_my_clears_shadow_crypt%
%dm_lb_size_shadow_crypt%
%dm_lb_best_shadow_crypt%
%dm_lb_best_ms_shadow_crypt%

支持的总览类型:

  • rank
  • my_time
  • my_time_ms
  • my_clears
  • size
  • best
  • best_ms

已注册但不建议拿来做核心展示的键

下面这些键在当前版本里虽然已经注册进了 PAPI 扩展,但源码里没有看到稳定的持续刷新流程。服上如果长期只显示默认值,不代表你写错了。

占位符当前情况默认值
%dm_dungeon_stage_name%已注册,未看到稳定刷新
%dm_dungeon_zone%已注册,未看到稳定刷新
%dm_alive_mobs%已注册,未看到稳定刷新0
%dm_deaths%已注册,未看到稳定刷新0

这几项更适合先在自己服里实测,再决定要不要挂进正式界面。

使用时的区分

  • 在外部插件里展示 DM 数据,用 %dm_*%
  • 在 DM 自己的脚本里读取任意 PAPI 结果,用 变量.PAPI("%player_name%")

这两套写法不要混着抄。

常见展示示例

计分板:

text
副本: %dm_dungeon_name%
阶段: %dm_dungeon_stage%
时间: %dm_dungeon_time_format%
人数: %dm_party_size%

历史信息:

text
通关次数: %dm_clears_shadow_crypt%
个人最佳: %dm_best_time_shadow_crypt%
个人排名: %dm_lb_rank_shadow_crypt%
今日次数: %dm_daily_count_shadow_crypt%
今日剩余: %dm_daily_remaining_shadow_crypt%

排行榜全息:

text
第一名: %dm_lb_name_1_shadow_crypt%
最佳时间: %dm_lb_time_1_shadow_crypt%
记录日期: %dm_lb_date_1_shadow_crypt%

TQ Minecraft Server Plugin Docs