private void registerCommand(Command cmd) {
		String cmdString = cmd.getCommand().split(" ")[0];
		helper.registerCommand(cmdString);
		PluginCommand pCmd = helper.getCommand(cmdString);
		pCmd.setPermission(cmd.getPermission().getPermissionDefault().toString());
		if(cmd.getSubcommand().length == 0) {
			pCmd.setPermissionMessage("You don't have permission to do that.");
			if(!cmd.getDescription().isEmpty())
				pCmd.setDescription(cmd.getDescription());
			else
				pCmd.setDescription("This command does not have a description set.");
			
			if(!cmd.getFormat().isEmpty())
				pCmd.setUsage("/" + cmdString + " " + cmd.getParsedFormat());
			else
				pCmd.setUsage("A usage has not been set for this command.");	
		} else {
			if(pCmd.getDescription().isEmpty() || pCmd.getDescription() == null)
				pCmd.setDescription("This command is used to access a submenu.");
			if(pCmd.getUsage().isEmpty() || pCmd.getUsage() == null)
				pCmd.setUsage("/" + cmdString + " " + "<Subcommand> ...");
		}
		
		if(pCmd.getTabCompleter() == null) {
			CommandCompleter completer;
			completer = new CommandCompleter(cmdString, this);						
			pCmd.setTabCompleter(completer);
			tabCompleters.put(cmdString, completer);
		}
		
		if(Bukkit.getHelpMap().getHelpTopic(pCmd.getName()) == null)
			Bukkit.getHelpMap().addTopic(new GenericCommandHelpTopic(pCmd));
	}