Помогите как вывести в ник игрока префиксы

  • Автор темы Автор темы tiu
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

tiu

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
tiu
как вывести в ник игрока префиксы
 
Последнее редактирование:
Код:
    public static void createscoreboard(Player p) {
        
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard = manager.getNewScoreboard();
        Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
        objectiveside.setDisplaySlot(DisplaySlot.SIDEBAR);
        Team team = scoreboard.registerNewTeam("team");
        team.setPrefix("huy ");
        team.setSuffix(" nya");
        team.setAllowFriendlyFire(false);
        team.setCanSeeFriendlyInvisibles(true);
        team.addPlayer(p);
        
        p.setScoreboard(scoreboard);
        updatescoreboard(p);
    }
    
    public static void updatescoreboard(Player p) {
        updatesidebar(p);
        p.getScoreboard().getTeam("team").addPlayer(p);
    }

ники не меняются
 
Код:
    public static void createscoreboard(Player p) {
       
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard = manager.getNewScoreboard();
        Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
        objectiveside.setDisplaySlot(DisplaySlot.SIDEBAR);
        Team team = scoreboard.registerNewTeam("team");
        team.setPrefix("huy ");
        team.setSuffix(" nya");
        team.setAllowFriendlyFire(false);
        team.setCanSeeFriendlyInvisibles(true);
        team.addPlayer(p);
       
        p.setScoreboard(scoreboard);
        updatescoreboard(p);
    }
   
    public static void updatescoreboard(Player p) {
        updatesidebar(p);
        p.getScoreboard().getTeam("team").addPlayer(p);
    }

ники не меняются
DisplaySlot.SIDEBAR не смущает? Ставь DisplaySlot.BELOW_NAME или что то подобное
 
DisplaySlot.SIDEBAR не смущает? Ставь DisplaySlot.BELOW_NAME или что то подобное
так это обжекстив равне это связанно с командой?
и к тому же если я пытаюсь дать всем эту команду
Код:
        for (Player all : Bukkit.getOnlinePlayers()) {
            for(Player all2 : Bukkit.getOnlinePlayers()) {
                all.getScoreboard().getTeam("team").addPlayer(all2);
            }
        }
то всё работает проблема только в том что у всех одинаковый префиксы так как команда у всех 1
 
так это обжекстив равне это связанно с командой?
и к тому же если я пытаюсь дать всем эту команду
Код:
        for (Player all : Bukkit.getOnlinePlayers()) {
            for(Player all2 : Bukkit.getOnlinePlayers()) {
                all.getScoreboard().getTeam("team").addPlayer(all2);
            }
        }
то всё работает проблема только в том что у всех одинаковый префиксы так как команда у всех 1
Ну так исправь и дай всем разные команды.
 
Ну так исправь и дай всем разные команды.
я это делаю когда при входе игрока создаю скорборд

Код:
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard = manager.getNewScoreboard();
        Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
        objectiveside.setDisplaySlot(DisplaySlot.SIDEBAR);
        Team team = scoreboard.registerNewTeam("team");
        team.setPrefix("huy " + main.kills.get(p));
        team.setSuffix(" nya");
        team.setAllowFriendlyFire(false);
        team.setCanSeeFriendlyInvisibles(true);
        team.addPlayer(p);

но префиксы не ставятся

Код:
    public static void createscoreboard(Player p) {
        
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard = manager.getNewScoreboard();
        Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
        objectiveside.setDisplaySlot(DisplaySlot.SIDEBAR);
        Team team = scoreboard.registerNewTeam("team");
        team.setPrefix("huy " + main.kills.get(p));
        team.setSuffix(" nya");
        team.setAllowFriendlyFire(false);
        team.setCanSeeFriendlyInvisibles(true);
        team.addPlayer(p);
        
        p.setScoreboard(scoreboard);
        updatescoreboard(p);
    }
    
    public static void updatescoreboard(Player p) {
        updatesidebar(p);
        updateteam(p);
    }
    
    public static void updatesidebar(Player p) {
        
        if(p.getScoreboard() == null) return;
        if(p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR) == null) return;
        
        for(String entr : p.getScoreboard().getEntries()) {
            p.getScoreboard().resetScores(entr);
        }
        //setScore();
        p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR).getScore(ChatColor.RED + "" + ChatColor.BOLD + "kills   " + main.kills.get(p)).setScore(10);
        p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR).getScore(ChatColor.GREEN + "" + ChatColor.BOLD + "alive   " + main.getPlayers().size()).setScore(9);
    }
    public static void updateteam(Player p) {
        //p.getScoreboard().getTeam("team").addPlayer(p);
        for (Player all : Bukkit.getOnlinePlayers()) {
            for(Player all2 : Bukkit.getOnlinePlayers()) {
                all.getScoreboard().getTeam("team").addPlayer(all2);
            }
        }
    }
 
Код:
Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
Вместо "dumme" ты скорее всего хотел написать "dummy"
Создавай один скорборд при включении сервера, и ставь его игроку когда он заходит. И вместе с этим добавляй его в команду, чтобы у него появлялся префикс. Если каждому игроку нужна отдельная команда, создавай новую команду при первом заходе игрока, т.е. например scoreboard.registerNewTeam("(НИК ИГРОКА)"); . Создавать команду с именем, как у игрока, чтобы можно было легко проверить, существует ли такая команда.
И лучше напиши ещё раз по пунктам, что тебе нужно и что не получается.
 
Код:
Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dumme", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
Вместо "dumme" ты скорее всего хотел написать "dummy"
Создавай один скорборд при включении сервера, и ставь его игроку когда он заходит. И вместе с этим добавляй его в команду, чтобы у него появлялся префикс. Если каждому игроку нужна отдельная команда, создавай новую команду при первом заходе игрока, т.е. например scoreboard.registerNewTeam("(НИК ИГРОКА)"); . Создавать команду с именем, как у игрока, чтобы можно было легко проверить, существует ли такая команда.
И лучше напиши ещё раз по пунктам, что тебе нужно и что не получается.

вариант с 1 скорбордом я уже пробовал он мне не подходит
так как мне нужно что бы у каждого игрока в скорборде отображалось его количество килов
так вот мне просто нужно поставить игроку свой префикс в нике над моделькой и всё
 
вариант с 1 скорбордом я уже пробовал он мне не подходит
так как мне нужно что бы у каждого игрока в скорборде отображалось его количество килов
так вот мне просто нужно поставить игроку свой префикс в нике над моделькой и всё
Я не думаю, что есть смысл использовать больше одного скорборда. Есть смысл изменять скорборд у игрока когда он делает убийство.
 
Я не думаю, что есть смысл использовать больше одного скорборда. Есть смысл изменять скорборд у игрока когда он делает убийство.
как если скорборд 1 я буду изменять скоры в скорборде игроков? я не смогу выводить каждому игроку ЕГО количество килов
 
Я не думаю, что есть смысл использовать больше одного скорборда. Есть смысл изменять скорборд у игрока когда он делает убийство.
мне просто нужно каждому игроку давать свою команду и этой команде поставить префикс
 
мне просто нужно каждому игроку давать свою команду и этой команде поставить префикс
Эм, делаешь какой-нибудь допустим $kills$, а потом для каждого игрока заменяешь эту строку... Все можно сделать с одним scoreboard
 
Эм, делаешь какой-нибудь допустим $kills$, а потом для каждого игрока заменяешь эту строку... Все можно сделать с одним scoreboard
как?ведь если скорборд будет 1 и мы изменить скор офлайн игрока

Код:
        p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR).getScore(ChatColor.RED + "" + ChatColor.BOLD + "kills   " + main.kills.get(p)).setScore(10);

У меня в сайдбаре помимо килов ещё много всего и у каждого игрока оно должно быть разное
а если скорборд будет 1 оно будет меняться у всех разве нет?
 
Ты забыл игроку поставить этот скорборд.
Код:
public class scoreboard {
    
    public static void createscoreboard(Player p) {
        
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard = manager.getNewScoreboard();
        Objective objectiveside = scoreboard.registerNewObjective("sidebar", "dummy", ChatColor.RED + "" + ChatColor.BOLD + "arena     ", RenderType.INTEGER);
        objectiveside.setDisplaySlot(DisplaySlot.SIDEBAR);
        Team team = scoreboard.registerNewTeam("team");
        team.setPrefix("huy " + main.kills.get(p) + " ");
        team.setSuffix(" nya");
        team.setAllowFriendlyFire(true);
        team.setCanSeeFriendlyInvisibles(true);
        team.addPlayer(p);
        
        p.setScoreboard(scoreboard);
        updatescoreboard(p);
    }
    
    public static void updatescoreboard(Player p) {
        updatesidebar(p);
        updateteam(p);
    }
    
    public static void updatesidebar(Player p) {
        
        if(p.getScoreboard() == null) return;
        if(p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR) == null) return;
        
        for(String entr : p.getScoreboard().getEntries()) {
            p.getScoreboard().resetScores(entr);
        }
        
        //setScore();
        p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR).getScore(ChatColor.RED + "" + ChatColor.BOLD + "kills   " + main.kills.get(p)).setScore(10);
        p.getScoreboard() .getObjective(DisplaySlot.SIDEBAR).getScore(ChatColor.GREEN + "" + ChatColor.BOLD + "alive   " + main.getPlayers().size()).setScore(9);

    }
    public static void updateteam(Player p) {
        p.getScoreboard().getTeam("team").addPlayer(p);
        /*for (Player all : Bukkit.getOnlinePlayers()) {
            for(Player all2 : Bukkit.getOnlinePlayers()) {
                all.getScoreboard().getTeam("team").addPlayer(all2);
            }
        }*/
    }
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх