public class ScoreboardClass {
public static List<ScoreboardClass> sbList = new ArrayList<>();
private String displayName;
private List<String> scoresList;
private boolean isTopkills;
public ScoreboardClass(String displayName, List<String> scoresList) {
this.displayName = displayName;
this.scoresList = scoresList;
sbList.add(this);
}
public ScoreboardClass(String displayName) {
this.displayName = displayName;
this.isTopkills = true;
sbList.add(this);
}
public void send(Player player) {
List<WrapperPlayServerScoreboardScore> scores = Lists.newArrayList();
int slot = 14;
for (String s : scoresList) {
scores.add(newScore("s" + player.getName(), Utils.getVariables(s, player), slot));
--slot;
}
WrapperPlayServerScoreboardObjective remove = new WrapperPlayServerScoreboardObjective();
remove.setName("s" + player.getName());
remove.setDisplayName(displayName);
remove.setMode(1);
remove.sendPacket(player);
WrapperPlayServerScoreboardObjective objective = new WrapperPlayServerScoreboardObjective();
objective.setName(player.getName());
objective.setDisplayName(displayName);
objective.setMode(0);
WrapperPlayServerScoreboardDisplayObjective disp = new WrapperPlayServerScoreboardDisplayObjective();
disp.setPosition(1);
disp.setScoreName("s" + player.getName());
objective.sendPacket(player);
disp.sendPacket(player);
for (WrapperPlayServerScoreboardScore score : scores) score.sendPacket(player);
}
private WrapperPlayServerScoreboardScore newScore(String objName, String name, int value) {
WrapperPlayServerScoreboardScore score = new WrapperPlayServerScoreboardScore();
score.setObjectiveName(objName);
score.setScoreboardAction(EnumWrappers.ScoreboardAction.CHANGE);
score.setScoreName(name);
score.setValue(value);
return score;
}