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
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() { }
/**