Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.
А как не запускать?
У тебя внутри цикла находится метод который каждый раз запускает новый шедулер с Runnable. Как тебе говорили выше, запуститься столько руннаблов, сколько итерацией будет в цикле.
Чтобы исправить это, там же создай шедулер, и уже внутри Runnble делай итерацию по игрокам или то что тебе нужно. Как говорили остальные, так и скажу я - учи Java и ООП. Не обязательно записываться на курсы, достаточно проявить интерес в этой теме, много гуглить, искать примеры, найти человека который готов подсказывать.
 
Тем временем сократил его "Ехал if через if по if на if" в BukkitTask. https://pastebin.com/2fkJqumV
И я знаю о проблеме с его преколом "На каждого игрока по задаче и отменять последний созданный".
 
Почему создает на каждого игрока просто вопрос?
Код:
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);
Этот код запустит таймер, который каждую секунду запустит цикл, а цикл пройдется по всем игрокам.
 
Почему создает на каждого игрока просто вопрос?
3 простых шага, как достичь успеха.
1) понять, что делает твой код
2) понять, что должен делать твой код
3) соотнести одно с другим и внести необходимые исправления

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

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

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

Назад
Верх