Plan/Plan Advanced/src/com/djrapitops/plan/command/commands/InspectCommand.java

100 lines
3.8 KiB
Java

package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Phrase;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.UUIDFetcher;
import com.djrapitops.plan.command.CommandType;
import com.djrapitops.plan.command.SubCommand;
import com.djrapitops.plan.command.utils.DataFormatUtils;
import com.djrapitops.plan.command.utils.DataUtils;
import com.djrapitops.plan.data.ServerData;
import java.util.Date;
import com.djrapitops.plan.data.UserData;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import static org.bukkit.Bukkit.getOfflinePlayer;
import static org.bukkit.Bukkit.getOfflinePlayer;
public class InspectCommand extends SubCommand {
private Plan plugin;
public InspectCommand(Plan plugin) {
super("inspect", "plan.inspect", "Inspect data /plan <player> [-a, -r].", CommandType.CONSOLE_WITH_ARGUMENTS);
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
String playerName = DataUtils.getPlayerDisplayname(args, sender);
UUID uuid;
try {
uuid = UUIDFetcher.getUUIDOf(playerName);
if (uuid == null) {
throw new Exception("Username doesn't exist.");
}
} catch (Exception e) {
sender.sendMessage(Phrase.USERNAME_NOT_VALID.toString());
return true;
}
OfflinePlayer p = getOfflinePlayer(uuid);
if (!p.hasPlayedBefore()) {
sender.sendMessage(Phrase.USERNAME_NOT_SEEN.toString());
return true;
}
if (!plugin.getDB().wasSeenBefore(uuid)) {
sender.sendMessage(Phrase.USERNAME_NOT_KNOWN.toString());
return true;
}
Date refreshDate = new Date();
UserData data = plugin.getHandler().getCurrentData(uuid);
ChatColor operatorColor = Phrase.COLOR_MAIN.color();
ChatColor textColor = Phrase.COLOR_SEC.color();
List<String> msgs = new ArrayList<>();
msgs.add("Logintimes " + data.getLoginTimes());
msgs.add("BedLocation " + data.getBedLocation().getBlockX());
msgs.add("GeoLoc " + data.getDemData().getGeoLocation());
msgs.add("GMTimes values " + data.getGmTimes().values().toString());
msgs.add("Ips " + data.getIps().toString());
msgs.add("Last gamemode " + data.getLastGamemode());
msgs.add("Last gm swap time " + data.getLastGmSwapTime());
msgs.add("Last Played " + data.getLastPlayed());
msgs.add("Location " + data.getLocation().getBlockX());
msgs.add("Nicknames " + data.getNicknames().toString());
msgs.add("Registered " + data.getRegistered());
msgs.add("TimesKicked " + data.getTimesKicked());
msgs.add("Uuid " + data.getUuid());
msgs.add("PlayTime " + data.getPlayTime());
msgs.add("Banned "+ data.isBanned());
msgs.add("Opped" + data.isOp());
msgs.add(operatorColor + "SERVER");
ServerData sdata = plugin.getHandler().getServerData();
msgs.add("Commands " + sdata.getCommandUsage().keySet().toString());
msgs.add("New Players " + sdata.getNewPlayers());
msgs.add("Online Players " + sdata.getPlayersOnline());
//header
sender.sendMessage(textColor + "-- [" + operatorColor + "PLAN - Inspect results: " + playerName + " - took " + DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date()) + textColor + "] --");
for (String message : msgs) {
sender.sendMessage(textColor + message);
}
sender.sendMessage(textColor + "-- o --");
return true;
}
}