附魔上限
QI 可以限制单件物品的附魔总等级(所有附魔等级之和),在铁砧 / 附魔台时强制执行。配置文件:plugins/QinhItems/enchant_limits.yml。
1. 概念
附魔总等级 = 一件物品上所有附魔等级相加。 例:锋利 V(5) + 耐久 III(3) + 火焰附加 II(2) = 10。
优先级:物品显式 enchant_max_total_level > 按类型 / 品质自动计算。
自动计算公式:
有效上限 = min(type_defaults[物品类型], tier_defaults[物品品质])2. enchant_limits.yml 结构
yaml
type_defaults:
# 各类型上限
weapon: 50
armor: 40
helmet: 40
chestplate: 40
leggings: 40
boots: 40
shield: 30
bow: 40
crossbow: 40
trident: 40
fishing_rod: 25
tool: 40
shears: 15
flint_and_steel: 10
elytra: 30
horse_armor: 30
ring: 25
necklace: 25
bracelet: 25
accessory: 25
gem: 0 # 不可附魔
material: 0
consumable: 0
food: 0
scroll: 0
misc: 20
tier_defaults:
# 各品质上限(与类型上限取较小值)
TRASH: 5
COMMON: 10
UNCOMMON: 18
RARE: 25
VERY_RARE: 30
LEGENDARY: 40
EPIC: 45
MYTHICAL: 50
MAGICAL: 35
UNIQUE: 553. 计算示例
| 物品 | 类型上限 | 品质上限 | 有效上限 |
|---|---|---|---|
| LEGENDARY 武器 | weapon=50 | LEGENDARY=40 | min=40 |
| RARE 戒指 | ring=25 | RARE=25 | 25 |
| MYTHICAL 胸甲 | chestplate=40 | MYTHICAL=50 | min=40 |
未映射的类型 / 品质默认回退 30。
4. 物品级覆盖
在物品定义里写 enchant_max_total_level 直接指定,覆盖自动计算:
yaml
my_sword:
enchantments:
sharpness: 5
enchant_max_total_level: 12 # 这把剑最多 12 级附魔总和5. 执行机制
EnchantLimitAnvilListener 在玩家用铁砧 / 附魔台给物品加附魔时,检查是否超过有效上限,超了则阻止。EnchantmentLimitsConfig 在启动时从 enchant_limits.yml 加载,/qi reload 时重载。