Войти или зарегистрироваться

Помогите Как обновлять ScoreBoard

  • Автор темы Автор темы fswr33
  • Дата начала Дата начала

fswr33

Активный участник
Пользователь
Баллы
66
Хочу сделать панель справа и чтобы она показывала 2 разных панели, например 10 секунд показывает надпись "онлайн" и 10 секунд показывает надпись "деньги", и так снова и снова.
Вот моя идея как это реализовать, но не хватает знаний
Java:
        final BukkitTask board1 = new BukkitRunnable(){
            public void run(){
                Player[] arrayOfPlayer;
                int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
                for (int i = 0; i < j; i++)
                {
                    Player p = arrayOfPlayer[i];
                    Scoreboard sBoard = sbManager.getNewScoreboard();
                    Objective obj = sBoard.registerNewObjective("SB", "dummy");
                    obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                    obj.setDisplayName("ScoreBoard");
                    Score score0 = obj.getScore(Bukkit.getOfflinePlayer("Онлайн"));
                    score0.setScore(0);
                    p.setScoreboard(sBoard);
                }
            }
        }.runTaskTimer(this, 0L, 20L);
        new BukkitRunnable(){
            public void run(){
                Bukkit.getScheduler().cancelTask(board1.getTaskId());
            }
        }.runTaskLater(this, 200L);
//Ждать 10 секунд до выполнения кода ниже
       final BukkitTask board2 = new BukkitRunnable(){
            public void run(){
                Player[] arrayOfPlayer;
                int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
                for (int i = 0; i < j; i++)
                {
                    Player p = arrayOfPlayer[i];
                    Scoreboard sBoard = sbManager.getNewScoreboard();
                    Objective obj = sBoard.registerNewObjective("SB", "dummy");
                    obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                    obj.setDisplayName("ScoreBoard");
                    Score score0 = obj.getScore(Bukkit.getOfflinePlayer("Деньги"));
                    score0.setScore(0);
                    p.setScoreboard(sBoard);
                }
            }
        }.runTaskTimer(this, 0L, 20L);
        new BukkitRunnable(){
            public void run(){
                Bukkit.getScheduler().cancelTask(board2.getTaskId());
            }
        }.runTaskLater(this, 200L);
//Ждать 10 секунд до выполнения  кода ниже
//Вернуться к началу
В комментариях я написал что хочу, но не могу реализовать
 
Есть еще идея сделать так, но не удается задать глобальную переменную
Java:
    public int board = 1;
    new BukkitRunnable(){
              public void run(){
                  if (board == 1){
                       public int board = 2;
                       //показываем скорборд 1
                  }
                  if (board == 2){
                       public int board = 1;
                       //показываем скорборд 2
                  }
              }
    }.runTaskTimer(this, 0L, 200L);
 
тут лучше использовать while
 
Назад
Верх