From be9ef980b9aa272acf298a337da8157c6a620e95 Mon Sep 17 00:00:00 2001 From: md_5 Date: Wed, 19 Apr 2017 18:04:32 +1000 Subject: Implement cooldown API --- .../craftbukkit/entity/CraftHumanEntity.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index 0397756c..62aab50b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -26,6 +26,7 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryView; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.inventory.CraftMerchant; import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.inventory.EntityEquipment; import org.bukkit.permissions.PermissibleBase; import org.bukkit.permissions.Permission; @@ -416,4 +417,27 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { public int getExpToLevel() { return getHandle().getExpToLevel(); } + + @Override + public boolean hasCooldown(Material material) { + Preconditions.checkArgument(material != null, "material"); + + return getHandle().di().a(CraftMagicNumbers.getItem(material)); // PAIL: getCooldownTracker + } + + @Override + public int getCooldown(Material material) { + Preconditions.checkArgument(material != null, "material"); + + ItemCooldown.Info cooldown = getHandle().di().a.get(CraftMagicNumbers.getItem(material)); + return (cooldown == null) ? 0 : Math.max(0, cooldown.b - getHandle().di().b); + } + + @Override + public void setCooldown(Material material, int ticks) { + Preconditions.checkArgument(material != null, "material"); + Preconditions.checkArgument(ticks >= 0, "Cannot have negative cooldown"); + + getHandle().di().a(CraftMagicNumbers.getItem(material), ticks); + } } -- cgit v1.2.3