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

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

Discussion in 'Разработка плагинов для новичков' started by fswr33, Nov 30, 2015.

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

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

    Trophy Points:
    21
    Хочу сделать панель справа и чтобы она показывала 2 разных панели, например 10 секунд показывает надпись "онлайн" и 10 секунд показывает надпись "деньги", и так снова и снова.
    Вот моя идея как это реализовать, но не хватает знаний
    Code:
            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 Новичок Пользователь

    Trophy Points:
    21
    Есть еще идея сделать так, но не удается задать глобальную переменную
    Code:
        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 Активный участник Пользователь

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

Share This Page