- Баллы
- 46
- Имя в Minecraft
- MySoulIsCry
У меня есть плагин с потоком. проблема в том что поток не вожможно отменить. я пытаюсь использовать cancel(); но оно постоянно выдает ошибку и срабатывает try catch, в ошибке сказано что якобы поток еще не запущен, хотя он по факту запущен.
Код:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player)sender;
if (args.length == 0) {
p.sendMessage("§7[§d§lU§b§lM§7] Правильное использование - /check <НИК>");
return false;
}
Player cheater = Bukkit.getPlayer(args[0]);
if (p.hasPermission("moder.check")) {
if(cheater == null) {
p.sendMessage("§7[§b§lU§d§lM§7] Игрок §b§l" + args[0] + "§7 не онлайн.");
return false;
}
Timer timer = new Timer(cheater, cheater.getLocation());
if (args.length == 1) {
p.sendMessage("§7[§b§lU§d§lM§7] Игрок §d§l" + cheater.getDisplayName() + " §7вызван на проверку.");
cheater.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 3600, 250));
cheater.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 3600, 250));
String str = new String("god " +cheater.getDisplayName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), str);
cheater.sendTitle("§d§lВы были вызваны на проверку!", "§d§lВся информация находится в чате!");
cheater.sendMessage("§7[§b§lU§d§lM§7] Вас вызвали на проверку! Не волнуйтесь, напишите в чат ваш §d§lID Discord§7. Если от вас не поступит ответ в течении 3х минут вы будете забанены §d§lНАВСЕГДА§7.");
timer.runTaskTimer(plugin, 80, 20);
timer.time = 180;
return false;
}
if (args.length == 2) {
if(args[1].equalsIgnoreCase("stop")) {
try {
timer.cancel();
}catch(Exception e){
p.sendMessage("§7[§b§lU§d§lM§7] Игрок §d§l" + cheater.getDisplayName() + "§7 не был вызван на проверку.");
return false;
}
p.sendMessage("§7[§b§lU§d§lM§7] Вы отключили проверку для игрока §d§l" + args[0]);
return false;
}
p.sendMessage("§7[§b§lU§d§lM§7] Выключить проверку игроку - §d§l/check [НИК] stop");
}
}
p.sendMessage("§7[§b§lU§d§lM§7] Команды не существует или у вас нет прав");
return false; }
}