Помогите Анимация в скорборде с конфига

_Murlooo_

Новичок
Пользователь
Баллы
6
Имя в Minecraft
_Murlooo_
Ребята, помогите пожалуйста сделать анимацию названия скорбоарда на сервере, используя лист (массив) с файла конфигурации. Есть 2 класса: основной (где был создан конфиг) и вторичный (с анимацией будущей). В прошлой теме помогли лишь подключить конфиг к 2-му классу, дальше пошли, мягко говоря, бесполезные ответы, видимо, от таких же как и я
 
Дак а в чём проблема Iterator'ом пройтись? Или тем же forEach. Не понимаю.
Проблемы тут только у вас двоих.
У меня же все просто и четко.
Код:
public class ScoreboardRun extends BukkitRunnable {
    private Plugin plugin;
    private Boards boards;
    private AnimationToList list;

    public ScoreboardRun(Plugin plugin, Boards boards) {
        this.plugin = plugin;
        this.boards = boards;
    }
   
    public void setList(AnimationToList list) {
        this.list = list;
    }

    @Override
    public void run() {
        String next = this.list.next();
        for (Player player : Bukkit.getOnlinePlayers()) {
            Board board = boards.getBoard(player);
            for(int i = 0; i<10; i++) {
                if (this.plugin.getConfig().contains("b"+i)) {
                    String string = PlaceholderAPI.setPlaceholders(player, this.plugin.getConfig().getString("b"+i));
                    board.setScore(string, i);
                }
            }
            board.setDisplayName(next);
        }
    }
}
 
Последнее редактирование:
Проблемы тут только у вас двоих.
У меня же все просто и четко.
Код:
public class ScoreboardRun extends BukkitRunnable {

    private Plugin plugin;
    private Boards boards;
    private AnimationToList list;

    public ScoreboardRun(Plugin plugin, Boards boards) {
        this.plugin = plugin;
        this.boards = boards;
    }

    @Override
    public void run() {
        String next = this.list.next();
        for (Player player : Bukkit.getOnlinePlayers()) {
            Board board = boards.getBoard(player);
            for(int i = 0; i<10; i++) {
                if (this.plugin.getConfig().contains("b"+i)) {
                    String string = PlaceholderAPI.setPlaceholders(player, this.plugin.getConfig().getString("b"+i));
                    board.setScore(string, i);
                    board.setDisplayName(next);
                }
            }
        }
    }
}
Жестб какая. Зачем этот костыль?
 
Если ты думал, что итератор может по кругу лист гонять, я тебя огорчу.
https://docs.oracle.com/javase/8/docs/api/java/util/NoSuchElementException.html
Мы запускаем таймер в котором делаем цикл while пока есть элементы, и это лишь одно из возможных решений. В чём проблемы?
 
Мы запускаем таймер в котором делаем цикл while пока есть элементы, и это лишь одно из возможных решений. В чём проблемы?
Действительно, го юзать трейд слип, вместо шедулера. Гениально.
 
Дествтительно, го юзать трейд слип, вместо шедулера. Гениально.
В твоём примере мы и так юзаем шедулер, подставь туда while (iterator.hasNext) или же
forEachRemaining, и будет тебе счастье.
 
В твоём примере мы и так юзаем шедулер, подставь туда while (iterator.hasNext) или же
forEachRemaining, и будет тебе счастье.
Мне не нужно в 1 тик пропулять весь лист. Оно должно тикать со скоростью рантасктайм.
 
Назад
Верх