Skip to content

LyCore

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

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

插件信息

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

提示

只使用重载、物品信息查看、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 节点时会过滤其中的 NameLore

指令

主命令:/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 可以按玩家获取 AttributeDataAttributeData 以来源名称维护属性文本列表,支持判断来源、读取来源、添加来源和移除来源。来源发生变化后,属性会在后续刷新任务中合并并同步到当前属性插件。