Помогите После Cooldown не выполняются события

Anion

Участник
Баллы
31
Здравствуйте,я начал писать плагин на способности и столкнулся с такой проблемой.
Есть код (Да-да,он говно)
Код:
package zrt.main;

import java.util.HashMap;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Arrow;
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.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.util.Vector;

public class Handler
  implements Listener
{
  private HashMap<UUID, Long> cooldown = new HashMap();
  private int cooldowntime = 40;

  @EventHandler
  public void interact(PlayerInteractEvent e)
  {
   Action a = e.getAction();
   ItemStack item = e.getPlayer().getItemInHand();
   if ((a == Action.LEFT_CLICK_AIR) && (item.getType() != Material.FEATHER)) {
     }
   if ((a == Action.LEFT_CLICK_AIR) && (item.getType() == Material.FEATHER)) {
     return;
   }
   Player p = e.getPlayer();
   Location loc = p.getLocation();
   ItemStack itemi = p.getItemInHand();
   float yaw = loc.getYaw();
   float pitch = loc.getPitch();
   if ((item.getType() == Material.FEATHER) && (itemi.getItemMeta().getDisplayName().equals(ChatColor.WHITE + "Прыжок")))
   {
     if (this.cooldown.containsKey(p.getUniqueId()))
     {
       long secondsleft = ((Long)this.cooldown.get(p.getUniqueId())).longValue() / 1000L + this.cooldowntime - (System.currentTimeMillis()/1000);
       if (secondsleft > 1) {
         p.sendMessage(ChatColor.RED + "Дождитесь отката способности("+ secondsleft+")");
       }
       e.setCancelled(true);
     }
     else
     {
       p.setVelocity(p.getLocation().getDirection().multiply(10));
       this.cooldown.put(p.getUniqueId(), Long.valueOf(System.currentTimeMillis()));
       return;
     }
     e.setCancelled(true);
   } else {
         p.sendMessage(ChatColor.RED + "Дождитесь отката способности");
     }
   e.setCancelled(true);
   if ((item.getType() == Material.BOOK) && (itemi.getItemMeta().getDisplayName().equals("Книга заклинателя стрел"))) {
     p.launchProjectile(Arrow.class);
   }
  }
}


проблема в том,что при использование способности идет cooldown 40 секунд,НО послед cooldown'a вообще ничего не происходит,те даже не пишется "Дождитесь отката способности",прошу помощи.
 
SimpleItemStack, держу в курсе.
Не, я просто не помню, что именно ужасно там, но видел, что ты создаешь не через конструктор :/

Впрочем, была такая же история недавно, когда мне решили чото сказать про мой плагин, которому уже 1.5 года)

(отсюда валить надо. Могут кинуть баллы за нарушения, ибо устроили оффтоп)
 
Назад
Верх