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

Помогите Проблема с сообщениями игрокам в ArrayList

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

Статус темы:
Закрыта.
  1. alexandrage

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

    Баллы:
    173
    Не запускать его 10 раз.
     
  2. Lillie-May

    Lillie-May Новичок Пользователь

    Баллы:
    21
    Не запускать 10 раз, бесишь.
     
  3. Lillie-May

    Lillie-May Новичок Пользователь

    Баллы:
    21
    Ahahahahhaah.
     
  4. Cororo

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

    Баллы:
    76
    Имя в Minecraft:
    TheSirCororo
    Не тупи
     
  5. MurlikMurlik

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

    Баллы:
    96
    У тебя внутри цикла находится метод который каждый раз запускает новый шедулер с Runnable. Как тебе говорили выше, запуститься столько руннаблов, сколько итерацией будет в цикле.
    Чтобы исправить это, там же создай шедулер, и уже внутри Runnble делай итерацию по игрокам или то что тебе нужно. Как говорили остальные, так и скажу я - учи Java и ООП. Не обязательно записываться на курсы, достаточно проявить интерес в этой теме, много гуглить, искать примеры, найти человека который готов подсказывать.
     
  6. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Тем временем сократил его "Ехал if через if по if на if" в BukkitTask. https://pastebin.com/2fkJqumV
    И я знаю о проблеме с его преколом "На каждого игрока по задаче и отменять последний созданный".
     
  7. MurlikMurlik

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

    Баллы:
    96
    Код:
    for (String n : plugin.miniPlayers) {
    plugin.getServer().getScheduler().runTaskTimer(plugin, new Runnable() {
    public void run() {
    //Задача
    }
    }, 0L, 20L);
    }
    Вот почему создает.

    У тебя ВНУТРИ цикла создается задача. Твой цикл работает не один раз, а столько, сколько в коллекции объектов, то есть если у тебя там 10 игроков, то значит 10 шедулеров будет создано. Повторюсь, обрати внимание где находится у тебя в коде ЦИКЛ и где ЗАПУСКАЕТСЯ шедулер!
    ВЫВЕДИ задачу вне цикла, а сам цикл помести в задачу и ты решишь проблему!

    То есть так.
    Код:
    plugin.getServer().getScheduler().runTaskTimer(plugin, new Runnable() {
    public void run() {
    for (String n : plugin.miniPlayers) {
    //Работай с игроками
    }
    }
    }, 0L, 20L);
    Этот код запустит таймер, который каждую секунду запустит цикл, а цикл пройдется по всем игрокам.
     
  8. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    3 простых шага, как достичь успеха.
    1) понять, что делает твой код
    2) понять, что должен делать твой код
    3) соотнести одно с другим и внести необходимые исправления

    или альтернативно
    1) выкинуть текущий код
    2) понять, что должен делать твой код
    3) написать код, который должен делать то что нужно

    хорош сношать мозги людям, просто включи свой мозг. иначе ничему не научишься
     
  9. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Хахахахаха спасибо парни что пытались разобраться ахахха я такой мем от души посмеялся и нашел старый акк))
     
Статус темы:
Закрыта.

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