From 8581299ef932e13b45e2c02b4f1f52ab61dc5519 Mon Sep 17 00:00:00 2001 From: L1-An Date: Tue, 25 Nov 2025 22:49:07 +0100 Subject: [PATCH] =?UTF-8?q?feat(bukkit-util):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=89=A9=E5=93=81=E5=B1=9E=E6=80=A7=E4=BF=AE=E6=94=B9=E5=99=A8?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 attributeModifiers 映射存储属性修改器 - 实现 addAttributeModifier 方法添加自定义属性 - 在物品构建时应用属性修改器到物品元数据 --- .../taboolib/platform/util/ItemBuilder.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/module/bukkit/bukkit-util/src/main/kotlin/taboolib/platform/util/ItemBuilder.kt b/module/bukkit/bukkit-util/src/main/kotlin/taboolib/platform/util/ItemBuilder.kt index fc3d2441d..ddbb77872 100644 --- a/module/bukkit/bukkit-util/src/main/kotlin/taboolib/platform/util/ItemBuilder.kt +++ b/module/bukkit/bukkit-util/src/main/kotlin/taboolib/platform/util/ItemBuilder.kt @@ -6,6 +6,7 @@ import org.bukkit.ChatColor import org.bukkit.Color import org.bukkit.Material import org.bukkit.NamespacedKey +import org.bukkit.attribute.Attribute import org.bukkit.attribute.AttributeModifier import org.bukkit.block.banner.Pattern import org.bukkit.enchantments.Enchantment @@ -21,6 +22,8 @@ import taboolib.library.xseries.XAttribute import taboolib.library.xseries.XMaterial import taboolib.module.chat.colored import java.util.* +import kotlin.collections.ArrayList +import kotlin.collections.HashMap /** * 通过现有物品构建新的物品 @@ -159,8 +162,27 @@ open class ItemBuilder { */ var itemModel: NamespacedKey? = null + /** + * 1.20.5 + * Hide Tooltip + * 完全不显示 Tooltip 信息 + */ var isHideTooltip: Boolean = false + /** + * 1.20.5 + * Attribute Modifier + */ + val attributeModifiers = HashMap() + + /** + * 1.20.5 + * 添加属性修改器 + */ + fun addAttributeModifier(attribute: Attribute, modifier: AttributeModifier) { + attributeModifiers[attribute] = modifier + } + /** * 唯一化 */ @@ -334,6 +356,13 @@ open class ItemBuilder { itemMeta.isHideTooltip = isHideTooltip } catch (_: Throwable) { } + // Attribute Modifier + try { + attributeModifiers.forEach { (attribute, modifier) -> + itemMeta.addAttributeModifier(attribute, modifier) + } + } catch (_: Throwable) { + } // 唯一化 try { if (unique) {