Skip to content

EmakiGem 总览

EmakiGem 是装备宝石系统,让装备拥有可开孔、镶嵌、提取、升级的宝石槽位,并可选地接入 EmakiAttribute 属性系统。

基本信息

属性
版本1.2.0
artifactIdemaki-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_chancefailure_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

Released under the GPL-3.0 License