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

Статус
Закрыто для дальнейших ответов.

AdMiRaLL

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
AdMiRaLLL
Нужно каждые 1000 миллисекунд производить определённый набор действий, как создать таймер?
 
Bukkit.getScheduler().scheduleSyncRepeatingTask(arg0, arg1, arg2, arg3)
arg0 - плагин;
arg1 - раннабел;
arg2 - задержка перед первым разом;
arg3 - интервал
 
Если не понятно то int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(arg0, arg1, arg2, arg3)
 
Мне как-то уже стыдно спрашивать.
Но всё же
Если не понятно то int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(arg0, arg1, arg2, arg3)
В каком месте мне определять id? При создании того таймера, который впоследствии буду останавливать? Если да, то выдаёт ошибку
 
int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(arg0, arg1, arg2, arg3)
вот так вот шелдулер создавай!!! id - ид твоего шелдулера!!!!
 
int id = Bukkit.getScheduler().scheduleSyncRepeatingTask(arg0, arg1, arg2, arg3)
вот так вот шелдулер создавай!!! id - ид твоего шелдулера!!!!
да, я так и создаю, но внутри шелдулера когда использую айди, он требует сделать его final, когда делаю, говорит что нужно инициализировать его
 
Специально проверил - ошибку не выдает
а зачем внутри использовать ид?
внутри есть метод cancel()
 
Последнее редактирование:
cancel() в ран методе пишешь и все останавливается
 
Вместо обычного раннабл используй BukkitRunnable
 
Вместо обычного раннабл используй BukkitRunnable
Код:
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new 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();
                        }
                }}, 0L, 100);
Имеется вот такой вот отрывок кода, и когда вызывается cancel(), в консоли ошибки и ничего не останавливается
 
а точно на кансел обрывается? Текст ошибки в студию!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх