package tv.mineinthebox.essentials.commands; import java.util.ArrayList; import java.util.List; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.instances.AlternateAccount; import tv.mineinthebox.essentials.instances.RestrictedCommand; import tv.mineinthebox.essentials.interfaces.CommandTemplate; import tv.mineinthebox.essentials.interfaces.XOfflinePlayer; public class CmdPlayerInfo extends CommandTemplate { private final xEssentials pl; public CmdPlayerInfo(xEssentials pl, Command cmd, CommandSender sender) { super(pl, cmd, sender); this.pl = pl; } private List<String> getPlayerByName(String p) { List<String> s = new ArrayList<String>(); for(XOfflinePlayer name : pl.getManagers().getPlayerManager().getOfflinePlayers()) { if(name.getName().toUpperCase().startsWith(p.toUpperCase())) { s.add(name.getName()); } } return s; } public List<String> onTabComplete(CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("playerinfo")) { if(args.length == 1) { if(sender.hasPermission(PermissionKey.CMD_PLAYER_INFO.getPermission())) { if(!args[0].equalsIgnoreCase("help")) { List<String> list = getPlayerByName(args[0]); return list; } } } } return null; } public boolean execute(CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("playerinfo")) { if(sender.hasPermission(PermissionKey.CMD_PLAYER_INFO.getPermission())) { if(args.length == 0) { showHelp(); } else if(args.length == 1) { if(args[0].equalsIgnoreCase("help")) { showHelp(); } else { if(pl.getManagers().getPlayerManager().isEssentialsPlayer(args[0])) { XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]); sender.sendMessage(ChatColor.GOLD + ".oO___[showing information about " + off.getName() + "]___Oo."); sender.sendMessage(ChatColor.GRAY + "file name: " + ChatColor.GREEN + off.getUniqueId()+".yml"); if(pl.getConfiguration().getGreyListConfig().isEnabled()) { sender.sendMessage(ChatColor.GRAY + "is greylisted: " + off.isGreyListed()); } sender.sendMessage(ChatColor.GRAY + "ip: " +ChatColor.GREEN+ off.getIp()); sender.sendMessage(ChatColor.GRAY + "isBanned: " +ChatColor.GREEN+ off.isPermBanned()); sender.sendMessage(ChatColor.GRAY + "isTempbanned: " +ChatColor.GREEN+ off.isTempBanned()); sender.sendMessage(ChatColor.GRAY + "amount of homes set: " +ChatColor.GREEN+ off.getAmountOfHomes()); sender.sendMessage(ChatColor.GRAY + "has alternate accounts: " +ChatColor.GREEN+ off.hasAlternateAccounts()); if(off.hasAlternateAccounts()) { AlternateAccount acount = off.getAlternateAccounts(); sender.sendMessage(ChatColor.GRAY + "alternate accounts: " + ChatColor.GREEN + acount.getAltsDetailed()); } sender.sendMessage(ChatColor.GRAY + "has command restrictions: " +ChatColor.GREEN+ off.hasCommandRestrictions()); if(off.hasCommandRestrictions()) { sender.sendMessage(ChatColor.GRAY + "command restrictions:"); for(RestrictedCommand c : off.getCommandRestrictions()) { sender.sendMessage(ChatColor.GREEN + "- " + c.getCommand()); } } if(off.hasNameHistory()) { sender.sendMessage(ChatColor.GREEN + "has name history:"); for(String s : off.getNameHistory()) { sender.sendMessage(ChatColor.GREEN + "- " + s); } } } else { getWarning(WarningType.NEVER_PLAYED_BEFORE); } } } } else { getWarning(WarningType.NO_PERMISSION); } } return false; } @Override public void showHelp() { sender.sendMessage(ChatColor.GOLD + ".oO___[Player info help]___Oo."); sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/playerinfo <player> " + ChatColor.WHITE + ": shows all the information of this player!"); } }