EmakiGem 总览
EmakiGem 是装备宝石系统,让装备拥有可开孔、镶嵌、提取、升级的宝石槽位,并可选地接入 EmakiAttribute 属性系统。
基本信息
| 属性 | 值 |
|---|---|
| 版本 | 1.2.0 |
| artifactId | emaki-gem |
| 主类 | emaki.jiuwu.craft.gem.EmakiGemPlugin |
| 根命令 | /emakigem |
| 别名 | /egem, /eg |
| 强依赖 | EmakiCoreLib |
| 软依赖 | EmakiAttribute, PlaceholderAPI |
信息
EmakiGem 为闭源模块,通过 private-modules profile 纳入构建。
它做了什么
EmakiGem 围绕"装备上的宝石"这个概念展开,核心工作包括:
- 定义宝石(属性、类型、等级)、装备模板(孔位配置、匹配规则)和开孔器
- 实现开孔、镶嵌、提取、升级四个操作流程,每个流程都有对应的 GUI
- 通过
GemSnapshotBuilder构建宝石层快照,控制宝石镶嵌后在装备 Lore 中的展示 - 通过
GemPdcAttributeWriter把宝石属性写入 PDC,和 EmakiAttribute 对接 - 通过
GemStateService管理装备上的宝石状态,所有数据存储在物品的 PDC 中 - 管理员可以用
/emakigem clearstate清除物品上的宝石层数据
config.yml 完整格式
yaml
# 配置文件版本
config_version: "1.2.0"
# 语言文件标识
language: zh_CN
# 是否在首次启动时释放默认资源
release_default_data: true
# ============================================================
# 开孔器配置 (Socket Openers)
# ============================================================
socket_openers:
attack_drill:
enabled: true
# 开孔器物品来源
item_source: "minecraft-blaze_rod"
# 此开孔器可以开启的宝石类型
opens_gem_types:
- "attack"
# 成功开孔后是否消耗开孔器
consume_on_success: true
# 成功时执行的动作
success_actions:
- "playsound sound=block.anvil.use volume=1.0 pitch=1.2"
- "sendmessage message=<green>成功开启了攻击孔位!"
# 失败时执行的动作
failure_actions:
- "playsound sound=entity.villager.no volume=1.0 pitch=0.8"
- "sendmessage message=<red>开孔失败。"
defense_drill:
enabled: true
item_source: "minecraft-iron_ingot"
opens_gem_types:
- "defense"
consume_on_success: true
success_actions:
- "playsound sound=block.anvil.use volume=1.0 pitch=1.2"
failure_actions: []
universal_drill:
enabled: true
item_source: "minecraft-nether_star"
opens_gem_types:
- "attack"
- "defense"
- "utility"
- "universal"
consume_on_success: true
success_actions:
- "playsound sound=block.anvil.use volume=1.0 pitch=1.5"
failure_actions: []
# ============================================================
# 镶嵌成功率配置 (Inlay Success)
# ============================================================
inlay_success:
enabled: true
# 默认成功率(百分比)
default_chance: 100
# 成功率计算公式(可选,支持 exp4j 表达式)
# 可用变量:gem_tier, slot_index, current_gem_count
rate_formula: ""
# 失败时的处理方式:none / destroy_gem / return_gem
failure_action: "return_gem"
# ============================================================
# 升级配置 (Upgrade)
# ============================================================
upgrade:
# 全局成功率表(等级 → 百分比)
global_success_rates:
1: 100
2: 80
3: 60
4: 40
5: 20
# 全局失败惩罚:none / downgrade / destroy
global_failure_penalty: "none"
# 数字格式化
number_format: "#,##0.##"
# 全局权限(可选)
permission: ""
# ============================================================
# GUI 配置引用
# ============================================================
gui:
gem: "gem/default"
open: "open/default"
upgrade: "upgrade/default"关于 inlay_success 的几点说明:rate_formula 支持 exp4j 数学表达式,可以根据宝石品阶(gem_tier)、孔位索引(slot_index)、当前已镶嵌数量(current_gem_count)动态计算成功率。如果留空,则使用 default_chance。failure_action 决定镶嵌失败时宝石的去向——return_gem 退回玩家,destroy_gem 直接销毁,none 也是退回。
默认开孔器一览
| 开孔器 ID | 物品来源 | 可开启类型 | 说明 |
|---|---|---|---|
attack_drill | 烈焰棒 | attack | 攻击孔位开孔器 |
defense_drill | 铁锭 | defense | 防御孔位开孔器 |
universal_drill | 下界之星 | 全部 | 万能开孔器,可以开启任何类型的孔位 |
默认资源目录
| 文件/目录 | 说明 |
|---|---|
config.yml | 主配置 |
gems/ | 宝石定义(默认 3 个) |
items/ | 装备模板(默认 3 个) |
gui/gem/ | 宝石镶嵌/提取 GUI |
gui/open/ | 开孔 GUI |
gui/upgrade/ | 升级 GUI |
conditions/ | 条件配置 |
lang/ | 语言文件 |
默认内容
| 内容类型 | 数量 |
|---|---|
| 宝石定义 | 3 |
| 装备模板 | 3 |