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

Как правильно работать с сайдбаром?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Bezobrazie, 24 май 2021.

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

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

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    У меня есть подобие мини игры, в которой при ломании определенного блока у тебя в сайдбаре начисляется переменная сломаных блоков, проблема в том что при ломании блока 2мя людьми с разу он начинает багатся то откатывает число у когото то он вообще не показывается,
    upload_2021-5-24_0-46-53.png
    думаю мб это происходит из за того что одновременно две части кода пытаются вывести в сайд бар что-то.
    Код:
    
    objective.getScore(p.getDisplayName()).setScore(plugin.getConfig().getInt(String.valueOf(p.getDisplayName()) + ".progress"));
        objective2.getScore(p.getDisplayName()).setScore(plugin.getConfig().getInt(String.valueOf(p.getDisplayName()) + ".progress"));
    objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
    objective2.setDisplayName("Блоков");
    objective2.setDisplaySlot(DisplaySlot.SIDEBAR);
    objective2.setDisplayName("§6§lСломано блоков: ");
    
     

    Вложения:

    Последнее редактирование: 24 май 2021
  2. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Попробуй так сделать что-ли
    PHP:
        private Scoreboard scoreboard;
        private 
    Objective brokenBlocksObjective;

        @
    Override
        
    public void onEnable() {
            
    Bukkit.getPluginManager().registerEvents(thisthis);
            
    ScoreboardManager manager Bukkit.getScoreboardManager();
            if (
    manager != null) {
                
    scoreboard manager.getMainScoreboard();
                
    brokenBlocksObjective scoreboard.registerNewObjective("BrokenBlocks""Blocks""Broken blocks"RenderType.INTEGER);
                
    brokenBlocksObjective.setDisplaySlot(DisplaySlot.SIDEBAR);
                for (
    Player player Bukkit.getOnlinePlayers())
                    
    brokenBlocksObjective.getScore(player.getName()).setScore(0);
            }
        }

        @
    Override
        
    public void onDisable() {
            if (
    scoreboard == null) return;
            if (
    brokenBlocksObjective != nullbrokenBlocksObjective.unregister();
        }

        @
    EventHandler
        
    public void onJoin(PlayerJoinEvent e) {
            if (
    scoreboard != null) {
                if (
    brokenBlocksObjective != null)
                    
    brokenBlocksObjective.getScore(e.getPlayer().getName()).setScore(0);
            }
        }

        @
    EventHandler
        
    public void onBreak(BlockBreakEvent event) {
            if (
    scoreboard != null) {
                if (
    brokenBlocksObjective != null) {
                    
    Score score brokenBlocksObjective.getScore(event.getPlayer().getName());
                    
    score.setScore(score.getScore() + 1);
                }
            }
        }
     

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