Skip to content

插件变量

LyCore 通过 PlaceholderAPI 提供计算与数字格式化变量,变量标识为 lcore

使用本页变量前,服务器必须安装并启用 PlaceholderAPI。未安装 PlaceholderAPI 时,LyCore 的变量扩展不会生效。

变量列表

变量说明默认小数位数
%lcore_math_公式%计算数学公式2
%lcore_math_位数_公式%计算数学公式,并指定保留的小数位数指定值
%lcore_format_位数_数字或变量%将数字格式化为指定小数位数指定值
%lcore_calc_公式ID%执行 config.yml 中预设的快捷运算配置决定

这些变量需要玩家上下文。PlaceholderAPI 未提供玩家对象、变量参数为空时,LyCore 会返回空字符串。

公式计算

基础格式

格式说明
%lcore_math_公式%计算公式,默认保留 2 位小数
%lcore_math_位数_公式%计算公式,保留指定小数位数

支持以下运算符:

运算符作用
()调整运算顺序
^次方
*乘法
/除法
+加法
-减法

运算优先级从高到低为括号、次方、乘除、加减。

计算 1 × (5 + 2)³

text
%lcore_math_1*(5+2)^3%

返回:

text
343.00

指定小数位数

需要指定小数位数时,在公式开头加入 位数_。只有 math_ 后第一个下划线前的内容是数字时,才会被识别为小数位数。

保留 0 位小数:

text
%lcore_math_0_1*(5+2)^3%

返回:

text
343

保留 3 位小数:

text
%lcore_math_3_10/3%

返回:

text
3.333

如果没有提供有效的 位数_ 前缀,变量会把 math_ 后的全部内容作为公式,并默认保留 2 位小数。

在公式中调用其它变量

math 变量本身使用 % 包裹。需要在公式内部调用其它 PlaceholderAPI 变量时,应使用 # 代替内部变量两侧的 %,避免变量边界冲突。

格式:

text
%lcore_math_#其它变量# + 数字%

按玩家等级计算数值,并保留 0 位小数:

text
%lcore_math_0_#player_level# * 10 + 50%

玩家等级为 12 时返回:

text
170

LyCore 会按以下顺序处理公式:

  1. 将公式中的 # 替换为 %
  2. 通过 PlaceholderAPI 解析内部变量。
  3. 移除解析结果中的 § 颜色代码。
  4. 计算公式并格式化小数位数。

因此,公式中使用的其它变量必须返回可参与运算的数字。空字符串、未解析的变量文本或包含非数字内容的结果无法正常计算。

数字格式化

format 变量用于调整数字的小数位数,不会执行加减乘除公式。

格式:

text
%lcore_format_位数_数字或变量%

参数说明:

参数说明
位数输出保留的小数位数,必须放在第一个下划线前
数字或变量可转换为数字的固定值或 PlaceholderAPI 变量

将数字保留 3 位小数:

text
%lcore_format_3_1.31415926%

返回:

text
1.314

将玩家等级格式化为整数:

text
%lcore_format_0_#player_level#%

玩家等级为 12 时返回:

text
12

调用其它 PlaceholderAPI 变量时,同样使用 #变量#。LyCore 会在格式化前解析内部变量并移除 § 颜色代码。

format 只接受能够直接转换为数字的内容。需要进行公式运算时,应改用 %lcore_math_公式%

快捷运算

快捷运算从 config.ymlquick-calculation 节点读取预设公式,适合集中管理较长或重复使用的计算内容。

变量格式:

text
%lcore_calc_公式ID%

配置结构:

yaml
quick-calculation:
  公式ID:
    format: 3
    formula: '%player_level% * (1.5^3) / (1+1)'
配置路径说明缺省值
quick-calculation.公式ID快捷运算的配置节点,也是变量中使用的公式 ID
quick-calculation.公式ID.format结果保留的小数位数2
quick-calculation.公式ID.formula需要计算的公式0

调用上面的公式:

text
%lcore_calc_公式ID%

快捷运算中的 formula 会交给 PlaceholderAPI 解析,因此可以直接使用标准 %变量%

yaml
quick-calculation:
  等级倍率:
    format: 1
    formula: '%player_level% * 1.25'

调用:

text
%lcore_calc_等级倍率%

玩家等级为 16 时返回:

text
20.0

快捷公式也会先将 # 替换为 %,所以下列两种内部变量写法都能进入 PlaceholderAPI 解析流程:

yaml
quick-calculation:
  标准写法:
    format: 0
    formula: '%player_level% * 10'
  替代写法:
    format: 0
    formula: '#player_level# * 10'

公式 ID 会直接拼接到 quick-calculation. 后读取配置。变量中的公式 ID 必须与配置节点名称完全对应。

小数位数规则

LyCore 使用固定小数位数格式输出结果。

设置数值示例输出示例
03.64
133.0
233.00
33.141593.142

小数位数表示格式化后的保留位数,不是直接截断。超出指定位置的内容会按数字格式化规则舍入,位数不足时会补 0

返回值与错误排查

以下情况会直接返回红色的“错误”文本,即 §c错误

情况说明
变量类型不存在参数不是 math_format_calc_ 开头
format 格式不完整没有同时提供位数和待格式化内容
format 位数无效第一个参数不是可识别的数字
快捷公式不存在quick-calculation 下没有对应的公式 ID

公式计算和数字转换过程没有统一的异常返回处理。公式包含非法内容时,不一定会稳定返回 §c错误,也可能在 PlaceholderAPI 解析过程中产生异常信息。

出现变量无法计算、原样显示或返回异常结果时,依次检查:

  1. PlaceholderAPI 是否已安装并正常启用。
  2. 使用变量的位置是否提供玩家上下文。
  3. LyCore 变量标识是否写为小写的 lcore
  4. 外层变量是否保留完整的 %
  5. mathformat 内部调用的变量是否使用 #变量#
  6. 内部变量解析后是否为纯数字。
  7. 公式是否只使用 ()^*/+-
  8. 是否混入中文括号、中文运算符或其它非数字字符。
  9. format 是否包含 位数_内容 两部分。
  10. calc 的公式 ID 是否与 config.yml 节点一致。
  11. 快捷公式的 formatformula 是否位于对应公式 ID 下。

不要在 mathformat 的内部变量两侧继续使用 %。例如下面的写法会提前结束外层变量:

text
%lcore_math_0_%player_level% * 10%

应改为:

text
%lcore_math_0_#player_level# * 10%