Skip to content

配置目录

EmakiAttribute 的配置由主配置、属性定义、伤害类型、条件、Lore 格式和属性平衡文件组成。先定属性 ID 和命名规则,再扩展伤害类型和装备来源。

默认目录结构

text
plugins/EmakiAttribute/
├── config.yml
├── attribute_balance.yml
├── attributes/
├── damage_types/
├── conditions/
├── lore_formats/
├── lang/
└── data/
路径作用
config.yml主配置,控制默认资源、伤害接管、自然回复、衰减曲线和原版伤害映射。
attribute_balance.yml属性战力分数与平衡参数。
attributes/单个属性定义,例如攻击、防御、暴击、资源、原版属性映射。
damage_types/伤害类型管线,例如物理、投射物、法术。
conditions/装备、物品或模块使用的属性条件。
lore_formats/属性展示格式模板。
lang/多语言文本。
data/运行时数据目录,通常不手动编辑。

建议修改顺序

  1. 先在 attributes/ 定义属性 ID、展示名、数值类型和上限。
  2. 再在 lore_formats/ 定义旧物品 Lore 的读取或展示格式。
  3. 接着在 damage_types/ 配置伤害阶段。
  4. 最后接入 Item、Forge、Strengthen、Gem 等模块写入 PDC 属性。
  5. 每次改完先运行 /ea lint,再 /ea reload/ea resync <player>

主配置关键字段

字段说明
version配置版本,由默认资源同步维护。
language使用的语言文件 ID。
hard_lock_damage是否接管未命中白名单的原版伤害。
default_damage_type回退使用的默认伤害类型。
regen_interval_ticks资源自然回复间隔。
sync_delay_ticks属性同步到 Bukkit 的延迟。
default_profile默认属性与资源基础值。
synthetic_hit_feedback接管原版伤害后的击退和受伤音效补偿。
scaling_curves属性超过阈值后的衰减规则。
allowed_damage_causes原版 DamageCause 到属性伤害类型的映射。

默认资源与属性

default_profile 定义玩家初始化时拥有的资源和属性基础值:

yaml
default_profile:
  resources:
    health:
      display_name: "生命值"
      default_max: 20.0
      min_max: 1.0
      max_max: 2048.0
      sync_to_bukkit: true
      full_on_init: true
    mana:
      display_name: "法力值"
      default_max: 100.0
      min_max: 0.0
      max_max: 99999.0
      sync_to_bukkit: false
      full_on_init: true
  attributes:
    physical_attack: 0.0
    physical_defense: 0.0
    health_regen: 0.1
    mana_regen: 0.1

资源用于生命、法力、怒气等可变化数值;属性用于装备、宝石、强化、技能和伤害计算。sync_to_bukkit: true 的资源会同步到 Bukkit 对应表现,常用于生命值。

原版伤害映射

allowed_damage_causes 决定哪些 Bukkit DamageCause 会进入 Attribute 结算:

yaml
allowed_damage_causes:
  - cause: FALL
    damage_type: physical
    damage: 1
  - cause: LAVA
    damage_type: physical
    damage: 1
字段说明
causeBukkit DamageCause 名称。
damage_type使用的 damage_types/*.yml 伤害类型 ID。
damage进入属性管线前的基础伤害。

hard_lock_damage: true 时,未命中映射的原版伤害会回退到 default_damage_type;当为 false 时,未命中的伤害保留原版行为。

配置修改顺序

推荐按以下顺序调整:

  1. attributes/ 中确定属性 ID、显示名、默认展示格式。
  2. config.ymldefault_profile 中补齐玩家基础值。
  3. damage_types/ 中配置伤害管线。
  4. attribute_balance.yml 中调整分数权重。
  5. 在装备、宝石、强化、锻造或物品模块中写入对应属性。
  6. 使用 /ea lint 检查配置问题。
  7. 使用 /ea preview/ea dump 验证玩家最终属性。

排查建议

  • 属性不显示:检查属性文件是否加载、Lore 格式是否匹配、物品装配是否触发刷新。
  • 属性不生效:检查属性 ID 是否与伤害类型、条件或外部模块一致。
  • 环境伤害异常:检查 hard_lock_damageallowed_damage_causes
  • 生命不同步:检查资源是否设置 sync_to_bukkit: true,以及 max_health_vanilla 等原版属性是否冲突。
  • 数值膨胀:为核心输出、防御、暴击等属性配置 scaling_curves