Skip to content

插件变量

LyDispatch 提供 PlaceholderAPI 变量扩展,变量标识为 lypq。服务器必须安装并成功加载 PlaceholderAPI,变量扩展才会注册并生效。

变量使用目标玩家的数据进行解析,只能在存在玩家上下文的位置使用。控制台或没有玩家对象的解析环境会返回空文本。

变量总览

变量返回内容无对应数据时
%lypq_global%玩家全部派遣任务的综合状态文本玩家数据未加载时返回空文本;数据已加载但没有派遣任务时返回 global-nothing-text
%lypq_status_派遣id%指定派遣的状态数字返回 0
%lypq_surplustime_派遣id%指定派遣剩余时间的格式化结果返回空文本
%lypq_endtime_派遣id%指定派遣结束时间的格式化结果返回空文本

将变量中的 派遣id 替换为派遣配置文件顶层的 id。例如,派遣配置中的 ID 为 宠物出行 时,变量写法如下:

text
%lypq_status_宠物出行%
%lypq_surplustime_宠物出行%
%lypq_endtime_宠物出行%

派遣 ID 必须与配置中的原始 ID 一致,包括中文、英文和大小写。插件查找指定派遣时不会自动修正错误的 ID。

全局状态

变量返回内容
%lypq_global%根据玩家全部派遣任务,返回当前优先级最高的状态文本

插件会遍历已加载的派遣配置,并按以下规则确定返回内容:

  1. 存在已经结束、可以领取奖励的派遣时,返回完成状态文本。
  2. 没有可领奖派遣,但存在仍在进行的派遣时,返回进行中状态文本。
  3. 玩家数据已加载,但没有任何派遣任务时,返回无任务状态文本。
  4. 玩家数据尚未加载时,返回空文本。

全局状态文本由 config.yml 中的以下配置控制:

状态配置项默认内容
有任务可领奖global-finish-text您有派遣任务已完成 快去领取奖励吧
有任务进行中global-starting-text您有派遣任务进行中 请耐心等待
没有任务global-nothing-text您暂未开启派遣任务 快去开启吧

这些文本支持使用 & 颜色代码。变量返回前,插件会将 & 转换为 Minecraft 颜色代码。

yaml
global-starting-text: '您有派遣任务进行中 请耐心等待'
global-nothing-text: '您暂未开启派遣任务 快去开启吧'
global-finish-text: '您有派遣任务已完成 快去领取奖励吧'

如果玩家同时存在进行中的派遣和已结束的派遣,已结束派遣的完成状态优先返回。

指定派遣状态

变量返回值含义
0玩家数据中没有该派遣任务,或玩家数据尚未加载
1派遣正在进行,当前时间尚未到达结束时间
2派遣已经结束,可以领取奖励

示例:

text
%lypq_status_宠物出行%

插件会根据玩家保存的派遣结束时间实时判断状态:

  • 结束时间晚于当前时间时返回 1
  • 当前时间已经到达或超过结束时间时返回 2
  • 玩家领取奖励后,该派遣状态会被移除,变量重新返回 0

时间变量

剩余时间

text
%lypq_surplustime_派遣id%

该变量读取指定派遣保存的结束时间,计算结束时间减去当前时间的结果,然后交给 time-format 配置项进行格式化。

当派遣已经结束时,剩余时间会先限制为 0,再进行格式化。变量返回的是日期格式化结果,不是直接返回秒数,也不是独立的“天、小时、分钟”倒计时。

结束时间

text
%lypq_endtime_派遣id%

该变量读取指定派遣保存的结束时间,并使用 time-format 配置项格式化,适合显示预计归来日期和时间。

时间格式

两个时间变量都使用 config.yml 中的 time-format

yaml
time-format: 'MM/dd HH:mm:ss'

该配置会直接作为 Java 日期格式使用。常见字段如下:

格式含义
MM月份
dd日期
HH24 小时制小时
mm分钟
ss

修改 time-format 后,%lypq_surplustime_派遣id%%lypq_endtime_派遣id% 都会使用新的格式。

派遣 ID 限制

变量参数通过下划线 _ 分隔,插件读取第一个下划线后的内容作为派遣 ID。因此,派遣配置中的 id 不应包含下划线。

可以正常使用的 ID:

yaml
id: '宠物出行'

不建议使用的 ID:

yaml
id: '宠物_出行'

对于 宠物_出行,变量 %lypq_status_宠物_出行% 会被拆分为 status宠物出行,插件只会读取第一个参数 宠物,无法匹配完整的 宠物_出行

玩家数据加载

变量依赖玩家派遣数据完成加载。玩家刚进入服务器、插件尚未完成初始化或数据尚未读取完成时,变量可能返回空文本或 0

情况%lypq_global%%lypq_status_派遣id%时间变量
玩家数据尚未加载空文本0空文本
玩家没有指定派遣根据全部派遣任务返回状态文本0空文本
指定派遣进行中返回进行中文本,若存在可领奖派遣则返回完成文本1返回格式化结果
指定派遣已结束返回完成状态文本2剩余时间按 0 格式化,结束时间保持不变
奖励已经领取重新计算全部派遣任务状态0空文本

MySQL 存储说明

启用 config.yml 的 MySQL 存储后,玩家派遣数据会从数据库读取并保存。

使用 MySQL 存储时必须同时满足以下条件:

  • 安装 LyMySQLCore。
  • LyMySQLCore 成功连接数据库。
  • LyDispatch 成功完成玩家数据加载。

只有 LyMySQLCore 已安装并成功连接数据库,相关玩家数据加载完成后,PlaceholderAPI 变量才会正确反映数据库中保存的派遣状态。数据库未连接或玩家数据尚未加载时,变量可能返回空文本或 0

变量生效条件

条件说明
PlaceholderAPI必须安装并成功加载,否则 lypq 变量扩展不会注册
玩家上下文变量需要目标玩家对象,控制台解析可能返回空文本
玩家数据指定派遣状态和时间变量依赖玩家数据加载完成
派遣 ID必须与派遣配置顶层 id 完全一致,且不应包含下划线
MySQL 存储必须安装 LyMySQLCore,并确保数据库连接成功