From 0d109e865c9854f5c0ffe8d292dc6971f4237ebc Mon Sep 17 00:00:00 2001 From: Doc Date: Sun, 23 Jan 2022 11:37:48 -0300 Subject: [PATCH] #999: Prevent non-item cooldowns --- .../org/bukkit/craftbukkit/entity/CraftHumanEntity.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index 212c9fa06..1e973add1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -473,14 +473,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @Override public boolean hasCooldown(Material material) { - Preconditions.checkArgument(material != null, "material"); + Preconditions.checkArgument(material != null, "Material cannot be null"); + Preconditions.checkArgument(material.isItem(), "Material %s is not an item", material); return getHandle().getCooldowns().isOnCooldown(CraftMagicNumbers.getItem(material)); } @Override public int getCooldown(Material material) { - Preconditions.checkArgument(material != null, "material"); + Preconditions.checkArgument(material != null, "Material cannot be null"); + Preconditions.checkArgument(material.isItem(), "Material %s is not an item", material); ItemCooldown.Info cooldown = getHandle().getCooldowns().cooldowns.get(CraftMagicNumbers.getItem(material)); return (cooldown == null) ? 0 : Math.max(0, cooldown.endTime - getHandle().getCooldowns().tickCount); @@ -488,7 +490,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @Override public void setCooldown(Material material, int ticks) { - Preconditions.checkArgument(material != null, "material"); + Preconditions.checkArgument(material != null, "Material cannot be null"); + Preconditions.checkArgument(material.isItem(), "Material %s is not an item", material); Preconditions.checkArgument(ticks >= 0, "Cannot have negative cooldown"); getHandle().getCooldowns().addCooldown(CraftMagicNumbers.getItem(material), ticks);