(Решено)Prefix

Статус
Закрыто для дальнейших ответов.

Forest_SD

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Forest_SD
Привет всем, столкнулся с проблемой в виде нуля в tabList, как будто указал SideBar, но нет просто не понимаю я указываю в критерий dummy (не должно же там ничего быть), но почему ноль то?Я хочу его как-то убрать уже 2 час, но в пустую, подскажите как быть?версия 1.11.2, чуть ниже скрин и код.
Код:
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
                    Objective obj = scoreboard.getObjective(DisplaySlot.PLAYER_LIST);
                    if(obj == null){
                        obj = scoreboard.registerNewObjective("player_list","dummy");
                    }
                    Team prefix = scoreboard.getTeam("prefix");
                    if(prefix == null){
                        prefix =  scoreboard.registerNewTeam("prefix");
                    }
                    prefix.setPrefix(Message.lol.getValue());
                    obj.setDisplayName(player.getName());
                    obj.setDisplaySlot(DisplaySlot.PLAYER_LIST);
                    prefix.addEntry(player.getName());
 

Вложения

  • 0.png
    0.png
    1,7 КБ · Просмотры: 19
Последнее редактирование:
Ну дык ты зарегал обджектив и поставил его сразу в таб лист, так и должно быть. У игрока то 0 очков в этом обджективе
 
Ну дык ты зарегал обджектив и поставил его сразу в таб лист, так и должно быть. У игрока то 0 очков в этом обджективе
А как по другому то?)Есть еще конечно костыльный метод, префикс в имя совать, тогда это уже не префикс будет, а наркомания какая-то
 
+ Зачем ты каждый раз инцилизируешь Scoreboard? 1 раз при запуске делай и всё, то же самое с регистрацией тим, и зачем ты обджективу ставишь имя игрока?
А как по другому то?)Есть еще конечно костыльный метод, префикс в имя совать, тогда это уже не префикс будет, а наркомания какая-то
Это в ваниле так заложено, попробуй сделать на командных блоках так же будет - если у игрока 0 очков то и будет отображаться 0 очков. Чтобы не показывались очки, то и нужно убрать с таб листа обджектив
 
+ Зачем ты каждый раз инцилизируешь Scoreboard? 1 раз при запуске делай и всё, то же самое с регистрацией тим, и зачем ты обджективу ставишь имя игрока?

Это в ваниле так заложено, попробуй сделать на командных блоках так же будет - если у игрока 0 очков то и будет отображаться 0 очков. Чтобы не показывались очки, то и нужно убрать с таб листа обджектив
Но ведь если его убрать то будет NPE
 
Мне нужно чтобы он поставил игроку префикс, который я укажу, и все. А DisplaySlot чтобы от туда достать Player_List
 
Мне нужно чтобы он поставил игроку префикс, который я укажу, и все. А DisplaySlot чтобы от туда достать Player_List
Почитай на досуге что такое Scoreboard и с чем его едят. Решение твоей проблемы:
92f7a42873cd47e28fa4b7193de9fad0.png

Или еще проще:
player.setPlayerListName("твой префикс"+player.getName());
 
Почитай на досуге что такое Scoreboard и с чем его едят. Решение твоей проблемы:
92f7a42873cd47e28fa4b7193de9fad0.png

Или еще проще:
player.setPlayerListName("твой префикс"+player.getName());
лул...ну я и поц, спасибо что прояснил)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх