Anion
Участник
- Баллы
- 31
Здравствуйте,я начал писать плагин на способности и столкнулся с такой проблемой.
Есть код (Да-да,он говно)
проблема в том,что при использование способности идет cooldown 40 секунд,НО послед cooldown'a вообще ничего не происходит,те даже не пишется "Дождитесь отката способности",прошу помощи.
Есть код (Да-да,он говно)
Код:
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 вообще ничего не происходит,те даже не пишется "Дождитесь отката способности",прошу помощи.