From 1763943c7479658129c6e01f5735c2fa9bfa22ac Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Sat, 13 Jul 2024 20:49:59 -0700 Subject: [PATCH] Make golden apples have 8 second usage cooldown, and 16 for enchanted golden apples. Also nerf totems to 8 second usage cooldown --- .../io/github/lncvrt/lncvrtbox/LncvrtBox.java | 2 ++ .../events/EntityResurrectListener.java | 5 +++++ .../events/PlayerItemConsumeListener.java | 21 +++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerItemConsumeListener.java diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java b/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java index 51075fa..277809e 100644 --- a/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java +++ b/src/main/java/io/github/lncvrt/lncvrtbox/LncvrtBox.java @@ -18,6 +18,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; import org.bukkit.entity.Player; import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.inventory.Inventory; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; @@ -110,6 +111,7 @@ public final class LncvrtBox extends JavaPlugin implements Listener, TabExecutor getServer().getPluginManager().registerEvents(new PlayerDeathListener(), this); getServer().getPluginManager().registerEvents(new PlayerDropItemListener(this), this); getServer().getPluginManager().registerEvents(new PlayerElytraBoostListener(), this); + getServer().getPluginManager().registerEvents(new PlayerItemConsumeListener(), this); getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this); getServer().getPluginManager().registerEvents(new PlayerMoveListener(), this); getServer().getPluginManager().registerEvents(new PortalCreateListener(), this); diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java index 62c1f74..00142cc 100644 --- a/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java +++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/EntityResurrectListener.java @@ -20,6 +20,11 @@ public class EntityResurrectListener implements Listener { public void onEntityResurrect(EntityResurrectEvent event) { if (event.getEntity() instanceof Player player && !event.isCancelled()) { if (player.getInventory().getItemInMainHand().getType() == Material.TOTEM_OF_UNDYING || player.getInventory().getItemInOffHand().getType() == Material.TOTEM_OF_UNDYING) { + if (player.getCooldown(Material.TOTEM_OF_UNDYING) != 0) { + event.setCancelled(true); + return; + } + player.setCooldown(Material.TOTEM_OF_UNDYING, 20 * 8); plugin.getServer().broadcastMessage("%s%sLncvrtBox %s%s» %s%s has popped their totem".formatted(GOLD, BOLD, GRAY, BOLD, RESET, player.getName())); } } diff --git a/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerItemConsumeListener.java b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerItemConsumeListener.java new file mode 100644 index 0000000..2eca436 --- /dev/null +++ b/src/main/java/io/github/lncvrt/lncvrtbox/events/PlayerItemConsumeListener.java @@ -0,0 +1,21 @@ +package io.github.lncvrt.lncvrtbox.events; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.inventory.ItemStack; + +public class PlayerItemConsumeListener implements Listener { + @EventHandler + public void onPlayerItemConsume(PlayerItemConsumeEvent event) { + Player player = event.getPlayer(); + ItemStack item = event.getItem(); + + if (item.getType() == Material.GOLDEN_APPLE || item.getType() == Material.ENCHANTED_GOLDEN_APPLE) { + player.setCooldown(Material.GOLDEN_APPLE, 20 * 8); + player.setCooldown(Material.ENCHANTED_GOLDEN_APPLE, 20 * 16); + } + } +}