diff --git a/src/main/java/fun/ogre/ogredupealias/events/InteractionListener.java b/src/main/java/fun/ogre/ogredupealias/events/InteractionListener.java index 5bc8c83..e1c3866 100644 --- a/src/main/java/fun/ogre/ogredupealias/events/InteractionListener.java +++ b/src/main/java/fun/ogre/ogredupealias/events/InteractionListener.java @@ -2,22 +2,49 @@ package fun.ogre.ogredupealias.events; import fun.ogre.ogredupealias.data.PlacedStructures; import fun.ogre.ogredupealias.plugin.InventoryPresets; +import fun.ogre.ogredupealias.utils.Cooldown; +import fun.ogre.ogredupealias.utils.Text; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; + +import java.util.UUID; public class InteractionListener implements Listener { + private static final Cooldown aAppleCooldown = new Cooldown<>(); + @EventHandler public void onClick(PlayerInteractEvent e) { try { this.processTable(e); + this.handleEApples(e); } catch (Exception ignore) {} } + private void handleEApples(PlayerInteractEvent e) { + final Player p = e.getPlayer(); + final ItemStack item = e.getItem(); + final Action a = e.getAction(); + + if (!a.name().contains("RIGHT_CLICK")) return; + if (item == null) return; + if (item.getType() != Material.ENCHANTED_GOLDEN_APPLE) return; + if (aAppleCooldown.isOnCooldown(p.getUniqueId())) { + e.setCancelled(true); + p.sendMessage(Text.ofAll("&cEnchanted Golden Apples are on cooldown!")); + return; + } + + aAppleCooldown.setCooldown(p.getUniqueId(), 30 * 1000); + } + private void processTable(PlayerInteractEvent e) { final Player p = e.getPlayer(); final Block b = e.getClickedBlock(); diff --git a/src/main/java/fun/ogre/ogredupealias/utils/ArrayUtils.java b/src/main/java/fun/ogre/ogredupealias/utils/ArrayUtils.java index 870d2d4..f11122d 100644 --- a/src/main/java/fun/ogre/ogredupealias/utils/ArrayUtils.java +++ b/src/main/java/fun/ogre/ogredupealias/utils/ArrayUtils.java @@ -8,7 +8,7 @@ import java.util.Arrays; import java.util.List; import java.util.function.Function; -public abstract class ArrayUtils { +public final class ArrayUtils { /** * Transforms an array to another one diff --git a/src/main/java/fun/ogre/ogredupealias/utils/ItemUtils.java b/src/main/java/fun/ogre/ogredupealias/utils/ItemUtils.java index dcca8b0..4b118a7 100644 --- a/src/main/java/fun/ogre/ogredupealias/utils/ItemUtils.java +++ b/src/main/java/fun/ogre/ogredupealias/utils/ItemUtils.java @@ -9,7 +9,7 @@ import org.bukkit.inventory.meta.SkullMeta; import java.util.UUID; -public abstract class ItemUtils { +public final class ItemUtils { public static String nbtOf(ItemStack item) { if (item == null || item.getType().isAir()) return "air{}"; diff --git a/src/main/java/fun/ogre/ogredupealias/utils/SoundUtils.java b/src/main/java/fun/ogre/ogredupealias/utils/SoundUtils.java index 3654aed..4301ddd 100644 --- a/src/main/java/fun/ogre/ogredupealias/utils/SoundUtils.java +++ b/src/main/java/fun/ogre/ogredupealias/utils/SoundUtils.java @@ -6,7 +6,7 @@ import org.bukkit.entity.Player; import java.util.HashMap; import java.util.Map; -public abstract class SoundUtils { +public final class SoundUtils { private static final Map cooldown = new HashMap<>(); diff --git a/src/main/java/fun/ogre/ogredupealias/utils/StringUtils.java b/src/main/java/fun/ogre/ogredupealias/utils/StringUtils.java index f739639..354dc12 100644 --- a/src/main/java/fun/ogre/ogredupealias/utils/StringUtils.java +++ b/src/main/java/fun/ogre/ogredupealias/utils/StringUtils.java @@ -1,6 +1,6 @@ package fun.ogre.ogredupealias.utils; -public abstract class StringUtils { +public final class StringUtils { public static String capitalize(String s) { if (s.length() == 1) return s.toUpperCase();