Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем php5master, 30 янв 2017.

  1. Автор темы
    php5master

    php5master Активный участник Пользователь

    Баллы:
    61
    Делаю плагин на авторизацию через Google Authenticator.
    Таск я запустил этим кодом:
    Код:
    @EventHandler
        public void onJoin(PlayerJoinEvent e){
            Bukkit.getScheduler().runTaskLater(this, () -> {e.getPlayer().kickPlayer("Вы не успели авторизироваться");}, 20L * 60);
        }
    А как его остановить, если успели авторизироваться?
     
  2. Хостинг MineCraft
    <
  3. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Добавить туда иф злогинен или нет. Если всё ешё нет, тогда кик.
     
  4. Автор темы
    php5master

    php5master Активный участник Пользователь

    Баллы:
    61
    А если игрок зайдёт и будет спать
     
  5. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Разбуди. =)
     
  6. Автор темы
    php5master

    php5master Активный участник Пользователь

    Баллы:
    61
    Киком через 60 сек и хочу разбудить )
     
  7. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    this.cancel();[DOUBLEPOST=1485795843,1485795808][/DOUBLEPOST]или BukkitTask task = new BukkitTask() {...};
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Получаешь номер шедулера и стопай по номеру когда хочешь. Пруфит.
    Код:
    int TaskId = Bukkit.getScheduler().runTaskLater(this, () -> {e.getPlayer().kickPlayer("Вы не успели авторизироваться");}, 20L * 60).getTaskId();
     
    Последнее редактирование: 30 янв 2017
  9. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Для таких вещей делают свой "враппер" под игрока и в нём нужный шедулер. В этом же враппере булеан переменную. Игрок залогинен - булеан = true - стопаем шедулер для этого игрока.
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Проще получить айдишник кодом повыше.
     
  11. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Может, не стану спорить. Судя по стилю его плагина, в его случае лучше плеер враппер написать. И всё реализовать там.
     
  12. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ну да, давай навешаем десяток шедулеров, так интереснее. Когда можно получить номер шедулера и передать его в свой метод.
     
  13. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Помоему, моё решение одним ифом лучше и проще. :rolleyes:
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А если игрок 10 раз войдет без логина? Будет висеть 10 шедулеров ожидать окончания.
     
  15. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    обычно такое дело лимитят минутой и чаще чем раз в минуту заходить не дают.
     
  16. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Не стоит городить костыли, что бы перекрыть костыли.
     
  17. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Это не костыль а базовая настройка, дабы с одного айпи ни флудили джойнами. Если её нету это хуже чем костыль.
     
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Такого даже в аутчме нет.
     
  19. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    в моём есть.[DOUBLEPOST=1485800463,1485800433][/DOUBLEPOST]он у меня релоадед =)))
     
  20. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Костыль всё же.Попросили то уничтожать шедулер, а не сокращать область его действия.Пусть даже он не будет ничего делать, но он будет висеть.Или ты что-то другое имел в виду?
     
  21. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Типичный ньюби он.
     

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