1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-29 22:13:25 +01:00
Jobs/com/gamingmesh/jobs/commands/list/log.java
2016-03-30 16:42:36 +03:00

101 lines
3.3 KiB
Java

package com.gamingmesh.jobs.commands.list;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gamingmesh.jobs.Jobs;
import com.gamingmesh.jobs.JobsPlugin;
import com.gamingmesh.jobs.commands.Cmd;
import com.gamingmesh.jobs.commands.JobCommand;
import com.gamingmesh.jobs.container.JobsPlayer;
import com.gamingmesh.jobs.container.Log;
import com.gamingmesh.jobs.container.LogAmounts;
import com.gamingmesh.jobs.stuff.Sorting;
public class log implements Cmd {
@JobCommand(1100)
public boolean perform(JobsPlugin plugin, final CommandSender sender, final String[] args) {
if (!(sender instanceof Player) && args.length != 1) {
sender.sendMessage(Jobs.getLanguage().getMessage("general.error.ingame"));
return false;
}
if (args.length != 1 && args.length != 0) {
Jobs.getCommandManager().sendUsage(sender, "log");
return true;
}
JobsPlayer JPlayer = null;
if (args.length == 0)
JPlayer = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
else if (args.length == 1) {
if (!sender.hasPermission("jobs.commands.log.others")) {
sender.sendMessage(Jobs.getLanguage().getMessage("general.error.permission"));
return true;
}
JPlayer = Jobs.getPlayerManager().getJobsPlayer(args[0]);
if (JPlayer == null)
JPlayer = Jobs.getPlayerManager().getJobsPlayerOffline(args[0]);
}
if (JPlayer == null) {
Jobs.getCommandManager().sendUsage(sender, "log");
return true;
}
List<Log> logList = JPlayer.getLog();
if (logList.size() == 0) {
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.bottomline"));
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.nodata"));
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.bottomline"));
return true;
}
Map<String, Double> unsortMap = new HashMap<String, Double>();
for (Log one : logList) {
HashMap<String, LogAmounts> AmountList = one.getAmountList();
for (Entry<String, LogAmounts> oneMap : AmountList.entrySet()) {
unsortMap.put(oneMap.getKey(), oneMap.getValue().getMoney());
}
}
unsortMap = Sorting.sortDoubleDESC(unsortMap);
int count = 0;
int max = 10;
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.topline", "%playername%", JPlayer.getUserName()));
for (Log one : logList) {
HashMap<String, LogAmounts> AmountList = one.getAmountList();
for (Entry<String, Double> oneSorted : unsortMap.entrySet()) {
for (Entry<String, LogAmounts> oneMap : AmountList.entrySet()) {
if (oneMap.getKey().equalsIgnoreCase(oneSorted.getKey())) {
count++;
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.list",
"%number%", count,
"%action%", one.getActionType(),
"%item%", oneMap.getValue().getItemName().replace(":0", "").replace("_", " ").toLowerCase(),
"%qty%", oneMap.getValue().getCount(),
"%money%", oneMap.getValue().getMoney(),
"%exp%", oneMap.getValue().getExp()));
break;
}
}
if (count > max)
break;
}
if (count > max)
break;
}
sender.sendMessage(Jobs.getLanguage().getMessage("command.log.output.bottomline"));
return true;
}
}