private void processQueuedCommands()
	{
		synchronized (queuedCommands)
		{
			if (!queuedCommands.isEmpty())
			{
				logger.log("Processing Queued commands.");
			}
			else
			{
				logger.log("There are no Queued commands.");
			}
			int MAX_ITERATION = 0;
			for (int i : queuedCommands.keySet())
			{
				if (i > MAX_ITERATION)
				{
					MAX_ITERATION = i;
				}
			}
			for (int i = 1; i <= MAX_ITERATION; i++)
			{
				List<QueuedCommand> queuedCommandList = queuedCommands.get(i);
				if (queuedCommandList == null || queuedCommandList.isEmpty())
				{
					continue;
				}
				for (QueuedCommand queue : queuedCommandList)
				{
					CommandHandler commandHandler = queue.getMethod()
							.getAnnotation(CommandHandler.class);
					String[] list = commandHandler.command().split("\\.");
					RegisteredCommand registered;
					synchronized (registeredCommands)
					{
						if (!registeredCommands.containsKey(list[0]))
						{
							logger.log("Registering Empty Base Command: "
									+ list[0]);
							RegisteredCommand registeredEmpty = new RegisteredCommand(
									null);
							registeredEmpty.setCommand(list[0]);
							synchronized (registeredCommands)
							{
								registeredCommands
										.put(list[0], registeredEmpty);
							}
							AbstractCommand abstractCmd = new AbstractCommand(
									list[0]);
							abstractCmd.setDescription("Use '/" + list[0]
									+ " help' to view the subcommands.");
							abstractCmd.setPermission("");
							abstractCmd
									.setPermissionMessage("You don't have permission to do that.");
							abstractCmd.setUsage("/" + list[0] + " <command>");
							abstractCmd.setExecutor(registeredEmpty);
							registerBaseCommand(abstractCmd);
						}
						registered = registeredCommands.get(list[0]);
					}
					registerChild(queue, commandHandler, registered,
							list[list.length - 1]);
					for (String s : commandHandler.aliases())
					{
						registerChild(queue, commandHandler, registered, s);
					}
				}
			}
			queuedCommands.clear();
		}
	}