1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Обновление Score в Scoreboard

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

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

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

    Баллы:
    66
    Здравствуйте, первый раз использую Bukkit API для создания Scoreboard и у меня появился вопрос, как обновить строку счёта в борде? И в общем какие есть советы по использованию стандартного API для scoreboard?
    public void onEnable()
    {
    Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void test(PlayerJoinEvent e)
    {
    Player p = e.getPlayer();
    ScoreboardManager m = Bukkit.getScoreboardManager();
    Scoreboard b = m.getNewScoreboard();

    Objective o = b.registerNewObjective("Board", "");
    o.setDisplaySlot(DisplaySlot.SIDEBAR);
    o.setDisplayName("Name board");

    Score s = o.getScore("string");
    s.setScore(1);
    p.setScoreboard(b);
    }

    }
     
  2. Namudos

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

    Баллы:
    66
    Имя в Minecraft:
    Uninstal
    Код:
    for(String entry : scoreboard.getEntries()){
          scoreboard.resetScores(entry);
    } //после этого, заного добавляешь строки в Scoreboard
     
  3. Автор темы
    HaloSpartan

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

    Баллы:
    66
    А я не могу удалить только одну строку? Допустим по числу её Score
     
  4. Namudos

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

    Баллы:
    66
    Имя в Minecraft:
    Uninstal
    Вряд ли.
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Можешь. Если число где то хранится.
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вот мой класс немигающего борда. Там все есть.
    Код:
    public class Board {
        private ScoreboardManager manager;
        private Scoreboard board;
        private Objective objective;
    
        public Board(String displayName) {
            this.manager = Bukkit.getScoreboardManager();
            this.board = manager.getNewScoreboard();
            this.objective = board.registerNewObjective("test", "dummy", displayName);
            this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
        }
    
        public Scoreboard getScoreboard() {
            return this.board;
        }
    
        public void setDisplayName(String name) {
            this.objective.setDisplayName(name);
        }
    
        public void setScore(String name, int index) {
            String string = build(index);
            Team team = this.board.getTeam(string);
            if (team == null) {
                team = this.board.registerNewTeam(string);
                team.addEntry(string);
                Score score = objective.getScore(string);
                score.setScore(index);
            }
            team.setPrefix(name);
        }
    
        public void resetScores(int index) {
            String string = build(index);
            this.board.getTeam(string).unregister();
            this.board.resetScores(string);
        }
     
        public String build(int index) {
            String hex = Integer.toHexString(index);
            StringBuilder sb = new StringBuilder();
            for (char c : hex.toCharArray()) {
                sb.append("§" + c);
            }
            return sb.toString();
        }
    }
     

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