package regalowl.hyperconomy;
import java.util.ArrayList;
import org.bukkit.command.CommandSender;
public class Hctop {
Hctop(String args[], CommandSender sender) {
HyperConomy hc = HyperConomy.hc;
EconomyManager em = hc.getEconomyManager();
LanguageFile L = hc.getLanguageFile();
try {
if (hc.useExternalEconomy()) {
sender.sendMessage(L.get("ONLY_AVAILABLE_INTERNAL"));
return;
}
int pe;
if (args.length == 1) {
pe = Integer.parseInt(args[0]);
} else if (args.length == 0) {
pe = 1;
} else {
sender.sendMessage(L.get("HCTOP_INVALID"));
return;
}
ArrayList<String> players = new ArrayList<String>();
ArrayList<Double> balances = new ArrayList<Double>();
for (HyperPlayer hp:em.getHyperPlayers()) {
players.add(hp.getName());
balances.add(hp.getBalance());
}
ArrayList<String> splayers = new ArrayList<String>();
ArrayList<Double> sbalances = new ArrayList<Double>();
while (balances.size() > 0) {
int topBalanceIndex = 0;
double topBalance = 0;
for (int i = 0; i < balances.size(); i++) {
double curBal = balances.get(i);
if (curBal > topBalance) {
topBalance = curBal;
topBalanceIndex = i;
}
}
sbalances.add(topBalance);
splayers.add(players.get(topBalanceIndex));
balances.remove(topBalanceIndex);
players.remove(topBalanceIndex);
}
double serverTotal = 0.0;
for (int i = 0; i < sbalances.size(); i++) {
serverTotal += sbalances.get(i);
}
sender.sendMessage(L.get("TOP_BALANCE"));
sender.sendMessage(L.f(L.get("TOP_BALANCE_PAGE"), pe, (int)Math.ceil(sbalances.size()/10.0)));
sender.sendMessage(L.f(L.get("TOP_BALANCE_TOTAL"), L.formatMoney(serverTotal)));
int ps = pe - 1;
ps *= 10;
pe *= 10;
for (int i = ps; i < pe; i++) {
if (i > (sbalances.size() - 1)) {
sender.sendMessage(L.get("REACHED_END"));
return;
}
sender.sendMessage(L.f(L.get("TOP_BALANCE_BALANCE"), splayers.get(i), L.formatMoney(sbalances.get(i)), (i + 1)));
}
} catch (Exception e) {
sender.sendMessage(L.get("HCTOP_INVALID"));
}
}
}