Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lb.jerry.Cooldowns.Listeners;
- import lb.jerry.Cooldowns.Cooldowns;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.scheduler.BukkitRunnable;
- import java.text.DecimalFormat;
- import java.util.UUID;
- public class PearlCooldown implements Listener {
- private Cooldowns plugin;
- public PearlCooldown(Cooldowns plugin) {
- this.plugin = plugin;
- }
- private int timeleftpearl = pearlcooldownseconds();
- private boolean hasCooldown(UUID uuid) {
- if (!plugin.activepearlcooldown.containsKey(uuid)) {
- return false;
- }
- long value = plugin.activepearlcooldown.get(uuid);
- return value > System.currentTimeMillis();
- }
- private long getMillisecondsLeft(UUID uuid) {
- if (!plugin.activepearlcooldown.containsKey(uuid)) {
- return -1L;
- }
- return plugin.activepearlcooldown.get(uuid) - System.currentTimeMillis();
- }
- private void addCooldown(UUID uuid) {
- long value = System.currentTimeMillis() + timeleftpearl * 1000L;
- plugin.activepearlcooldown.put(uuid, value);
- }
- @EventHandler
- public void onUseEnderpearl(PlayerInteractEvent event) {
- if (event.getItem() == null) return;
- if (event.getItem().getType() != Material.ENDER_PEARL) return;
- Player player = event.getPlayer();
- if (BlockedItems(event.getItem().getType())) return;
- if (hasCooldown(player.getUniqueId())) {
- event.setCancelled(true);
- player.sendMessage(colour(plugin.getConfig().getString("pearl-cooldown-format").replace("%seconds%", new DecimalFormat("0.0").format(getMillisecondsLeft(player.getUniqueId()) / 1000.0))));
- return;
- }
- addCooldown(player.getUniqueId());
- new BukkitRunnable() {
- @Override
- public void run() {
- player.sendMessage(colour(plugin.getConfig().getString("pearl-cooldown-over")));
- }
- }.runTaskLater(plugin, pearlcooldownseconds());
- }
- private static String colour(String message) {
- return ChatColor.translateAlternateColorCodes('&', message);
- }
- private int pearlcooldownseconds() {
- assert plugin != null;
- return (plugin.getConfig().getInt("pearl-cooldown-time"));
- }
- private boolean BlockedItems(Material type) {
- String typeName = type.name();
- if (typeName.endsWith("BUTTON")) return true;
- if (typeName.equals("WORKBENCH")) return true;
- if (typeName.equals("ENDER_CHEST")) return true;
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement