From 37ca63ae63f7a49b17882c8011769d8016e9ac65 Mon Sep 17 00:00:00 2001 From: Kqliber Date: Fri, 25 Apr 2025 19:29:46 +0100 Subject: [PATCH 1/2] update dependencies --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 32ba863..c8b17aa 100644 --- a/pom.xml +++ b/pom.xml @@ -30,13 +30,13 @@ org.spigotmc spigot-api - 1.20-R0.1-SNAPSHOT + 1.21.4-R0.1-SNAPSHOT provided me.clip placeholderapi - 2.11.3 + 2.11.6 provided From 7c8e3f564c73c8af0267e4425f7d675acc5bbb17 Mon Sep 17 00:00:00 2001 From: Kqliber Date: Fri, 25 Apr 2025 19:31:58 +0100 Subject: [PATCH 2/2] support max damage item component tag --- .../papi/expansion/player/PlayerUtil.java | 20 +++++++++++++++++-- .../papi/expansion/player/VersionHelper.java | 5 +++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java index cd37449..4b988bb 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java @@ -1,6 +1,5 @@ package com.extendedclip.papi.expansion.player; -import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPIPlugin; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -8,6 +7,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.Damageable; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; @@ -199,7 +199,23 @@ public static ItemStack itemInHand(Player p) { } public static int durability(ItemStack item) { - return item != null ? item.getType().getMaxDurability() - item.getDurability() : 0; + if (item == null) { + return 0; + } + + if (!VersionHelper.IS_1_21_OR_NEWER) { + return item.getType().getMaxDurability() - item.getDurability(); + } + + final Damageable meta = (Damageable) item.getItemMeta(); + if (meta == null) { + return 0; + } + + if (meta.hasMaxDamage()) { + return meta.getMaxDamage() - meta.getDamage(); + } + return item.getType().getMaxDurability() - meta.getDamage(); } public static int getEmptySlots(Player p) { diff --git a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java index 11a218b..69b5a7b 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java @@ -35,6 +35,11 @@ public final class VersionHelper { */ public static final boolean IS_1_20_4_OR_NEWER = VERSION >= 1_20_4; + /** + * @see org.bukkit.inventory.meta.Damageable#getMaxDamage() + */ + public static final boolean IS_1_21_OR_NEWER = VERSION >= 1_21_0; + private VersionHelper() { } /**