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

Помогите Scoreboard не дополняется.

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    Для сервера пишу скор борд, хочу дополнить его, дак он не дополняется, незнаю в чём проблемы, раньше всё было окей, а сейчас сломалось.

    Вот код:

    Код:
    @EventHandler
        public void j(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            String pName = e.getPlayer().getName();
                    
            Holdings h1 = new Account(p.getName()).getHoldings();
            double balance1 = h1.getBalance();
        Scoreboard newScoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
        Objective o = newScoreboard.registerNewObjective("stats", "dummy");
        o.setDisplayName("§a§l✖§c§lRelease§3§lProject§a§l✖");
        o.setDisplaySlot(DisplaySlot.SIDEBAR);
        o.getScore("§7www.vk.com/releaseproject_mc").setScore(13);
        o.getScore("§4").setScore(12);
        o.getScore("§a§l✔§aУбийства-Мобов: §c" + getKills(p)).setScore(11);
        o.getScore("§a§l✔§aБаланс: §6§l" + h1.getBalance()).setScore(10);
        o.getScore("§a§l✔§aНик: §5" + pName(p)).setScore(9);
        o.getScore("§8").setScore(8);
        o.getScore("§fНа нашем сервере в честь §c§lОБТ,").setScore(7);
        o.getScore("§fДействуют скидки на §c§lдонат-услуги!").setScore(6);
        o.getScore("§f").setScore(5);
        o.getScore("§fМеню сервера - /§3§lmenu").setScore(4);
        o.getScore("§fПравила - /§6§lrules").setScore(3);
        o.getScore("§1").setScore(2);
        o.getScore("§7www.vk.com/releaseproject_mc").setScore(1);
        e.getPlayer().setScoreboard(newScoreboard);
    
        }
    
    
    
    
    
    
    
        @SuppressWarnings("unused")
        private Score pName(Player p) {
            String pName = p.getName();
            return null;
        }
    
        
        @EventHandler
        public void xzxz(BlockBreakEvent e) {
            Player p = e.getPlayer();
            if(p == null) return;
            updateScoreboard(p);
        }
    
    
    
    
    
        @EventHandler
        public void xz(EntityDeathEvent e) {
        Player p = e.getEntity().getKiller();
        if(p == null) return;
        updateScoreboard(p);
        }
        
    
        private void updateScoreboard(Player p) {
            Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
                
                @Override
                public void run() {
                    Scoreboard s = p.getScoreboard();
                    for (String e : s.getEntries()) {
                        s.resetScores(e);
                    }
                    
                    Holdings h1 = new Account(p.getName()).getHoldings();
                    Objective o = s.getObjective("stats");
                    o.getScore("§7www.vk.com/releaseproject_mc").setScore(13);
                    o.getScore("§4").setScore(12);
                    o.getScore("§a§l✔§aУбийства-Мобов: §c" + getKills(p)).setScore(11);
                    o.getScore("§a§l✔§aБаланс: §6§l" + h1.getBalance()).setScore(10);
                    o.getScore("§a§l✔§aНик: §5" + pName(p)).setScore(9);
                    o.getScore("§8").setScore(8);
                    o.getScore("§fНа нашем сервере в честь §c§lОБТ,").setScore(7);
                    o.getScore("§fДействуют скидки на §c§lдонат-услуги!").setScore(6);
                    o.getScore("§f").setScore(5);
                    o.getScore("§fМеню сервера - /§3§lmenu").setScore(4);
                    o.getScore("§fПравила - /§6§lrules").setScore(3);
                    o.getScore("§1").setScore(2);
                    o.getScore("§7www.vk.com/releaseproject_mc").setScore(1);
                }
                }, 0L, 20L);
                
            }
                    
        private int getKills(Player player) {
        Scoreboard main = Bukkit.getScoreboardManager().getMainScoreboard();
        Objective obj = main.getObjective("kills");
        if(obj == null) obj = main.registerNewObjective("kills", "totalKillCount");
        return obj.getScore(player.getName()).getScore();
        }
     
  2. MurlikMurlik

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

    Баллы:
    96
    Дак сделай шедулер и обновляй переменные
     
  3. Автор темы
    Kloper

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    так ниже же я обновляю их, в updateScoreboard
     
  4. MurlikMurlik

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

    Баллы:
    96
    Ты обновляешь борд только когда игрок заходит на сервер...
    И все, больше борд никогда не обновится. Тебе нужно шедулером его обновлять.
     
  5. Автор темы
    Kloper

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    как именно его обновлять, я же так же его обновляю при убийстве мобов.
     
  6. MurlikMurlik

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

    Баллы:
    96
    Ты сейчас при убийствах, ломания или установке блоков, каждый раз запускаешь новый шедулер на обновление... то есть сломаешь 20 блоков, запустишь 20 шедулеров, которые будут тебе обновлять борд..
    Запускай шедулер после запуска плагина и убирай все ивенты кроме входа.
    При входе создавай боард и обновляй игроку его. А шедулер сам указанное время будет у всех его обновлять.
     
  7. Автор темы
    Kloper

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    спасибо
     
  8. alexandrage

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

    Баллы:
    173

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