package net.minecraft.command; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.event.ClickEvent; import net.minecraft.server.MinecraftServer; import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; public class CommandHelp extends CommandBase { private static final String __OBFID = "CL_00000529"; public String getCommandName() { return "help"; } /** * Return the required permission level for this command. */ public int getRequiredPermissionLevel() { return 0; } public String getCommandUsage(ICommandSender sender) { return "commands.help.usage"; } public List getCommandAliases() { return Arrays.asList(new String[] {"?"}); } public void processCommand(ICommandSender sender, String[] args) throws CommandException { List var3 = this.getSortedPossibleCommands(sender); boolean var4 = true; int var5 = (var3.size() - 1) / 7; boolean var6 = false; int var13; try { var13 = args.length == 0 ? 0 : parseInt(args[0], 1, var5 + 1) - 1; } catch (NumberInvalidException var12) { Map var8 = this.getCommands(); ICommand var9 = (ICommand)var8.get(args[0]); if (var9 != null) { throw new WrongUsageException(var9.getCommandUsage(sender), new Object[0]); } if (MathHelper.parseIntWithDefault(args[0], -1) != -1) { throw var12; } throw new CommandNotFoundException(); } int var7 = Math.min((var13 + 1) * 7, var3.size()); ChatComponentTranslation var14 = new ChatComponentTranslation("commands.help.header", new Object[] {Integer.valueOf(var13 + 1), Integer.valueOf(var5 + 1)}); var14.getChatStyle().setColor(EnumChatFormatting.DARK_GREEN); sender.addChatMessage(var14); for (int var15 = var13 * 7; var15 < var7; ++var15) { ICommand var10 = (ICommand)var3.get(var15); ChatComponentTranslation var11 = new ChatComponentTranslation(var10.getCommandUsage(sender), new Object[0]); var11.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + var10.getCommandName() + " ")); sender.addChatMessage(var11); } if (var13 == 0 && sender instanceof EntityPlayer) { ChatComponentTranslation var16 = new ChatComponentTranslation("commands.help.footer", new Object[0]); var16.getChatStyle().setColor(EnumChatFormatting.GREEN); sender.addChatMessage(var16); } } /** * Returns a sorted list of all possible commands for the given ICommandSender. */ protected List getSortedPossibleCommands(ICommandSender p_71534_1_) { List var2 = MinecraftServer.getServer().getCommandManager().getPossibleCommands(p_71534_1_); Collections.sort(var2); return var2; } protected Map getCommands() { return MinecraftServer.getServer().getCommandManager().getCommands(); } public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { if (args.length == 1) { Set var4 = this.getCommands().keySet(); return getListOfStringsMatchingLastWord(args, (String[])var4.toArray(new String[var4.size()])); } else { return null; } } }