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

Помогите Как сделать чтобы каждые 30 секунд выводило сообщение всем

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

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

    Welester Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    Welester
    Вот мне надо чтобы каждые 30 секунд выводило сообщение, можно так сделать?
     
  2. Хостинг MineCraft
    <
  3. andreispas

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

    Баллы:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Буккит шедулер
     
  4. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Код:
    //создаем таймер
    BukkitRunnable  timer = new BukkitRunnable() {
                @Override
                public void run() {
                  //выполняем код, посылаем сообщения
                    Bukkit.broadcastMessage("TEST");
                  //рекамендую удалить таймер после срабатывания дабы не занимать оп. память.          
                  // Это если у таймера нету time2
                  timer.cansel();
                  timer = null;
                    }
    
            };
    //запускаем таймер
    timer.runTaskLater(this, time, time2);
    //где
    //this plugin
    //time время первого срабатывания.
    //time2 интервал срабатываний(можно не указывать, таймер сработает 1 раз.)
    
    //Остановить таймер
    timer.cancel();
    
    //удалить таймер, дабы не занимал оп. память.
    timer = null;
    
    Таймер работает в тиках 20 тиков = 1 секунда.
     
    Последнее редактирование: 3 окт 2016
  5. Exception_Prototype

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

    Баллы:
    46
  6. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Код:
    @Oveeride
    public void onEnable()
    {
    Main$1 scheduler = new Main$1();
    scheduler.runTaskTimer(this, 0L, 20L);
    //20L - одна секунда
    }
    В классе Main$1
    Код:
    public class Main$1 extends BukkitRunnable;
    
    @Override
    public void run()
    {
    Bukkit.broadcastMessage("Сообщение"));
    }
     
  7. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Прекращай давать вредные советы.
     
  8. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Чем они вредны?
     
  9. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Обьясните нубу зачем L пишется? Я же могу просто 20 написать без L, и работать будет....

    Такую же хрень видел в Location. Где можно просто числа указать, но зачем то L приписывают. Или D

    Я так понимаю что этими буквами мы компилятору говорим, какое число хотим отправить цельное или дробное? Например int или dooble.
     
    Последнее редактирование: 4 окт 2016
  10. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Хз, читал где-то на форумах баккита. Там и нашел этот код, по сей день использую его в своих плагинах. Не знаю, что не нравится @Dereku
     
  11. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Человек, воспитанный декомпилятором.
     
  12. Derik

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

    Баллы:
    76
    Имя в Minecraft:
    Derik
    Да нафиг ваще иза таймера отдельный класс писать? Если там дофига таймеров тогда ладно. А так нафиг надо...
     
  13. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Упс, это скомпилировалось в отдельный класс (анонимный).
    Другое дело, что нет причин начинающему программисту ввязываться в эти дебри и вообще думать про такое.
     
  14. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Long - целочисленное, оно можнт быть преобразовано в int и обратно, чтобы их отличать пишут L https://ru.m.wikibooks.org/wiki/Jav...B2.D0.BD.D1.8B.D0.B5_.D1.82.D0.B8.D0.BF.D1.8B
     
  15. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Ты показал муть, которые делают декомпиляторы. На самом деле это пишется далеко не так.
    Это для того, чтобы указать явный тип числа. Конечно, можно и без него, но когда ты начинаешь работать с числами тебе приходится указывать их тип, если ты их не будешь объявлять в переменных.
     
    Последнее редактирование: 4 окт 2016
  16. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    По этому я всегда создаю шедулеру отдельный класс, не люблю эту кашу с д$лларами.[DOUBLEPOST=1475722577,1475722189][/DOUBLEPOST]P.s BukkitRunnable разве не зависит от тпс сервера? Может получится больше 20ти секунд при сдутом тпс.
     
    Последнее редактирование: 6 окт 2016
  17. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Начинать какой-то код всё-таки IMHO проще с внутренних и анонимных классов, и лично меня $... никак не напрягают, но с ростом любого проекта всегда наступает время to be refactored... :)
    В общем, это личный выбор каждого, как ему нравится, результат в любом случае рабочий =)
     
  18. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    А мне нравиться, когда у всех классов свои имена, а не class$1 class$2 .. class$10 class$хренотень.
     
  19. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Тебя тоже jd-gui учил?
     
  20. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Причем тут jd-gui?
     
  21. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Он не умеет декомпилировать анонимные классы правильно, емнип.
     

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