Add GoatHornEvent listener (stops spamming goat horns in spawn)
Implement GoatHornEvent to handle player interactions with goat horns. This feature sets a cooldown for goat horn items, if the player is near spawn or already has an active cooldown.
This commit is contained in:
parent
4ed83b6376
commit
0c305e79e5
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user