From c7826522dfbf264067d164882255b5bb18fa2455 Mon Sep 17 00:00:00 2001 From: Shane Bee Date: Wed, 10 Jul 2024 09:00:45 -0700 Subject: [PATCH] ItemUtils - fix error when setting damage lower than 0 (#6870) --- src/main/java/ch/njol/skript/bukkitutil/ItemUtils.java | 2 +- .../skript/tests/syntaxes/expressions/ExprDurability.sk | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/bukkitutil/ItemUtils.java b/src/main/java/ch/njol/skript/bukkitutil/ItemUtils.java index 9ccd2aa370c..b216f645127 100644 --- a/src/main/java/ch/njol/skript/bukkitutil/ItemUtils.java +++ b/src/main/java/ch/njol/skript/bukkitutil/ItemUtils.java @@ -105,7 +105,7 @@ public static void setMaxDamage(ItemStack itemStack, int maxDamage) { public static void setDamage(ItemStack itemStack, int damage) { ItemMeta meta = itemStack.getItemMeta(); if (meta instanceof Damageable) { - ((Damageable) meta).setDamage(damage); + ((Damageable) meta).setDamage(Math.max(0, damage)); itemStack.setItemMeta(meta); } } diff --git a/src/test/skript/tests/syntaxes/expressions/ExprDurability.sk b/src/test/skript/tests/syntaxes/expressions/ExprDurability.sk index a35190f0a80..3935ad883b6 100644 --- a/src/test/skript/tests/syntaxes/expressions/ExprDurability.sk +++ b/src/test/skript/tests/syntaxes/expressions/ExprDurability.sk @@ -13,6 +13,15 @@ test "durability": assert damage of {_i} is {_max} with "max item damage failed" assert durability of {_i} is 0 with "zero item durability failed" + # Test out of bound values + set durability of {_i} to 500 + assert damage of {_i} is 0 with "damage of item should be 0 when setting durability higher than max" + assert durability of {_i} is {_max} with "durability of item should be max when setting higher than max" + + set damage of {_i} to -1 + assert damage of {_i} is 0 with "damage of item should be 0 when setting damage less than 0" + assert durability of {_i} is {_max} with "durability of item should be max when setting damage below 0" + test "durability - custom" when running minecraft "1.20.5": set {_i} to 1 of iron sword set max durability of {_i} to 1000