Skip to content

宝珠 LyPearls

LyPearls 是一款装备宝珠镶嵌插件。玩家在背包中拿起指定宝珠,再点击带有对应槽位 lore 的单件装备,即可消耗一颗宝珠并生成镶嵌结果。

每种宝珠可以配置多个结果。插件先检查权限、PlaceholderAPI 表达式和随机几率条件,再从满足条件的结果中按权重抽取一个结果。镶嵌结果可以添加 lore、替换物品名称、写入字符串 NBT,并执行玩家或后台指令。

装备上的旧宝珠 lore 会在再次镶嵌时被清理,使装备只保留当前宝珠结果。插件同时支持原版玩家背包和 GermPlugin 槽位。

插件信息

项目内容
插件名LyPearls
插件版本1.0.4
作者Liyuan
主命令/lybz
配置目录plugins/LyPearls/
宝珠目录plugins/LyPearls/pearls/
软依赖PlaceholderAPIGermPlugin

支持版本

项目包含下列 Minecraft 服务端版本的 NMS 实现:

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

插件会根据服务端报告的 Bukkit 版本加载对应 NMS 实现。未列出的版本没有对应实现,NBT 写入等依赖 NMS 的功能无法确认可用。

依赖说明

依赖类型用途
PlaceholderAPI软依赖解析 papi 条件、数值公式和结果指令中的变量
GermPlugin软依赖在萌芽 GUI 槽位中处理宝珠镶嵌,并保存、同步槽位物品

使用 PlaceholderAPI 条件、公式或变量指令时,服务器必须正确安装 PlaceholderAPI 以及相关变量扩展。未安装 GermPlugin 时,不会注册萌芽 GUI 监听器,但原版背包镶嵌仍由普通背包监听器处理。

项目中没有 MySQL 存储功能,也不依赖 LyMySQLCore

玩法机制

  1. 玩家用鼠标拿起带有指定显示名称的宝珠物品。
  2. 玩家点击背包中的目标装备,或点击萌芽 GUI 中的目标槽位。
  3. 插件按显示名称匹配宝珠配置,名称比较不区分大小写。
  4. 目标物品必须带有 lore,且物品堆叠数量不能大于 1
  5. 目标物品 lore 必须包含 item-need-lore 中的任意一行。
  6. 插件筛选所有满足条件的结果,并按 weight 权重随机选择结果。
  7. 插件清理旧宝珠 lore,然后写入新结果的 lore。
  8. 如结果配置了替换名称、NBT 或指令,插件会继续执行对应操作。
  9. 镶嵌成功后消耗玩家光标上的一颗宝珠,并发送成功消息。

同一玩家的连续镶嵌点击存在约 500 毫秒的处理间隔,用于避免短时间重复触发。

功能

功能说明
背包点击镶嵌玩家拿起宝珠点击单件装备即可触发镶嵌判断
萌芽槽位支持安装 GermPlugin 后可在萌芽 GUI 槽位中完成相同操作
宝珠名称识别通过物品显示名称识别宝珠类型
槽位 lore 判断目标物品必须包含配置的任意一行 item-need-lore
多文件加载递归读取 pearls/ 目录及子目录中的 .yml 文件
多宝珠定义单个 YAML 文件顶层可以定义多个宝珠 ID
条件筛选支持权限、无权限、PlaceholderAPI 表达式和随机几率条件
权重抽取只有满足全部条件的结果才参与权重计算
随机数值lore 和 NBT 值支持范围随机与小数格式化
变量公式支持将 PlaceholderAPI 变量代入四则运算公式
lore 替换新宝珠镶嵌时会清理插件生成的旧宝珠 lore
槽位行处理可保留基础槽位 lore,也可在镶嵌时删除该行
名称替换选中结果可以替换目标装备的显示名称
NBT 写入结果可向物品写入单层字符串 NBT,依赖对应版本的 NMS 实现
指令联动镶嵌成功后可执行玩家、临时 OP 或控制台指令
消息覆盖每种宝珠可覆盖全局成功和失败消息,也可使用 none 关闭消息
颜色代码名称、lore 和消息支持使用 & 颜色代码

结果条件

每个镶嵌结果的 condition 是字符串列表。列表中的条件必须全部通过,该结果才会加入权重池。

条件格式说明
permission:{权限节点}玩家必须拥有指定权限
nopermission:{权限节点}玩家必须没有指定权限
papi:{表达式}解析 PlaceholderAPI 变量并判断表达式
roll:{几率}按百分比进行随机判断,例如 roll:{10} 表示约 10% 几率

papi 表达式支持 ><>=<===!=,并可使用 &&|| 组合条件。数值部分支持 +-*/ 和括号;字符串相等比较可使用单引号或双引号包裹字符串。

随机数值与公式

结果 lore 和 NBT 字符串支持两种数值语法:

格式说明
{最小值~最大值~格式}在指定范围内生成随机数,并使用 Java 数值格式输出
公式~格式,整体写在尖括号内先解析 PlaceholderAPI 变量,再计算四则运算结果并格式化

例如 {100~200~%.0f} 会生成 100200 之间的随机数并保留零位小数。公式语法可以包含范围随机结果和 PlaceholderAPI 变量,具体配置见宝珠配置

指令

指令使用者说明
/lybzOP显示重载指令提示
/lybz reloadOP重载 config.ymlpearls/ 目录中的全部宝珠配置

插件没有声明独立权限节点,后台指令直接通过玩家是否为 OP 判断。

配置文件

路径内容
plugins/LyPearls/config.yml全局镶嵌成功与不可镶嵌消息
plugins/LyPearls/pearls/示例宝珠.yml默认生成的宝珠配置示例
plugins/LyPearls/pearls/**/*.yml管理员创建的其他宝珠配置文件

插件重载时会递归扫描 pearls/ 目录,只读取扩展名为 .yml 的文件。宝珠 ID 来自每个文件的顶层配置键。

配置能力概览

配置键作用
name用于识别宝珠物品的显示名称
message.不可附魔当前宝珠的不可镶嵌消息
message.附魔成功当前宝珠的镶嵌成功消息
item-need-lore允许镶嵌的目标 lore 列表,匹配任意一行即可
remove-default-lore是否在镶嵌时删除匹配到的基础槽位 lore
add-lore-result当前宝珠的全部随机结果
add-lore-result.<结果>.weight结果权重,未填写时默认值为 1
add-lore-result.<结果>.condition结果参与权重计算前必须满足的条件
add-lore-result.<结果>.replace-name选中结果后替换装备名称
add-lore-result.<结果>.nbt写入装备的单层字符串 NBT
add-lore-result.<结果>.lore选中结果后写入装备的 lore
add-lore-result.<结果>.command选中结果后执行的指令列表

完整键结构和 YAML 写法见配置说明宝珠配置

结果指令类型

前缀执行方式
[console]由控制台执行
[op]临时授予玩家 OP 后,以玩家身份执行,完成后恢复原状态
[player]由玩家执行
无前缀由玩家执行

执行前会解析指令中的 PlaceholderAPI 变量。

使用限制

  • 宝珠物品必须拥有显示名称,且名称必须与配置的 name 匹配。
  • 目标物品必须拥有 lore,并包含当前宝珠要求的槽位 lore。
  • 目标装备的堆叠数量不能大于 1
  • 镶嵌结果需要至少存在一个能够参与抽取的有效结果。
  • 使用 papi 条件、变量公式或指令变量前,需要保证 PlaceholderAPI 能返回可计算或可比较的内容。
  • NBT 功能依赖服务端版本对应的 NMS 实现成功初始化。
  • 新宝珠会覆盖插件生成的旧宝珠 lore,不会在同一装备上无限叠加结果。
  • remove-default-lore: true 会移除匹配到的基础槽位 lore;设为 false 时,新宝珠 lore 会添加在槽位 lore 附近。

页面索引

页面内容
配置说明全局消息、配置目录和基础配置项
宝珠配置宝珠定义、结果权重、条件、随机数值、NBT 与结果指令
常见问题宝珠无法识别、槽位不匹配、变量计算和版本问题排查
更新日志文档整理记录