Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

  1. Автор темы
    fswr33

    fswr33 Новичок Пользователь

    Баллы:
    21
    Хочу сделать панель справа и чтобы она показывала 2 разных панели, например 10 секунд показывает надпись "онлайн" и 10 секунд показывает надпись "деньги", и так снова и снова.
    Вот моя идея как это реализовать, но не хватает знаний
    Код:
            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 секунд до выполнения  кода ниже
    //Вернуться к началу
    В комментариях я написал что хочу, но не могу реализовать
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    fswr33

    fswr33 Новичок Пользователь

    Баллы:
    21
    Есть еще идея сделать так, но не удается задать глобальную переменную
    Код:
        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);
     
  4. LomNar

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

    Баллы:
    78
    Skype:
    radius981
    Имя в Minecraft:
    LomNar
    тут лучше использовать while
     

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