插件变量
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
170LyCore 会按以下顺序处理公式:
- 将公式中的
#替换为%。 - 通过 PlaceholderAPI 解析内部变量。
- 移除解析结果中的
§颜色代码。 - 计算公式并格式化小数位数。
因此,公式中使用的其它变量必须返回可参与运算的数字。空字符串、未解析的变量文本或包含非数字内容的结果无法正常计算。
数字格式化
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.yml 的 quick-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 使用固定小数位数格式输出结果。
| 设置 | 数值示例 | 输出示例 |
|---|---|---|
0 | 3.6 | 4 |
1 | 3 | 3.0 |
2 | 3 | 3.00 |
3 | 3.14159 | 3.142 |
小数位数表示格式化后的保留位数,不是直接截断。超出指定位置的内容会按数字格式化规则舍入,位数不足时会补 0。
返回值与错误排查
以下情况会直接返回红色的“错误”文本,即 §c错误:
| 情况 | 说明 |
|---|---|
| 变量类型不存在 | 参数不是 math_、format_ 或 calc_ 开头 |
format 格式不完整 | 没有同时提供位数和待格式化内容 |
format 位数无效 | 第一个参数不是可识别的数字 |
| 快捷公式不存在 | quick-calculation 下没有对应的公式 ID |
公式计算和数字转换过程没有统一的异常返回处理。公式包含非法内容时,不一定会稳定返回 §c错误,也可能在 PlaceholderAPI 解析过程中产生异常信息。
出现变量无法计算、原样显示或返回异常结果时,依次检查:
- PlaceholderAPI 是否已安装并正常启用。
- 使用变量的位置是否提供玩家上下文。
- LyCore 变量标识是否写为小写的
lcore。 - 外层变量是否保留完整的
%。 math或format内部调用的变量是否使用#变量#。- 内部变量解析后是否为纯数字。
- 公式是否只使用
()、^、*、/、+、-。 - 是否混入中文括号、中文运算符或其它非数字字符。
format是否包含位数_内容两部分。calc的公式 ID 是否与config.yml节点一致。- 快捷公式的
format和formula是否位于对应公式 ID 下。
不要在 math 或 format 的内部变量两侧继续使用 %。例如下面的写法会提前结束外层变量:
text
%lcore_math_0_%player_level% * 10%应改为:
text
%lcore_math_0_#player_level# * 10%