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

Помогите ScoreBoard (обновление скорборда)

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

Статус темы:
Закрыта.
  1. Автор темы
    ShitCoder

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

    Баллы:
    76
    Имя в Minecraft:
    TheLastGapple
    Ошибка на 7 строке.
    Код:
        public void SbUpdate() {
            final Iterator<Player> iterator = null;
            Player p;
            Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask((Plugin)Main.instance, () -> {
                Bukkit.getOnlinePlayers().iterator();
                while (iterator.hasNext()) {
                    p = iterator.next();
                    ScoreBoard.updateScoreboard(p);
                }
            }, 1L, 60L);
        }
     
  2. l_Slime_l

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

    Баллы:
    76
    Так у тебя iterator null..
     
  3. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Плюсую
     
  4. Автор темы
    ShitCoder

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

    Баллы:
    76
    Имя в Minecraft:
    TheLastGapple
    а как правильно?
     
  5. DragSnNaizer

    DragSnNaizer Новичок Пользователь

    Баллы:
    11
    Код:
    Iterator<Player> iterator = Bukkit.getOnlinePlayers().iterator();
    
    Примерно так, если я не ошибаюсь.
     
  6. l_Slime_l

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

    Баллы:
    76
    Кстати названия методов пиши в lowerCamelCase.
     
  7. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Можно переписать как
    PHP:
    for(Player p Bukkit.getOnlinePlayers()) {
         
    ScoreBoard.updateScoreboard(p);
    }
     
  8. Автор темы
    ShitCoder

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

    Баллы:
    76
    Имя в Minecraft:
    TheLastGapple
    так?
    Код:
        public void SbUpdate() {
            for(Player p : Bukkit.getOnlinePlayers()) {
                 ScoreBoard.updateScoreboard(p);
            }
        }
     
  9. DragSnNaizer

    DragSnNaizer Новичок Пользователь

    Баллы:
    11
    Да, так.
     
  10. Автор темы
    ShitCoder

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

    Баллы:
    76
    Имя в Minecraft:
    TheLastGapple
    Заменил на этот код, скорборд не отображается.
     
  11. DragSnNaizer

    DragSnNaizer Новичок Пользователь

    Баллы:
    11
    Ну это уже проблемы с кодом обновления боарда.
     
  12. Автор темы
    ShitCoder

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

    Баллы:
    76
    Имя в Minecraft:
    TheLastGapple
    Код:
    import org.bukkit.entity.*;
    import org.bukkit.event.player.*;
    import org.bukkit.event.*;
    import org.bukkit.scoreboard.*;
    import org.bukkit.*;
    import java.util.*;
    
    public class ScoreBoard implements Listener
    {
        List<Scoreboard> scb;
        static ArrayList<Player> jedi;
        static ArrayList<Player> sith;
        static ArrayList<Player> alliance;
        
        public ScoreBoard() {
            this.scb = new ArrayList<Scoreboard>();
        }
        
        @EventHandler
        public void onJoin(final PlayerJoinEvent e) {
            final Player p = e.getPlayer();
            final Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
            this.scb.add(sb);
            final Team alliance = sb.registerNewTeam("Alliance");
            alliance.setPrefix("" + ChatColor.GRAY);
            final Team jedi = sb.registerNewTeam("Jedi");
            jedi.setPrefix("" + ChatColor.DARK_AQUA);
            final Team sith = sb.registerNewTeam("Sith");
            sith.setPrefix("" + ChatColor.DARK_RED);
            p.setScoreboard(sb);
            updateScoreboard(p);
        }
        
        public static void updateScoreboard(final Player p) {
            p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
            final Scoreboard playerBoard = p.getScoreboard();
            for (final Objective stats : playerBoard.getObjectives()) {
                stats.unregister();
            }
            Objective stats = playerBoard.registerNewObjective("Stats", "dummy");
            stats.setDisplaySlot(DisplaySlot.SIDEBAR);
            stats.setDisplayName(ChatColor.translateAlternateColorCodes('&', " &5&lPointMine"));
            if (Main.econ.getBalance((OfflinePlayer)p) >= Main.instance.getConfig().getInt("levels." + Levels.getNextLevel(p) + ".price") && Levels.kills.get(p.getName()) >= Main.instance.getConfig().getInt("levels." + Levels.getNextLevel(p) + ".blocks") && Levels.getLevel(p) != Main.instance.getConfig().getInt("MaxLevel")) {
                stats.getScore("�6�&n\u041d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c!".replace('&', '�')).setScore(14);
                stats.getScore("    ").setScore(15);
            }
            else if (Levels.getLevel(p) == Main.instance.getConfig().getInt("MaxLevel")) {
                stats.getScore("�6�l\u0423 \u0432\u0430\u0441 \u043c\u0430\u043a\u0441. \u0443\u0440\u043e\u0432\u0435\u043d\u044c").setScore(14);
            }
            if (Levels.getFaction(p).equalsIgnoreCase("Jedi")) {
                stats.getScore("�dСторона: �b\u0421\u0432\u0435\u0442").setScore(12);
            }
            if (Levels.getFaction(p).equalsIgnoreCase("Sith")) {
                stats.getScore("�dСторона: �c\u0422\u044c\u043c\u0430").setScore(12);
            }
            if (!Levels.getFaction(p).equalsIgnoreCase("Jedi") && !Levels.getFaction(p).equalsIgnoreCase("Sith")) {
                stats.getScore("�dСторона: �7\u0410\u043b\u044c\u044f\u043d\u0441").setScore(12);
            }
            stats.getScore("    ").setScore(11);
            stats.getScore("�d\u0423\u0440\u043e\u0432\u0435\u043d\u044c: �5" + Levels.getLevel(p)).setScore(10);
            stats.getScore("   ").setScore(9);
            stats.getScore("�dБаланс: " + "�5" + Main.econ.getBalance((OfflinePlayer)p)).setScore(8);
            stats.getScore("  ").setScore(6);
            stats.getScore("�dКиллов:" + "�5" + Levels.kills.get(p.getName()) + "�5").setScore(5);
            stats.getScore(" ").setScore(3);
            stats.getScore("�d\u041e\u043d\u043b\u0430\u0439\u043d:").setScore(2);
            ScoreBoard.jedi.clear();
            ScoreBoard.sith.clear();
            ScoreBoard.alliance.clear();
            for (final Player player2 : Bukkit.getOnlinePlayers()) {
                if (Levels.getSide(player2).equalsIgnoreCase("Jedi")) {
                    ScoreBoard.jedi.add(player2);
                }
                if (Levels.getSide(player2).equalsIgnoreCase("Sith")) {
                    ScoreBoard.sith.add(player2);
                }
                if (!Levels.getSide(player2).equalsIgnoreCase("Jedi") && !Levels.getSide(player2).equalsIgnoreCase("Sith")) {
                    ScoreBoard.alliance.add(player2);
                }
            }
            if (ScoreBoard.jedi.contains(p)) {
                stats.getScore("" + ChatColor.DARK_AQUA + ScoreBoard.jedi.size() + "/" + ChatColor.DARK_RED + ScoreBoard.sith.size() + "/" + ChatColor.GRAY + ScoreBoard.alliance.size()).setScore(1);
                p.setPlayerListName(ChatColor.DARK_AQUA + p.getName());
            }
            if (ScoreBoard.sith.contains(p)) {
                stats.getScore("" + ChatColor.DARK_RED + ScoreBoard.sith.size()).setScore(1);
                p.setPlayerListName(ChatColor.DARK_RED + p.getName());
            }
            if (ScoreBoard.alliance.contains(p)) {
                stats.getScore("" + ChatColor.GRAY + ScoreBoard.alliance.size()).setScore(1);
                p.setPlayerListName(ChatColor.GRAY + p.getName());
            }
        }
        
        static {
            ScoreBoard.jedi = new ArrayList<Player>();
            ScoreBoard.sith = new ArrayList<Player>();
            ScoreBoard.alliance = new ArrayList<Player>();
        }
    }
    
     
  13. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    facepalm лютый
     
  14. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Зато его ник оправдывает :lol:
     
Статус темы:
Закрыта.

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