← ClaudeAtlas

nms-attribute-modifierlisted

透過 NMS AttributeMap/AttributeModifier 動態修改實體屬性(MAX_HEALTH、ATTACK_DAMAGE 等),比 Bukkit API 更精確(Paper NMS + Mojang-mapped)/ Dynamically modify entity attributes via NMS AttributeMap/AttributeModifier
MrPippi/MJP-Claude-Skills · ★ 1 · Data & Documents · score 70
Install: claude install-skill MrPippi/MJP-Claude-Skills
# NMS Attribute Modifier / NMS 屬性修改器 ## 技能名稱 / Skill Name `nms-attribute-modifier` ## 目的 / Purpose 透過 NMS `AttributeMap`、`AttributeInstance`、`AttributeModifier` 精確控制實體屬性,支援加法、倍乘、基底值修改,實現 RPG 裝備加成、Buff/Debuff 系統。 ## NMS 版本需求 / NMS Version Requirements - Paper 1.21 – 1.21.3 - Paperweight userdev 1.7.2+ - Mojang mappings(已由 Paper 1.20.5+ 原生支援) ## 觸發條件 / Triggers - 「attribute modifier」「屬性修改」「AttributeMap」「動態屬性」「entity attribute」 - 「MAX_HEALTH」「ATTACK_DAMAGE」「MOVEMENT_SPEED」「屬性加成」 - 「Buff Debuff」「nms attribute」「attribute instance」 ## 輸入參數 / Inputs | 參數 | 範例 | 說明 | |------|------|------| | `package_name` | `com.example.rpg` | 產出類別所在 package | | `class_name` | `AttributeUtil` | 工具類名稱 | ## 輸出產物 / Outputs - `AttributeUtil.java` — 屬性讀寫工具 - `ModifierBuilder.java` — AttributeModifier 建立器 ## Paperweight 建置設定 / Build Setup 參見 `Skills/paper-nms/PLATFORM.md`。關鍵依賴: ```groovy dependencies { paperweight.paperDevBundle('1.21.1-R0.1-SNAPSHOT') } ``` ## 代碼範本 / Code Template ### `AttributeUtil.java` ```java package com.example.rpg; import net.minecraft.core.Holder; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeInstance; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import org.bukkit.craftbukkit.v1_21_R1.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; import java.util.Optional; @SuppressWarnings("UnstableApiUs