• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
MosaicGem - 马赛克宝石——适用于26.x的宝石镶嵌插件,支持原版属性,附魔,CrazyEnchantments,SX-Attribute和MythicMobs的多类型宝石

原创 开源 娱乐 MosaicGem - 马赛克宝石——适用于26.x的宝石镶嵌插件,支持原版属性,附魔,CrazyEnchantments,SX-Attribute和MythicMobs的多类型宝石 1.0.3

完成注册/登录后下载
版权类型
原创
插件中文名称
马赛克宝石
插件英文名称
MosaicGem
原帖地址
https://github.com/W-IBARI/MosaicGem/tree/main
支持的核心(服务端)
  1. Folia
语言支持
多语言
前置组件
适配版本(Java)
  1. 26.x
[MD] # MosaicGem Minecraft 服务器宝石镶嵌插件,支持**装备打孔、宝石镶嵌、宝石拆卸**,属性支持 **SX-Attribute(lore 合并)**、**原版属性(AttributeModifier)**、**附魔(原版附魔 / CrazyEnchantments 自定义附魔)** 与 **MythicMobs 技能/掉落**,适配 **Folia 26.x / Java Edition 26.x**。 > 本插件使用 DeepSeek V4 Flash 开发:作者仅设计系统框架并负责功能测试与调优,不参与代码细节设计。 ## 功能特性 - **装备打孔**:使用打孔器为装备添加孔位,成功率与双维度孔数上限可配置 - **宝石镶嵌**:宝石携带随机数值,`sx_attribute` 宝石合并进装备属性面板由 SX-Attribute 读取生效;`vanilla_attribute` 宝石直接附加到装备的原版属性修饰符;`enchant` 宝石直接附加/叠加到装备的附魔;`mythicmobs_skill` 宝石按配置的触发器(默认挥动)发动 MythicMobs 技能 - **宝石拆卸**:拆卸后宝石按原随机数值返还,装备属性面板自动还原;每颗宝石可独立配置 `remove-destroy-chance` 拆卸损毁概率(0-100%),与拆卸器成功率无关,拆卸成功后再独立判定,命中则宝石损毁不返还 - **属性面板合并**:物品原有 `攻击力:13.90` + 宝石 +20 → `攻击力:33.90(+20)`,宝石独有的属性自动新增行 - **三种交互方式**:铁砧合成、工作台/随身合成、拖拽工具到目标物品,均可独立开关 - **完整反馈**:所有被拦截或失败的操作都会提示玩家,文案按语言拆分到独立的 `messages/` 目录语言文件中配置 - **管理指令**:重载配置、发放物品、调试查看、列表、自检 - **格式保留**:镶嵌/打孔不会破坏物品原有 lore 的颜色、斜体、加粗等格式 ## 环境要求 - 服务端:Folia 26.x(26.1 及以上,Java Edition 26.1+) - Java:JDK 25+ - 可选依赖:[SX-Attribute-Folia(26.2 优化构建版)](https://github.com/W-IBARI/SX-Attribute-Folia-fixed)(`sx_attribute` 宝石属性生效需要,同时需要其前置 [SX-Item](https://github.com/Saukiya/SX-Item));[CrazyEnchantments](https://github.com/Crazy-Crew/CrazyEnchantments/)(`ce:` 前缀的自定义附魔宝石需要);[MythicMobs](https://git.mythiccraft.io/mythiccraft/MythicMobs)(`mythicmobs_skill` 宝石与怪物掉落宝石需要);[MythicCrucible](https://git.mythiccraft.io/mythiccraft/mythiccrucible)(`mythicmobs_skill` 宝石的多触发器支持需要,可选) > 说明:原版 SX-Attribute 仓库尚未适配 26.2,因此 MosaicGem 推荐使用 [W-IBARI/SX-Attribute-Folia-fixed](https://github.com/W-IBARI/SX-Attribute-Folia-fixed) 提供的 26.2 优化构建版。 > > MythicMobs 同样为软依赖:未安装时 `mythicmobs_skill` 宝石与自定义掉落不可用,其余功能不受影响。 ## 安装 1. 构建插件(见下文「构建」),或使用已发布的 jar 2. 将 `MosaicGem-*.jar` 放入服务端 `plugins` 目录 3. 如需 `sx_attribute` 宝石属性生效,同时放入 `SX-Item` 与 `SX-Attribute`(26.2 优化构建版)的 jar 4. 启动服务端,插件会自动生成 `config.yml`、`messages/zh_cn.yml`、`messages/en_us.yml`、`items/gems.yml`、`items/punchers.yml`、`items/removers.yml` 5. 按需修改配置后执行 `/mosaicgem reload` ## 玩法机制 ### 打孔 - 使用打孔器与目标装备交互(铁砧 / 工作台 / 拖拽) - 打孔成功:装备孔数 +1,打孔器消耗 1 个 - 打孔失败:打孔器消耗 1 个,装备及其已镶嵌宝石不受影响 - `rate` 为百分比(0-100) - 孔数上限为双维度,任一不满足都会被拦截并提示: - **全局上限**:装备所有来源的孔数之和不得超过 `settings.max-holes` - **来源上限**:同一类打孔器给一件装备贡献的孔数不得超过该打孔器的 `holesnum` ### 镶嵌 - 目标装备必须已有孔位,且已镶嵌数量未达到孔数上限 - 宝石生成时,按照配置的值生成,同时支持随机数配置:按 `random` 配置随机取值并固定到该宝石实例;批量发放时每颗宝石随机值独立 - 同一种宝石可按 `repetitions` 限制重复镶嵌次数(不填为无上限) - 宝石可配置 `gemtype` 类型标签(字符串列表,可多个),配合 `config.yml` 的 `settings.gem-type-limit` 全局限制:一件装备上同一 `gemtype` 标签的宝石数量不得超过上限(如 `攻击: 2` 表示带"攻击"标签的宝石一件装备最多 2 颗);标签未配置上限或 `gemtype` 缺省时不限制 - `buffType` 支持 `sx_attribute`(写入 lore 由 SX-Attribute 读取)、`vanilla_attribute`(附加原版属性修饰符)、`enchant`(附加/叠加附魔)与 `mythicmobs_skill`(按配置的触发器发动 MythicMobs 技能,默认挥动),其他类型会拦截镶嵌并提示 - `sx_attribute` 属性面板合并规则: - 物品原有属性行与所有宝石同类数值求和,显示为 `总值(+加成)`,如 `攻击力:33.90(+20)` - 宝石独有的属性自动追加新属性行 - 加成数值的小数位:单颗宝石生效时去掉多余小数零(`+20`);多颗宝石生效时取小数位最多的宝石的位数(`+40.00`) - 加成文字通过 `§X` 标记与数值隔离,SX-Attribute 只读取纯总值,不会把 `(+20)` 算进属性 - `vanilla_attribute` 原版属性合并规则: - 同属性的多颗宝石会合并为一个 AttributeModifier,tooltip 只显示一行总值(如两颗合计 +11 → `装备时:攻击力 +11`) - 物品原有的同属性 ADD_NUMBER 修饰符会一并合并进总值,显示在“原值上增加” - 被合并的原生修饰符会存入物品数据,宝石取下后自动还原 - `enchant` 附魔合并规则: - 目标装备已有该附魔时,最终等级 = 原等级 + 宝石合计(如原 `锋利 III` + 宝石 +2 → `锋利 V`);没有则按宝石等级新建附魔 - 多颗附魔宝石的同类附魔等级求和后一次性写入 - 原生附魔等级会存入物品数据,宝石全部取下后自动还原为原始等级 - 原版附魔 id 使用 `minecraft:` 前缀(如 `minecraft:sharpness`);已安装 CrazyEnchantments 时还可使用 `ce:` 前缀(如 `ce:Wither`)镶嵌其自定义附魔 - `mythicmobs_skill` 技能宝石规则: - 配置条中的每一行声明一个 MythicMobs 技能名,格式参考 MythicCrucible 物品技能:`技能名 @触发器`(如 `TestSkill @onSwing`),不写触发器默认 `@onSwing` - 安装 [MythicCrucible](https://git.mythiccraft.io/mythiccraft/mythiccrucible) 时,触发完全交给 Crucible 的物品技能系统(`SWING` / `USE` / `RIGHTCLICK` 等触发器),插件只负责按宝石配置施放技能;冷却、条件、目标选择等由 MythicMobs 处理 - 未安装 MythicCrucible 时回退到内置的近战攻击触发(仅 `@onSwing` / `@onAttack` / `@onHit` 类触发器生效) - 镶嵌信息中宝石的属性行直接显示技能名(如 `TestSkill`),不显示触发器后缀 ### MythicCrucible 物品技能(mythicmobs_skill) [MythicCrucible](https://git.mythiccraft.io/mythiccraft/mythiccrucible) 是 MythicMobs 的物品扩展,其物品技能格式为 `- skill:技能名 @触发器`。MosaicGem 的 `mythicmobs_skill` 宝石沿用类似格式: ```yaml MM技能测试宝石: buffType: 'mythicmobs_skill' attribute: - 'TestSkill @onSwing' # 挥动时施放 MythicMobs 技能:TestSkill - 'Heal @onUse' # 右键使用时施放 Heal(需要 MythicCrucible) ``` - 常见触发器名(大小写不敏感,`on` 前缀可省略):`onSwing` / `SWING`、`onUse` / `USE`、`onRightClick` / `RIGHTCLICK`、`onShoot` / `SHOOT`、`onJump` / `JUMP` 等 - 未安装 MythicCrucible 时仅 `onSwing`(及 `onAttack` / `onHit`)生效,其余触发器会被忽略 ### MythicMobs 怪物掉落宝石 安装 MythicMobs 后,可在怪物的 `Drops` 中使用自定义掉落类型 `mosaicgem` 掉落插件宝石: ```yaml Drops: - mosaicgem:附魔测试宝石 1 0.5 - mosaicgem{id=SA测试宝石} 1 0.2 ``` - `mosaicgem` 后的参数为宝石内部名(与 `/mosaicgem give` 使用的 id 一致),也可用 `{id=宝石名}` 或 `{gem=宝石名}` 指定 - 掉落数量与概率沿用 MythicMobs 的掉落语法(数量、概率列) - 掉落的宝石会按宝石配置随机生成数值(如宝石本身配置了随机生成数值的部分) ### 拆卸 - 拆卸器与已镶嵌宝石的装备交互,成功后移除最后一个镶嵌的宝石 - 宝石按原始随机数值原样返还(优先进背包,背包满则掉落脚边) - 装备属性面板自动还原:`sx_attribute` 原有属性行恢复原始数值、宝石新增行整行移除;`vanilla_attribute` 修饰符按剩余宝石重建,被合并的原生修饰符自动还原;`enchant` 附魔按剩余宝石重建,原生附魔等级自动还原 - 失败时拆卸器消耗 1 个,装备与剩余宝石不受影响 - **宝石损毁判定**:每颗宝石可配置 `remove-destroy-chance`(0-100,百分比,缺省 0)。该判定**与拆卸器成功率无关**——拆卸器判定成功后才独立进行;命中时宝石损毁(消失、不返还),装备正常还原,玩家收到 `remove-destroyed` 提示;未命中则正常返还 ### 工具消耗与堆叠 - 一次行为只消耗 1 个工具,剩余工具继续留在光标/原槽位,可连续操作 ### 交互方式 | 方式 | 操作 | | --- | --- | | 铁砧 | 左侧放装备、右侧放工具(或反过来),结果槽预览,点击结果完成操作 | | 合成 | 在 2x2 随身合成或工作台中放入「1 个工具 + 1 个目标装备」,点击结果 | | 拖拽 | 鼠标左键拾取工具吸附到光标,再点击背包中的目标装备 | 三种方式均可在 `config.yml` 的 `settings.interactions` 中独立开关。 ## 指令与权限 | 指令 | 说明 | 默认权限节点(可在 permissions.yml 修改) | | --- | --- | --- | | `/mosaicgem reload` | 重载全部配置文件(缺失的 yml 自动补齐) | `mosaicgem.reload`(默认 OP) | | `/mosaicgem give <id> [数量] [玩家]` | 给予宝石/打孔器/拆卸器(自动匹配类型,不区分) | `mosaicgem.give`(默认 OP) | | `/mosaicgem debug [玩家]` | 查看物品的孔数、宝石、属性行等调试信息 | `mosaicgem.debug`(默认 OP) | | `/mosaicgem list <gem\|puncher\|remover>` | 列出已配置的物品 | `mosaicgem.list`(默认 OP) | | `/mosaicgem selftest` | 无玩家环境自检:配置解析、物品生成、数据读写、属性合并 | `mosaicgem.debug`(默认 OP) | 指令别名:`/mg`、`/mgem`。 ## 配置文件 配置文件位于 `plugins/MosaicGem/`,首次启动自动生成,修改后执行 `/mosaicgem reload` 热重载。 ### config.yml ```yaml settings: language: zh_cn # 消息语言:zh_cn(简体中文)/ en_us(English) max-holes: 6 # 全局孔数硬上限(所有来源孔数之和) gem-type-limit: # gemtype 标签全局数量限制(key=标签名, value=上限;0/缺省=不限制) 攻击: 2 # 带"攻击"标签的宝石一件装备最多 2 颗 interactions: anvil: true # 铁砧合成 crafting: true # 工作台/随身合成 drag: true # 拖拽工具到目标物品 ``` ### permissions.yml:指令权限 根目录的 `permissions.yml` 用于自定义每个指令所需的权限节点,不再硬编码: ```yaml commands: reload: default-level: op permissions: - mosaicgem.reload give: default-level: op permissions: - mosaicgem.give debug: default-level: op permissions: - mosaicgem.debug list: default-level: op permissions: - mosaicgem.list selftest: default-level: op permissions: - mosaicgem.debug ``` - 每个指令可配置多个节点,玩家满足任意一个即可使用 - `default-level` 为该指令的默认权限级(玩家未获得任何权限节点时的判定),可选值: - `op`:仅 OP 或以上(**默认**,全部指令默认均为 OP) - `true`:所有玩家 - `false`:无默认权限,只能通过权限插件授予 - `not-op`:非 OP 玩家 - `permissions: []`(空列表)表示不需要任何特定权限节点,仅按 `default-level` 判定 - 未在文件中配置的指令回退到内置默认节点与默认权限级(`op`) - 使用 LuckPerms 等权限插件时无需任何额外适配:直接给玩家/用户组分配这里配置的节点即可覆盖默认权限级(如 `/lp user <玩家> permission set mosaicgem.reload true`),Bukkit 的标准权限系统会自动交给 LuckPerms 判定 #### socket-lore:装备上的镶嵌信息(所有 buffType 共用) 打孔/镶嵌/拆卸成功后自动更新,展示孔位与宝石: ```yaml socket-lore: enabled: true lines: - '' - '&r&f[ &6镶嵌信息 &f]' - '&r&7孔位: &f{holes}&7/&f{max_holes}' gem-lines: - '&r&7宝石{index}: &f{gem}' - '&r&7 {value_lines}' empty-line: '&r&7暂无宝石' ``` 占位符: | 占位符 | 说明 | | --- | --- | | `{holes}` | 已经镶嵌的孔洞数(孔内宝石数) | | `{max_holes}` | 物品可用的孔洞数(已打孔数) | | `{gem_count}` | 已镶嵌宝石数量 | | `{index}` | 宝石序号(从 1 开始) | | `{gem}` | 宝石显示名 | | `{id}` | 宝石内部名 | | `{values}` | 宝石数值描述(单行合并,如 `攻击力:20.00、防御力:20.00`) | | `{value_lines}` | 宝石数值描述(每个属性单独一行) | #### sx-attribute-lore:SX-Attribute 属性面板合并(仅作用于 `buffType: sx_attribute` 的宝石) 把 `sx_attribute` 宝石的属性合并进装备 lore 属性行,由 SX-Attribute 读取;其他类型宝石不使用本段配置。 ```yaml sx-attribute-lore: enabled: true names: [] # 额外需要识别的属性名(一般不需要填) new-line: '&r&f{name}:&e{value}' # 宝石独有属性的新增行模版 bonus-format: '&r(+{bonus})' # 加成标注格式 ``` 占位符:`{name}` 属性名、`{value}` 属性总值、`{bonus}` 宝石加成值。 > 默认模板均带 `&r`(正体)。如需自定义颜色,可直接在模板中加入颜色代码(`&`、`§x` 十六进制或 `<#RRGGBB>`),`<#RRGGBB>` 会被解析为真实颜色,例如 `&r<#FFAA00>(<#1EFF5C>+{bonus}<#FFAA00>)`。 ### 多语言消息文件 所有玩家消息按语言拆分:`config.yml` 的 `settings.language` 决定加载 `messages/` 目录下的哪个文件(如 `zh_cn` 对应 `messages/zh_cn.yml`),`{xxx}` 为占位符。内置语言: - `messages/zh_cn.yml`:简体中文 - `messages/en_us.yml`:English(英文) 语言值不区分大小写,`-` 与 `_` 等价(如 `en-US` 与 `en_us` 均可)。若指定语言的文件不存在,会自动回退到中文文件;旧版 `messages.yml` 在中文语言下仍会被优先读取,用于保留已自定义的文案。 语言文件里还有两段名称映射表: - `attribute-names`:把原版属性 id(如 `minecraft:attack_damage`)映射成玩家可见的显示名(如 `攻击力`),`vanilla_attribute` 宝石的镶嵌信息 lore 使用 - `enchant-names`:把附魔 id(如 `minecraft:sharpness` → `锋利`、`ce:Wither` → `凋灵`)映射成玩家可见的显示名,`enchant` 宝石的镶嵌信息 lore 使用;未配置时原版附魔回退显示原始 id,CrazyEnchantments 附魔回退显示其 CustomName | 消息键 | 场景 | | --- | --- | | `punch-max-global` | 打孔:全局孔数已满 | | `punch-max-source` | 打孔:打孔器来源上限已满 | | `punch-fail` | 打孔:成功率失败(工具消耗) | | `socket-no-hole` | 镶嵌:装备没有孔位 | | `socket-full` | 镶嵌:孔位已满 | | `socket-repeat-limit` | 镶嵌:达到重复镶嵌次数上限 | | `socket-gemtype-limit` | 镶嵌:同 gemtype 标签宝石达到全局上限(settings.gem-type-limit) | | `socket-bufftype-unsupported` | 镶嵌:buffType 不受支持 | | `remove-empty` | 拆卸:没有已镶嵌宝石 | | `remove-fail` | 拆卸:成功率失败(工具消耗) | | `remove-destroyed` | 拆卸:拆卸成功但宝石损毁判定命中(宝石消失,不返还) | | `target-invalid` | 目标类型/材质不符合限制 | | `interaction-disabled` | 该交互方式被禁用 | | `tool-config-missing` | 工具在配置中不存在 | | `invalid-combination` | 工具+工具或无效组合 | | `inventory-full` | 返还宝石时背包已满 | 另有成功/指令/帮助/调试/自检类消息:`punch-success`、`socket-success`、`remove-success`、`reload-success`、`give-*`、`player-not-found`、`no-permission`、`help-*`、`debug-*`、`selftest-*` 等,完整键值见文件内注释。 ### items/ 目录(物品配置) `plugins/MosaicGem/items/` 下的任意 `.yml`(含子目录)都会被尝试识别为物品配置。文件顶层使用类型段声明物品类型,多个类型段可共存于同一文件,也可分散在任意多个文件中: ```yaml gems: # 宝石配置…… punchers: # 打孔器配置…… removers: # 拆卸器配置…… ``` - 类型段:`gems:`(宝石)、`punchers:`(打孔器)、`removers:`(拆卸器) - 旧版扁平格式(`gems.yml` / `punchers.yml` / `removers.yml` 顶层直接写物品 id)仍然兼容 - 同一 id 在多个文件中重复时,后加载的覆盖先前的(启动/重载日志会提示) ### items/gems.yml 首次启动时 `items/gems.yml` 会按已安装的软依赖自动生成(使用 `gems:` 段),避免展示用不到的示例宝石: - 始终生成:`原版测试宝石`(`vanilla_attribute`)、`附魔测试宝石`(`enchant`) - 已安装 SX-Attribute:额外生成 `SA测试宝石`(`sx_attribute`) - 已安装 MythicMobs:额外生成 `MM技能测试宝石`(`mythicmobs_skill`) **生成规则**:只要 `items/` 目录(含子目录)下已存在**任何** `.yml` 文件(无论内容是否合法),都不再生成任何默认物品配置文件(`gems.yml` / `punchers.yml` / `removers.yml`),避免覆盖自定义配置;之后新安装软依赖时,删除这些默认文件并执行 `/mosaicgem reload` 即可重新生成。以下是所有软依赖齐全时的生成示例: ```yaml gems: SA测试宝石: material: PAPER isEnchant: true name: "&cSA测试宝石" lore: - '&a▪ 伤害增加:${random_value}' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD repetitions: 5 gemtype: # 类型标签(可多个),配合 settings.gem-type-limit 限制数量 - 攻击 remove-destroy-chance: 0 # 拆卸损毁概率 0-100%(缺省 0 = 永不损毁;与拆卸器成功率无关) random: random_value: '10.00~20.00' buffType: 'sx_attribute' attribute: - '攻击力:${random_value}' - '防御力:${random_value}' 原版测试宝石: material: PAPER isEnchant: true name: "&b原版测试宝石" lore: - '&a▪ 攻击伤害:${random_value}' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD repetitions: 5 random: random_value: '5.00~10.00' buffType: 'vanilla_attribute' attribute: - 'minecraft:attack_damage: ${random_value}' - 'minecraft:attack_speed: 2' 附魔测试宝石: material: PAPER isEnchant: true name: "&d附魔测试宝石" lore: - '&a▪ 锋利等级:${random_value}' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD repetitions: 5 random: random_value: '1~5' buffType: 'enchant' attribute: - 'minecraft:sharpness: ${random_value}' - 'minecraft:unbreaking: 1' MM技能测试宝石: material: PAPER isEnchant: true name: "&eMM技能测试宝石" lore: - '&a▪ 技能: TestSkill' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD repetitions: 5 buffType: 'mythicmobs_skill' attribute: - 'TestSkill @onSwing' ``` - `random` 支持多个随机数,格式 `最小值~最大值`,小数位数按配置自动保留;生成后数值固定到该宝石实例 - `gemtype`:宝石类型标签(字符串列表,可多个,如 `['攻击', '火属性']`)。配合 `config.yml` 的 `settings.gem-type-limit` 限制一件装备上同一标签宝石的数量上限;不填则为空列表,不参与类型计数 - `remove-destroy-chance`:拆卸时宝石损毁(消失)概率,0~100 对应 0%~100%(缺省 0 = 永不损毁;越界自动钳制)。**与拆卸器成功率无关**:拆卸器判定成功后仍需独立过此判定,命中则宝石不返还 - `sx_attribute`:属性行写进装备 lore,参与 `sx-attribute-lore` 面板合并(同属性求和、显示总值与加成) - `vanilla_attribute`:属性行直接附加为原版属性修饰符(同属性多宝石合并为一个修饰符,物品原生同属性修饰符合并进总值),**不会**修改/覆盖装备 lore - `enchant`:属性行直接附加/叠加到装备附魔(已存在则原等级 + 宝石等级,不存在则新建;多宝石同类附魔求和;原生附魔等级存物品数据,取下自动还原) - `mythicmobs_skill`:属性行是 MythicMobs 技能名(支持 `技能名 @触发器` 的 MythicCrucible 格式);安装 MythicCrucible 时由其物品技能系统触发,否则回退到近战攻击触发;镶嵌信息直接显示技能名 - 原版属性 id 的显示名在语言文件 `attribute-names` 段配置;附魔 id 的显示名在 `enchant-names` 段配置,未配置时显示原始 id(CrazyEnchantments 附魔回退显示其 CustomName) - CrazyEnchantments 自定义附魔格式:`ce:附魔名: 等级`(如 `ce:Wither: 2`),需要服务器已安装 CrazyEnchantments;原版附魔格式:`minecraft:sharpness: 等级`,裸 id(如 `sharpness`)会自动补 `minecraft:` 前缀 - `targetMaterial` 与 `targetType` 同时配置时需**同时满足**才可操作 - 支持的装备类型:`SWORD`、`SPEAR`、`TRIDENT`、`AXE`、`HOE`、`SHOVEL`、`PICKAXE`、`BOW`、`CROSSBOW`、`MACE`、`SHIELD`、`HELMET`、`CHESTPLATE`、`LEGGINGS`、`BOOTS`、`ELYTRA` ### items/punchers.yml ```yaml punchers: 测试打孔器: material: PAPER isEnchant: true name: "&c测试打孔器" lore: - '我是lore描述' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD rate: 10 # 成功率(0-100,百分比) holesnum: 2 # 该类打孔器给同一物品的孔数上限 ``` ### items/removers.yml ```yaml removers: 测试拆卸器: material: PAPER isEnchant: true name: "&c测试拆卸器" lore: - '我是lore描述' custom-model-data: 0 targetType: - SWORD targetMaterial: - IRON_SWORD rate: 10 # 成功率(0-100,百分比) ``` ## 数据存储与属性计算 - 工具物品(宝石/打孔器/拆卸器)通过物品的 custom data 组件(PersistentDataContainer)标记类型与内部名 - 宝石实例生成时固定随机数值并写入组件数据 - 装备记录:总孔数、各来源打孔器的孔数、已镶嵌宝石列表(实例 UUID、随机数值)、属性合并前的原始属性行 - 原版属性:被合并进宝石修饰符的物品原生修饰符会存入物品 PDC,宝石取下后用于还原 - 附魔:物品的原生附魔等级(原版 + CrazyEnchantments)会存入物品 PDC,宝石取下后按原生等级还原 - 属性合并行与镶嵌信息行使用 `§X` 标记: - 合并行中 `§X` 之前的数值由 SX-Attribute 读取,之后的 `(+加成)` 不影响计算 - 镶嵌信息行以 `§X` 开头,SX-Attribute 整行忽略,仅作展示 - 物品原有 lore 中的 `§r`、`§x` 十六进制色、斜体/加粗等按字面文本原样写回,不会丢失 ## 构建 ```powershell .\gradlew.bat build ``` 构建产物:`build/libs/MosaicGem-1.0.2.jar` 已发布版本可从 [GitHub Releases](https://github.com/W-IBARI/MosaicGem/releases) 直接下载 jar(含历史版本)。 开发环境:JDK 25、Gradle 9.6.1(项目自带 Wrapper)、`dev.folia:folia-api:26.1.2.build.8-stable`(针对 26.x 最低 stable 编译以兼容全部 26.x)。 ## 常见问题 **Q:属性不生效?** 确认 `SX-Item` 与 `SX-Attribute` 已安装并启用,宝石的 `buffType` 为 `sx_attribute`,且装备属性面板中存在合并后的属性行;`vanilla_attribute` 宝石则检查物品属性面板中是否存在对应原版属性。 **Q:`ce:` 附魔宝石不生效?** 确认服务器已安装并启用 [CrazyEnchantments](https://github.com/Crazy-Crew/CrazyEnchantments/),且 `ce:` 后面的附魔名与 CrazyEnchantments 配置中的附魔名完全一致(如 `ce:Wither`);MosaicGem 通过运行时桥接调用其 API,无需额外依赖。 **Q:MythicMobs 怪物不掉插件宝石?** 确认 MythicMobs 已安装并先于 MosaicGem 加载(插件声明了软依赖);在怪物或掉落表中使用 `mosaicgem:宝石内部名` 作为掉落,并执行 `/mm reload`(或重启服务器)让掉落重新解析。MosaicGem 启动时会自动触发一次掉落/怪物配置重载以便注册自定义掉落。 **Q:`mythicmobs_skill` 宝石技能不触发?** 确认宝石的 `buffType` 为 `mythicmobs_skill`、`attribute` 中的技能名与 MythicMobs 中配置的技能完全一致,且该装备已镶嵌;安装 MythicCrucible 时由它的物品技能系统按 `@触发器` 触发(默认 `@onSwing`),未安装时仅近战攻击触发(`@onSwing` / `@onAttack` / `@onHit`);技能冷却、条件、目标选择等由 MythicMobs 自行处理。 **Q:如何排查配置问题?** 执行 `/mosaicgem selftest` 自检配置解析、物品生成、数据读写与属性合并;执行 `/mosaicgem debug` 查看手持物品的组件数据。 ## 开源许可 本插件基于 [GNU LGPL v3](https://www.gnu.org/licenses/lgpl-3.0.html) 开源许可发布(完整条款见仓库内 [LICENSE](LICENSE) 文件)。 允许任何人在遵守 LGPL-3.0 条款的前提下使用、修改、分发本插件;修改后对外分发时需保留本许可声明,并以相同许可开源。 [/MD]
作者
IBARI
下载
8
查看
253
首次发布
最后更新

评分

0.00 星 0 次评分

最新更新

  1. 1.0.3更新

    宝石定义新增 gemtype 字段(字符串列表,可多标签),如 gemtype: [攻击, 火属性] config.yml 新增全局配置...
  2. 1.0.2版本更新

    加入了宝石拆卸时的损毁率的设计,该效果与拆卸器的损毁概率相互独立 重构了items文件夹下的yml文件的生成规则
  3. 1.0.1更新

    拓展targettype类型,现支持弓,弩,铲,锄,镐,重锤,矛类,修复lore描述的相关问题
后退
顶部 底部