宝石重置版 LyGemReload
LyGemReload 是装备宝石镶嵌系统。玩家可以在专用界面中放入装备、宝石和额外道具,插件根据装备宝石槽、宝石匹配规则、镶嵌条件、金币消耗和成功率处理镶嵌。已镶嵌宝石会记录在装备 NBT 中,并可通过拆卸工具或免工具模式移除。
插件同时支持开孔道具、动态成功率、随机属性、镶嵌数量限制、隐藏属性加载、自定义指令与全服消息,可用于制作装备成长、宝石强化和属性构筑玩法。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名 | LyGemReload |
| 中文名 | 宝石重置版 |
| 插件版本 | 1.1.0 |
| 作者 | 离渊 |
| 主命令 | /lgr |
| Java 版本 | 基础模块使用 Java 8;Minecraft 1.17 及以上适配模块使用 Java 17 |
| 数据存储 | 宝石数据、镶嵌数量和开孔次数记录在物品 NBT 中 |
支持版本
项目中包含以下 Minecraft 服务端版本的 NMS 适配模块:
| Minecraft 版本 | NMS 版本 |
|---|---|
1.7.10 | v1_7_R4 |
1.8.8 | v1_8_R3 |
1.11.2 | v1_11_R1 |
1.12.2 | v1_12_R1 |
1.13.2 | v1_13_R2 |
1.14.4 | v1_14_R1 |
1.15.2 | v1_15_R1 |
1.16.5 | v1_16_R3 |
1.17.1 | v1_17_R1 |
1.18.2 | v1_18_R2 |
1.19.2 | v1_19_R1 |
1.19.4 | v1_19_R3 |
1.20.1 | v1_20_R1 |
1.20.2 | v1_20_R2 |
1.20.3 | v1_20_R3 |
未在表中列出的服务端版本没有对应的项目适配模块。
依赖与兼容
| 插件或系统 | 类型 | 用途 |
|---|---|---|
PlaceholderAPI | 功能依赖 | 解析镶嵌条件、成功率公式、随机属性公式、消息和指令中的变量,并提供 %lgr_message_配置键% 变量。 |
Vault | 按需依赖 | 宝石配置的 eco 大于 0 时,通过 Vault 经济服务检测并扣除金币。还需要服务器存在可用的 Vault 经济实现。 |
ProtocolLib | 兼容依赖 | 用于序列化和还原镶嵌时保存的宝石物品。 |
| 属性插件 | 可选依赖 | 将宝石隐藏属性加载到玩家属性中。 |
| 装备槽插件 | 可选兼容 | 从第三方背包或装备槽读取需要加载隐藏属性的装备。 |
GermPlugin | 可选兼容 | 支持萌芽槽位,并可通过 germ-message-dos 将插件消息转换为萌芽 DOS。 |
可在 attribute-plugin 中选择的属性插件标识如下:
AttributePlusSX-Attribute2SX-Attribute3AttributeSystemItemLoreOrigin
隐藏属性槽位支持原版主手、副手、护甲栏和背包槽位,也包含 DragonCore、GermPlugin、APInventory、LyInventory、LyInventoryReload 与 PXRPG 的槽位读取格式。具体写法见配置说明。
玩法流程
- 装备需要存在与宝石
slot配置完全对应的 Lore,例如&7<绿宝石槽位>。 - 宝石通过显示名称和指定 Lore 识别,两项同时配置时必须同时匹配。
- 玩家打开镶嵌界面,放入装备、宝石和可选的额外道具。
- 插件检查禁止镶嵌 Lore、宝石槽位、镶嵌数量、宝石条件和金币余额。
- 插件计算宝石基础成功率,并叠加额外道具提供的成功率。
- 镶嵌成功后,原宝石槽 Lore 会替换为宝石展示名称和展示 Lore,宝石原物品、宝石 ID、原槽位和隐藏属性会写入装备 NBT。
- 镶嵌失败时仍会消耗本次宝石;放入有效额外道具时也会消耗该道具。
- 可拆卸宝石能够使用匹配的拆卸工具移除,也可以由服务器开启免拆卸工具模式。
主要功能
| 功能 | 说明 |
|---|---|
| 宝石镶嵌 | 根据装备槽位 Lore、宝石名称、宝石 Lore、镶嵌条件、金币和成功率处理镶嵌。 |
| 多宝石配置 | 自动递归加载 plugins/LyGemReload/gem 目录内的 YAML 文件,每个宝石 ID 必须全局唯一。 |
| 动态成功率 | chance 支持数值、PlaceholderAPI 变量以及 +、-、*、/ 和括号公式。 |
| 镶嵌条件 | 支持权限、无权限、PAPI 表达式和装备内指定宝石数量检测。 |
| 宝石数量限制 | 可按顺序匹配权限或 PAPI 条件,为不同玩家设置每件装备的最大宝石数量。 |
| 唯一宝石 | 可使用 gem-amount 条件限制指定宝石在同一件装备中的数量。 |
| 金币消耗 | 每种宝石可以设置固定金币消耗,通过 Vault 经济服务检查和扣款。 |
| 宝石拆卸 | 拆卸工具可配置成功率、适用宝石、成功后返还宝石概率和成功指令。 |
| 免工具拆卸 | 开启 force-out-gem-enable 后,点击界面内的已镶嵌宝石即可直接拆卸并返还宝石。 |
| 不可拆卸宝石 | 宝石可通过 can-disassembled: false 禁止任何拆卸操作。 |
| 开孔道具 | 在生存背包中拿起开孔器点击装备,按权重随机增加一个或多个宝石槽 Lore。 |
| 开孔限制 | 可限制开孔器适用的装备名称、前置 Lore 和每件装备的最大使用次数。 |
| 额外道具 | 镶嵌时可以增加成功率、追加随机属性或发送自定义消息。 |
| 随机数值 | 宝石展示 Lore、隐藏属性和额外道具结果支持 {最小值-最大值-格式} 随机区间。 |
| 显示属性 | show-lore 会直接写入装备可见 Lore,可由基于 Lore 的属性插件自行读取。 |
| 隐藏属性 | attribute 保存在装备宝石数据中,不必直接显示在装备 Lore 上。 |
| 宝石原 Lore 加载 | 可以把镶嵌前宝石物品的全部 Lore作为属性来源加载。 |
| 多槽位属性读取 | 可从原版装备栏、背包槽位及多个第三方装备槽读取镶嵌装备。 |
| 属性刷新 | 玩家进入服务器、关闭背包、切换手持栏和交换主副手时会刷新隐藏属性;相同属性列表会跳过重复刷新。 |
| 成功与失败动作 | 宝石可分别配置成功指令、失败指令和镶嵌成功后的全服消息。 |
| 禁止镶嵌 Lore | 可分别设置装备和宝石的禁止 Lore,命中后拒绝镶嵌。 |
| 快捷界面模式 | 点击玩家背包物品时自动识别装备、宝石和额外道具并放入对应槽位,再次点击界面槽位可自动放回背包。 |
| 旧版手动模式 | 可关闭快捷模式,恢复手动拿起和放入物品的界面交互。 |
| 关闭界面返还 | 关闭镶嵌界面时会返还装备、宝石和额外道具;背包已满时物品会掉落在玩家脚下。 |
| 宝石查询 API | Java API 可以读取一件装备中保存的全部宝石 ID,单次最多返回 27 个。 |
镶嵌界面
镶嵌界面为 54 格容器。主要槽位固定如下:
| 槽位 | 用途 |
|---|---|
0 至 26 | 展示装备中已经镶嵌的宝石,最多显示 27 个。 |
37 | 装备槽。 |
39 | 待镶嵌宝石槽。 |
41 | 额外道具槽。 |
43 | 镶嵌按钮,Lore 可显示金币消耗和成功率。 |
默认启用快捷模式:
- 点击玩家背包中的宝石,会自动交换到
39槽。 - 点击玩家背包中的额外道具,会自动交换到
41槽。 - 其他物品默认交换到
37装备槽。 - 拆卸工具不会自动进入界面槽位,需要拿在鼠标上点击已镶嵌宝石。
- 空手点击
37、39或41槽,会尝试把物品放回玩家背包。
宝石规则概览
每个宝石配置包含一个全局唯一 ID。插件会按以下规则识别和处理宝石:
| 规则 | 说明 |
|---|---|
| 槽位匹配 | 装备必须存在 slot 列表中的至少一行 Lore,并且为忽略大小写的完整行匹配。 |
| 名称匹配 | gem-name 不为空时,宝石显示名称必须完整匹配。 |
| Lore 匹配 | gem-lore 不为空时,宝石至少有一行 Lore 包含该配置内容。 |
| 展示内容 | 镶嵌成功后使用 show-name 和 show-lore 替换命中的宝石槽 Lore。 |
| 成功率 | chance 使用 0 至 1 的概率值,也可以填写变量公式。 |
| 金币 | eco 为固定整数金额;设置为 0 时不检查经济。 |
| 拆卸 | can-disassembled 决定宝石是否允许拆卸。 |
| 属性 | attribute 生成隐藏属性,load-item-lore-attribute 决定是否加载这些属性。 |
| 原宝石 Lore | load-item-lore 决定是否把镶嵌前宝石物品的全部 Lore 加载为属性。 |
完整配置格式、条件语法和随机数值格式见宝石规则。
指令
| 指令 | 使用者 | 权限要求 | 说明 |
|---|---|---|---|
/lgr inlay | 玩家 | 无 | 打开镶嵌与拆卸界面。 |
/lgr reload | 管理员 | 仅 OP | 重载主配置、宝石、额外道具、拆卸工具、开孔道具和变量镶嵌限制。 |
/lgr | 管理员 | 仅 OP | 显示插件指令提示。 |
插件没有在 plugin.yml 中声明独立权限节点。宝石配置与镶嵌上限配置中的权限名称由服务器自行填写,不属于插件固定权限。
内置变量
安装 PlaceholderAPI 后,插件注册 lgr 变量扩展:
| 变量 | 返回内容 |
|---|---|
%lgr_message_消息键% | 返回 config.yml 中 message.消息键 的文本,并转换 & 颜色代码。 |
例如 %lgr_message_inlay-success% 对应 message.inlay-success。完整变量和可使用变量的位置见插件变量。
配置文件
插件首次加载或重载时会准备以下配置:
| 文件 | 内容 |
|---|---|
config.yml | 属性槽位、属性插件、禁止镶嵌 Lore、镶嵌数量限制、拆卸模式、界面和消息。 |
gem/*.yml | 宝石识别、槽位、概率、金币、条件、属性、指令和消息。支持递归加载多个 YAML 文件。 |
开孔道具.yml | 开孔器名称、适用装备、前置 Lore、使用次数和权重结果。 |
拆卸工具.yml | 拆卸工具名称、成功率、返还规则、适用宝石和成功指令。 |
额外道具.yml | 镶嵌额外道具名称及成功率、属性、Lore 和消息效果。 |
文档索引
| 页面 | 内容 |
|---|---|
| 配置说明 | 主配置、界面配置、消息、隐藏属性槽位和镶嵌数量限制。 |
| 宝石规则 | 宝石、条件、概率公式、随机属性、开孔器、拆卸工具和额外道具。 |
| 插件变量 | PlaceholderAPI 变量、变量表达式和可用位置。 |
| API | Java API 提供的装备宝石 ID 查询能力。 |
| 常见问题 | 宝石无法识别、槽位不匹配、经济扣款、拆卸和隐藏属性排查。 |