配置目录
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/ | 运行时数据目录,通常不手动编辑。 |
建议修改顺序
- 先在
attributes/定义属性 ID、展示名、数值类型和上限。 - 再在
lore_formats/定义旧物品 Lore 的读取或展示格式。 - 接着在
damage_types/配置伤害阶段。 - 最后接入 Item、Forge、Strengthen、Gem 等模块写入 PDC 属性。
- 每次改完先运行
/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| 字段 | 说明 |
|---|---|
cause | Bukkit DamageCause 名称。 |
damage_type | 使用的 damage_types/*.yml 伤害类型 ID。 |
damage | 进入属性管线前的基础伤害。 |
当 hard_lock_damage: true 时,未命中映射的原版伤害会回退到 default_damage_type;当为 false 时,未命中的伤害保留原版行为。
配置修改顺序
推荐按以下顺序调整:
- 在
attributes/中确定属性 ID、显示名、默认展示格式。 - 在
config.yml的default_profile中补齐玩家基础值。 - 在
damage_types/中配置伤害管线。 - 在
attribute_balance.yml中调整分数权重。 - 在装备、宝石、强化、锻造或物品模块中写入对应属性。
- 使用
/ea lint检查配置问题。 - 使用
/ea preview或/ea dump验证玩家最终属性。
排查建议
- 属性不显示:检查属性文件是否加载、Lore 格式是否匹配、物品装配是否触发刷新。
- 属性不生效:检查属性 ID 是否与伤害类型、条件或外部模块一致。
- 环境伤害异常:检查
hard_lock_damage与allowed_damage_causes。 - 生命不同步:检查资源是否设置
sync_to_bukkit: true,以及max_health_vanilla等原版属性是否冲突。 - 数值膨胀:为核心输出、防御、暴击等属性配置
scaling_curves。