Implement cooldown API

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2017-04-19 18:04:32 +10:00
parent 1e5121ed78
commit 8d75072425
3 changed files with 62 additions and 9 deletions

View File

@@ -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);
}
}