Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Таймеры

Статус
Закрыто для дальнейших ответов.
а точно на кансел обрывается? Текст ошибки в студию!
Ничего не обрывается, всё крутится, но в том то и дело, что должно оборваться.
15:19:35 [INFO] AdMiRaLLL issued server command: /spawn
15:19:35 [WARNING] [Works] Task #5 for Works v0.1 generated an exception
java.lang.IllegalStateException: Not scheduled yet
at org.bukkit.scheduler.BukkitRunnable.getTaskId(BukkitRunnable.java:128
)
at org.bukkit.scheduler.BukkitRunnable.cancel(BukkitRunnable.java:17)
at ru.admirall.bukkit.works.Main$2.run(Main.java:434)
at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run(CraftTask.java:
53)
at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftScheduler.mainThreadHear
tbeat(CraftScheduler.java:345)
at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:53
0)
at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:22
4)
at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:49
4)
at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:
427)
at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:84
9)
 
В общем я погуглил и вроде бы для того чтобы так останавливать BukkitRunnable надо запускать по-другому
У меня большинство ранабл вынесено в отдельный класс

PHP:
 public class TPTimer extends BukkitRunnable {

@Override
                    public void run() {
                        if((PlayerPos[pid].getX() == player.getLocation().getX()) && (PlayerPos[pid].getY() == player.getLocation().getY()) && (PlayerPos[pid].getZ() == player.getLocation().getZ()) && (SpawnCanc[pid] == true)){
                            PlayerSpawnTimer[pid]++;
                            player.sendMessage(Integer.toString(PlayerSpawnTimer[pid]));
                            if(PlayerSpawnTimer[pid] == 11){
                                cancel();
                                SpawnTime[pid] = System.currentTimeMillis();
                                player.teleport(new Location(Bukkit.getWorld("world"), 62.0, 74.0, -210.0, 90, 0));
                             
                            }
                        } else{
                            player.sendMessage("Телепорт отменён, попробуй ещё раз.");
                            cancel();
                        }
                }
}
и потом создать образец класса
TPTimer tp = new TPTimer();
tp.runTaskTimer(this, 0L, 100L);
 
Всем спасибо, сделал немного по другому, но всё замечательно.
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх