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

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

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);
    }
 
Ошибка на 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);
    }
Так у тебя iterator null..
 
Можно переписать как
PHP:
for(Player p : Bukkit.getOnlinePlayers()) {
     ScoreBoard.updateScoreboard(p);
}
 
Ну это уже проблемы с кодом обновления боарда.

Код:
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>();
    }
}
 
Код:
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>();
    }
}
facepalm лютый
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх