Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите ScoreBoard + Bukkit?

_Rufu5_

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
_Rufu5_
Здравствуйте, сегодня хочу спросить как в int переменную записать кол-во очков на ScoreBoard, а потом обратно засунать в скоробордю. Буду рад если поможете кодом. И с наступившем всех!!!
Вот часть кода моего варианта, но она не работает
Код:
    @EventHandler
    public void respawnEvent(PlayerRespawnEvent event){
      
//        event.getPlayer().sendMessage(Bukkit.getScoreboardManager().getNewScoreboard().getObjective("Lives").getScore(event.getPlayer()).getScore() + "");
//        Objective lives = Bukkit.getScoreboardManager().getNewScoreboard().getObjective("Lives");
//        int currentScore = lives.getScore(event.getPlayer()).getScore();
//        currentScore--;
//        lives.getScore(event.getPlayer()).setScore(currentScore);
        Objective objective = Bukkit.getScoreboardManager().getNewScoreboard().registerNewObjective("Lives", "dummy");
        objective.setDisplaySlot(DisplaySlot.SIDEBAR);

        objective.setDisplayName("Lives");
        Score score = objective.getScore(Bukkit.getOfflinePlayer("Kills:"));
        score.setScore(1);
    }
 
Код:
@EventHandler
    public void respawnEvent(PlayerRespawnEvent event){
   
//        event.getPlayer().sendMessage(event.getPlayer().getScoreboard().getObjective("Lives").getScore(event.getPlayer()).getScore() + "");
//        Objective lives = event.getPlayer().getScoreboard().getObjective("Lives");

//        int currentScore = lives.getScore(event.getPlayer()).getScore();
//        currentScore--;
//        lives.getScore(event.getPlayer()).setScore(currentScore);
        Objective objective = event.getPlayer().getScoreboard().getObjective("Lives");

        Score score = objective.getScore(Bukkit.getOfflinePlayer("Kills:"));
        score.setScore(1);
    }
Вроде должно работать
 
Вот на сервере в скороборде(ScoreBoard) есть objective "Lives", как получить его у игрока и записать кол-во очков в переменную int. Буду рад за помощь.
Не совсем понял, что нужно автору, но, думаю так:
Код:
Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard(); //получаем борду
Objective obj = sb.registerNewObjective("totalKills", "totalKillCount"); //получаем по определенной критерии

obj.setDisplaySlot(DisplaySlot.SIDEBAR); //ставим слот
obj.setDisplayName("Total Kills:"); //определяем имя

Score score = obj.getScore(p); //получаем

int sc = score.getScore(); //в int
score.setScore(sc + 1); //ставим нужное кол-во

p.setScoreboard(sb); //ставим игрок эту борду

По поводу totalKillCount, читаем тут.
Вот так можно:
Код:
Objective obj = sb.getObjective("Lives");
 

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

Назад
Верх