public void runCommand(String cmdMessage)
	{
		String[] parts = cmdMessage.split(" ");
//		List<String> preArgs = new ArrayList<String>();
		
		//Not an empty command
		if(parts.length > 0)
		{
			int bestMatchAmount = 0;
			String[] bestMatchString = null;
			
			for(String[] possibility : commands.keySet())
			{
				int matches = CommandParser.getMatchingArgs(possibility, parts);
				if(matches > bestMatchAmount)
				{
					bestMatchAmount = matches;
					bestMatchString = possibility;
				}
			}
			
			if(bestMatchAmount > 0)
			{
				List<String> preArgs = new ArrayList<String>();
				List<String> args = new ArrayList<String>();
				for(int ii = 0; ii < parts.length; ii++)
				{
					if(ii < bestMatchString.length)
					{
						if(bestMatchString[ii].equals("*"))
						{
							preArgs.add(parts[ii]);
						}
					}
					else
					{
						args.add(parts[ii]);
					}
				}
				
				commands.get(bestMatchString).onCommand(
						preArgs.toArray(new String[preArgs.size()]), 
						args.toArray(new String[args.size()]));
			}
			else
			{
				//command not found!
				Log.info("command not found!!!");
			}
		}
		else
		{
			//command cannot be empty!
			Log.error("command cnnot be empty!!!");
		}
	}