NMS Entityv1.0.0已發布

NMS 屬性修改器

NMS Attribute Modifier

透過 NMS AttributeMap/AttributeModifier 動態修改實體屬性,實現 RPG 裝備加成與 Buff/Debuff 系統(Paper NMS + Mojang mappings)。

nmsattributemodifierrpgbuffdebuffmojang-mapped
更新:2026年4月30日GitHub

NMS Attribute Modifier

目的

透過 NMS AttributeMapAttributeInstanceAttributeModifier 精確控制實體屬性,支援加法、倍乘、基底值修改,實現 RPG 裝備加成、Buff/Debuff 系統。


平台需求

  • Paper 1.21 – 1.21.3
  • Paperweight userdev 1.7.2+
  • Mojang mappings(Paper 1.20.5+ 原生支援)
  • Java 21

產生的代碼

AttributeUtil.java

// 取得屬性最終值(含所有 modifier 計算後)
double hp = AttributeUtil.getValue(player, Attributes.MAX_HEALTH);

// 新增加法 modifier(+10 攻擊力)
AttributeUtil.addModifier(player, Attributes.ATTACK_DAMAGE,
    ModifierBuilder.additive("sword-bonus", 10.0));

// 移除指定 modifier
AttributeUtil.removeModifier(player, Attributes.ATTACK_DAMAGE, "sword-bonus");

ModifierBuilder.java(建立器)

// 加法(+value)
AttributeModifier mod = ModifierBuilder.additive("buff-id", 5.0);

// 倍乘基底(baseValue * value)
AttributeModifier mod = ModifierBuilder.multiplyBase("speed-boost", 0.2);

// 倍乘全部(finalValue * value)
AttributeModifier mod = ModifierBuilder.multiplyTotal("debuff", -0.1);

執行緒安全

  • AttributeUtil 存取實體狀態,必須在主執行緒呼叫