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

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

Discussion in 'Разработка плагинов для новичков' started by Welester, Oct 3, 2016.

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Derik
    Code:
    //создаем таймер
    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 секунда.
     
    Last edited: Oct 3, 2016
  5. Exception_Prototype

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

    Trophy Points:
    46
  6. DonDays

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

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

    Dereku Старожил

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Старожил

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

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

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

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

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

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

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

    Dereku Старожил

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

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Причем тут jd-gui?
     
  21. Dereku

    Dereku Старожил

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

Share This Page