1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Таймер в BlockBreakEvent или BlockPlaceEvent

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

Статус темы:
Закрыта.
  1. Автор темы
    Jony

    Jony Ньюби

    Баллы:
    1
    Имя в Minecraft:
    _Jony
    Здрасте, я заметил что таймер for или white не работают при использовании BlockBreakEvent или BlockPlaceEvent
    как можно сделать таймер в этих Евентах, вот скрипт:

    @EventHandler
    public void onDestroy(BlockBreakEvent p){
    if(p.getBlock().getType() != Material.DIAMOND_BLOCK)return;
    for(int i = 0;i < 10;i++){
    p.getPlayer().sendMessage(""+i);
    }
    }
     
  2. alexandrage

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

    Баллы:
    173
    Писец ты дибил. Такие ивенты идут в основном потоке.
     
  3. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    good
     
  4. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    А никого не смутило, что он for и while назвал таймерами?
     
  5. Slavkaa

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

    Баллы:
    76
    Имя в Minecraft:
    Slavok2001
    Это циклы, а не таймеры, и 10 повторов он сделает за ~0.01 ms
     
  6. alexandrage

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

    Баллы:
    173
    Тут касяк в другом. За один тик отправится только один sendMessage. Не далеко ушел от ТС. Такой же тупенький.
     
  7. EnderBro3D

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

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    Это не таймеры, если тебе нужен таймер юзай BukkitRunnable

    Пример:

    Код:
    public class Sample extends BukkitRunnable {
        private int i;
        public void run() {
            Bukkit.broadcastMessage("Какой нибудь текст. " + i);
            i++;
        }
    }
    Чтобы запустить:
    Код:
    BukkitTask task = new Sample().runTaskTimer(plugin, 0L, 20 * 10);
    т.е если ты запускаешь таймер который повторяется каждые 10 секунд.

    Чтобы остановить: task.cancel();
     
  8. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Хм... Наверное, тебе помогут шедулер if и логический оператор public.
     
  9. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    P.S. Я уверен, что ты даже класс-слушатель не зарегистрировал.
     
  10. Алмаз Гараев

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

    Баллы:
    76

    Да, ещё присобачь к этому reload server и будет ваще отлично!
     
Статус темы:
Закрыта.

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