diff --git a/src/main/java/com/alttd/playerutils/event_listeners/GoatHornEvent.java b/src/main/java/com/alttd/playerutils/event_listeners/GoatHornEvent.java new file mode 100644 index 0000000..34445b8 --- /dev/null +++ b/src/main/java/com/alttd/playerutils/event_listeners/GoatHornEvent.java @@ -0,0 +1,43 @@ +package com.alttd.playerutils.event_listeners; + +import org.bukkit.Location; +import org.bukkit.Tag; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; + +import java.util.concurrent.TimeUnit; + +public class GoatHornEvent implements Listener { + + @EventHandler + public void onPlayerInteract(PlayerInteractEvent event) { + ItemStack item = event.getItem(); + if (item == null) { + return; + } + + if (!Tag.SNAPS_GOAT_HORN.isTagged(event.getItem().getType())) { + return; + } + + Player player = event.getPlayer(); + if (player.getCooldown(item.getType()) > 0) { + event.setCancelled(true); + return; + } + + Location spawn = player.getLocation(); + spawn.set(0, 0, 0); + + if (player.getLocation().distance(spawn) > 250) { + return; + } + + Tag.SNAPS_GOAT_HORN.getValues().forEach(horn -> + player.setCooldown(horn, (int) TimeUnit.MINUTES.toSeconds(5) * 20)); + } + +}