package com.walrusone.skywars.controllers;
import java.text.DecimalFormat;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
import com.walrusone.skywars.SkyWarsReloaded;
import com.walrusone.skywars.game.GamePlayer;
import com.walrusone.skywars.utilities.Messaging;
public class ScoreboardController {
public void getScoreboard(Player player) {
if (player != null && SkyWarsReloaded.getCfg().LobbyScoreboardEnabeld()) {
try {
GamePlayer gPlayer = SkyWarsReloaded.getPC().getPlayer(player.getUniqueId());
DecimalFormat df = new DecimalFormat("#.##");
double kd;
if (gPlayer.getDeaths() <= 0) {
kd = 0.00;
} else {
kd = (double) gPlayer.getKills()/gPlayer.getDeaths();
}
double money;
if (SkyWarsReloaded.getCfg().usingExternalEcomony()) {
money = (double) SkyWarsReloaded.econ.getBalance(player);
} else {
money = (double) gPlayer.getBalance();
}
boolean isOnePointSeven = SkyWarsReloaded.getNMS().isOnePointSeven();
if (isOnePointSeven) {
String moneyValue = new Messaging.MessageFormatter().format("scoreboard17.money");
String score = new Messaging.MessageFormatter().format("scoreboard17.score");
String wins = new Messaging.MessageFormatter().format("scoreboard17.wins");
String kills = new Messaging.MessageFormatter().format("scoreboard17.kills");
String gamesPlayed = new Messaging.MessageFormatter().format("scoreboard17.games-played");
String title = new Messaging.MessageFormatter().format("scoreboard.title");
ScoreboardManager manager = SkyWarsReloaded.get().getServer().getScoreboardManager();
Scoreboard board = manager.getNewScoreboard();
Objective stats = board.registerNewObjective("stats", "dummy");
stats.setDisplaySlot(DisplaySlot.SIDEBAR);
stats.setDisplayName(title);
Score moneyScore = stats.getScore(moneyValue);
moneyScore.setScore((int) money);
Score scoreScore = stats.getScore(score);
scoreScore.setScore(gPlayer.getScore());
Score winsScore = stats.getScore(wins);
winsScore.setScore(gPlayer.getWins());
Score killsScore = stats.getScore(kills);
killsScore.setScore(gPlayer.getKills());
Score gamesScore = stats.getScore(gamesPlayed);
gamesScore.setScore(gPlayer.getGamesPlayed());
if (player != null) {
player.setScoreboard(board);
}
} else {
String moneyValue = new Messaging.MessageFormatter().setVariable("value", df.format(money)).format("scoreboard.money");
String kdValue = new Messaging.MessageFormatter().setVariable("value", df.format(kd)).format("scoreboard.kd");
String score = new Messaging.MessageFormatter().setVariable("value", "" + gPlayer.getScore()).format("scoreboard.score");
String wins = new Messaging.MessageFormatter().setVariable("value", "" + gPlayer.getWins()).format("scoreboard.wins");
String kills = new Messaging.MessageFormatter().setVariable("value", "" + gPlayer.getKills()).format("scoreboard.kills");
String gamesPlayed = new Messaging.MessageFormatter().setVariable("value", "" + gPlayer.getGamesPlayed()).format("scoreboard.games-played");
String title = new Messaging.MessageFormatter().format("scoreboard.title");
ScoreboardManager manager = SkyWarsReloaded.get().getServer().getScoreboardManager();
Scoreboard board = manager.getNewScoreboard();
Objective stats = board.registerNewObjective("stats", "dummy");
stats.setDisplaySlot(DisplaySlot.SIDEBAR);
stats.setDisplayName(title);
Score moneyScore = stats.getScore(moneyValue);
moneyScore.setScore(6);
Score scoreScore = stats.getScore(score);
scoreScore.setScore(5);
Score winsScore = stats.getScore(wins);
winsScore.setScore(4);
Score killsScore = stats.getScore(kills);
killsScore.setScore(3);
Score gamesScore = stats.getScore(gamesPlayed);
gamesScore.setScore(2);
Score kdScore = stats.getScore(kdValue);
kdScore.setScore(1);
if (player != null) {
player.setScoreboard(board);
}
}
} catch (NullPointerException e) {
}
}
}
}