Skip to content

LyCore ​

LyCore 是离渊系列插件的基础前置,用于提供 PlaceholderAPI 运算变量、Aviator 脚本函数、物品判断与统计、NBT 读写和属性插件桥接能力。

它本身不提供独立的完整玩法,主要供其它插件、脚本和配置系统调用。

插件信息 ​

项目内容
插件名LyCore
当前版本1.0.2
作者Liyuan
主命令/lcore
运行环境Bukkit / Spigot / Paper
基础编译版本Java 8
必需前置无
可选前置PlaceholderAPI、AttributePlus、SX-Attribute、AttributeSystem、ItemLoreOrigin

提示

只使用重载、物品信息查看、NBT 写入和程序接口时,不需要安装 PlaceholderAPI。

使用 %lcore_% 系列变量或 /lcore papicmd 时,需要安装 PlaceholderAPI。

支持版本 ​

项目为不同服务端版本提供了独立的 NMS 实现,用于读取和修改物品 NBT。

Minecraft 版本NMS 版本Java 要求
1.7.10v1_7_R4Java 8
1.8.8v1_8_R3Java 8
1.11.2v1_11_R1Java 8
1.12.2v1_12_R1Java 8
1.13.2v1_13_R2Java 8
1.14.4v1_14_R1Java 8
1.15.2v1_15_R1Java 8
1.16.5v1_16_R3Java 8
1.17.1v1_17_R1Java 17
1.18.2v1_18_R2Java 17
1.19.2v1_19_R1Java 17
1.19.4v1_19_R3Java 17
1.20.1v1_20_R1Java 17
1.20.2v1_20_R2Java 17
1.20.3v1_20_R3Java 17

未在表格中列出的服务端版本没有对应的项目 NMS 模块,物品 NBT 功能不应视为已确认兼容。

主要功能 ​

功能说明
公式计算通过 PlaceholderAPI 计算括号、次方、乘除和加减表达式
数字格式化将数字或变量结果保留指定小数位
快捷运算在 config.yml 中预设公式,再通过公式 ID 获取结果
Aviator 脚本初始化并执行 Aviator 表达式,自动向执行环境加入当前玩家
物品匹配根据多个条件判断指定物品是否符合要求
物品统计统计玩家背包及已接入存储空间中的匹配物品数量
物品扣除按匹配条件从玩家背包及已接入存储空间扣除物品
NBT 查看输出手持物品的类型、名称、Lore、附魔和 NBT 信息
NBT 读写读取、写入或删除物品 NBT,支持使用点号访问嵌套节点
属性桥接将其它插件提交的属性文本统一刷新到已选择的属性插件

依赖与联动 ​

PlaceholderAPI ​

PlaceholderAPI 是可选前置,负责注册 %lcore_% 系列变量,并用于替换 /lcore papicmd 中的变量。

使用内容是否需要 PlaceholderAPI
/lcore reload否
/lcore lookitem否
/lcore setnbt否
%lcore_math_%是
%lcore_format_%是
%lcore_calc_%是
/lcore papicmd是

属性插件 ​

LyCore 可以自动检测或手动选择以下属性插件:

配置值对应插件
Auto自动选择已启用的属性插件
AttributePlusAttributePlus 2.x 或 3.x
SX-Attribute2SX-Attribute 2.x
SX-Attribute3SX-Attribute 3.x
AttributeSystemAttributeSystem
ItemLoreOriginItemLoreOrigin

属性来源以名称区分。添加、替换或移除来源后,LyCore 会合并该玩家的全部属性文本,并将结果刷新到当前属性插件。

警告

修改 attribute-plugin 后需要重启服务器。配置为未安装或不兼容的属性插件时,属性桥接无法正常工作。

存储空间联动 ​

物品统计和扣除功能会先处理玩家背包,并在检测到对应插件时继续处理其它存储空间。

检测到的插件接入空间
LyWarehouse离渊传统仓库
LyLootsWareHouse离渊战利品仓库
YeeCore灵魂空间相关存储

这些联动不是 LyCore 的必需前置。未安装对应插件时,只跳过相应存储空间。

PlaceholderAPI 变量 ​

公式计算 ​

变量格式说明
%lcore_math_公式%计算公式并返回结果
%lcore_math_位数_公式%计算公式,并将结果保留指定小数位

公式支持以下运算符,优先级从高到低排列:

符号作用
()括号
^次方
*乘法
/除法
+加法
-减法

需要在公式中调用其它 PlaceholderAPI 变量时,使用 #变量名# 包裹变量内容。

text
%lcore_math_1*(5+2)^3%
%lcore_math_1*#player_level#^3%
%lcore_math_0_1*(5+2)^3%

数字格式化 ​

变量格式说明
%lcore_format_位数_数字或变量%将数字或变量结果保留指定小数位
text
%lcore_format_3_1.31415926%
%lcore_format_0_#ap_damage:min#%

快捷运算 ​

变量格式说明
%lcore_calc_公式id%执行 quick-calculation 中对应 ID 的公式

快捷运算配置位于 config.yml:

yaml
quick-calculation:
  公式id:
    format: 3
    formula: '%player_level% * (1.5^3) / (1+1)'
配置键说明
quick-calculation快捷公式配置根节点
quick-calculation.公式id自定义公式 ID,对应 %lcore_calc_公式id%
quick-calculation.公式id.format结果保留的小数位数
quick-calculation.公式id.formula需要计算的公式,允许包含 PlaceholderAPI 变量

Aviator 脚本能力 ​

LyCore 初始化时会注册以下中文函数,并在执行表达式时将当前玩家放入 player 环境变量。

函数名作用
匹配物品判断执行环境中的 item 是否符合全部物品条件
统计物品统计玩家背包和已接入存储空间中的匹配物品
扣除物品按数量从玩家背包和已接入存储空间扣除匹配物品
给予物品执行物品给予逻辑

物品条件以 键=值 的字符串参数传入。匹配物品 要求执行环境中存在 item;统计和扣除函数使用执行环境中的 player。扣除函数可通过 amount 条件指定数量,未指定时数量为 1。

NBT 能力 ​

LyCore 为各支持版本提供独立 NMS 实现。NBT API 支持使用点号分隔嵌套路径,例如 custom.data.level;写入时会创建缺少的中间复合节点,传入空值时会删除目标节点。

NBT 类型API 支持情况
Byte支持
Short支持
Int支持
Long支持
Float支持
Double支持
String支持
ByteArray支持
IntArray支持
LongArray1.13.2 及以上实现支持
Compound支持
Boolean支持,以 Byte 类型存储

NBT 描述功能会递归输出复合节点和列表,最大递归深度为 64。物品名称和 Lore 已由物品信息单独显示,因此描述 display 节点时会过滤其中的 Name 和 Lore。

指令 ​

主命令:/lcore

指令说明
/lcore查看管理员帮助
/lcore reload重载 config.yml
/lcore lookitem查看手持物品的类型、名称、Lore、附魔和 NBT
/lcore setnbt <节点> <值>给手持物品写入字符串 NBT
/lcore setnbt <节点> <值> <类型>按指定类型给手持物品写入 NBT
/lcore papicmd <玩家> <命令>替换命令中的 PlaceholderAPI 变量,再让指定玩家以 OP 权限执行命令

setnbt 指令可用的基础类型:

类型值格式
Byte整数
Short整数
Int整数
Long整数
Float小数
Double小数
String文本
text
/lcore lookitem
/lcore setnbt ly_item_type gem
/lcore setnbt level 10 Int
/lcore papicmd Steve say 当前等级是 %player_level%

危险

papicmd 会临时让目标玩家以 OP 权限执行替换后的命令。不要将该指令开放给不可信用户,也不要将未经检查的玩家输入拼接到执行命令中。

项目的 plugin.yml 没有声明权限节点。实际指令访问限制应以服务器中使用的插件版本和命令实现为准。

配置概览 ​

LyCore 的可配置内容位于 config.yml。

yaml
quick-calculation:
  公式id:
    format: 3
    formula: '%player_level% * (1.5^3) / (1+1)'

attribute-plugin: 'Auto'
配置键默认值说明
quick-calculation示例公式节点配置 %lcore_calc_% 使用的快捷公式
quick-calculation.<公式id>.format3结果保留的小数位数
quick-calculation.<公式id>.formula示例公式需要执行的公式
attribute-pluginAuto选择属性桥接插件,修改后需要重启

开发接口 ​

插件公开了 Ly.core.api.LyCoreAPI 入口。

方法返回值说明
LyCoreAPI.getAttributeManager()AttributeManager获取 LyCore 当前使用的属性管理器

AttributeManager 可以按玩家获取 AttributeData。AttributeData 以来源名称维护属性文本列表,支持判断来源、读取来源、添加来源和移除来源。来源发生变化后,属性会在后续刷新任务中合并并同步到当前属性插件。