Помогите Остановка шедулера

php5master

Активный участник
Пользователь
Баллы
66
Делаю плагин на авторизацию через Google Authenticator.
Таск я запустил этим кодом:
Код:
@EventHandler
    public void onJoin(PlayerJoinEvent e){
        Bukkit.getScheduler().runTaskLater(this, () -> {e.getPlayer().kickPlayer("Вы не успели авторизироваться");}, 20L * 60);
    }
А как его остановить, если успели авторизироваться?
 
Добавить туда иф злогинен или нет. Если всё ешё нет, тогда кик.
 
А если игрок зайдёт и будет спать
 
Разбуди. =)
 
Киком через 60 сек и хочу разбудить )
 
Получаешь номер шедулера и стопай по номеру когда хочешь. Пруфит.
Java:
int TaskId = Bukkit.getScheduler().runTaskLater(this, () -> {e.getPlayer().kickPlayer("Вы не успели авторизироваться");}, 20L * 60).getTaskId();
 
Последнее редактирование:
Для таких вещей делают свой "враппер" под игрока и в нём нужный шедулер. В этом же враппере булеан переменную. Игрок залогинен - булеан = true - стопаем шедулер для этого игрока.
 
Для таких вещей делают свой "враппер" под игрока и в нём нужный шедулер. В этом же враппере булеан переменную. Игрок залогинен - булеан = true - стопаем шедулер для этого игрока.
Проще получить айдишник кодом повыше.
 
Может, не стану спорить. Судя по стилю его плагина, в его случае лучше плеер враппер написать. И всё реализовать там.
Ну да, давай навешаем десяток шедулеров, так интереснее. Когда можно получить номер шедулера и передать его в свой метод.
 
Помоему, моё решение одним ифом лучше и проще. :rolleyes:
 
обычно такое дело лимитят минутой и чаще чем раз в минуту заходить не дают.
 
Это не костыль а базовая настройка, дабы с одного айпи ни флудили джойнами. Если её нету это хуже чем костыль.
 
Это не костыль а базовая настройка, дабы с одного айпи ни флудили джойнами. Если её нету это хуже чем костыль.
Костыль всё же.Попросили то уничтожать шедулер, а не сокращать область его действия.Пусть даже он не будет ничего делать, но он будет висеть.Или ты что-то другое имел в виду?
 
Костыль всё же.Попросили то уничтожать шедулер, а не сокращать область его действия.Пусть даже он не будет ничего делать, но он будет висеть.Или ты что-то другое имел в виду?
Типичный ньюби он.
 
Назад
Верх