@Override
	public boolean playerSignIn(String pUsername, String pPassword, String pIPAddress) 
	{
		if((pUsername.charAt(0) > 'Z' && pUsername.charAt(0) < 'a') || pUsername.charAt(0) < 'A' || pUsername.charAt(0) > 'z')
		{
			aLog.info("Error Player Sign in : Username cannot start with " + pUsername.charAt(0));
			return false;
		}
		Account tmpAccount = getAccount(pUsername);
		if(tmpAccount == null)
		{
			aLog.info("Error Player Sign in : Username Was Not Found");
			tmpAccount = null;
			return false;
		}
		if(!tmpAccount.getPassword().equals(pPassword))
		{
			aLog.info("Error Player Sign in : Incorrect Password");
			tmpAccount = null;
			return false;
		}
		if(!validate(pIPAddress))
		{
			aLog.info("Error Player Sign in : Invalid IP-address");
			tmpAccount = null;
			return false;
		}
		if(!tmpAccount.getIPAddress().equals(pIPAddress))
		{
			aLog.info("Error Player Sign in : Nonmatching IP-address");
			tmpAccount = null;
			return false;
		}
		if(!tmpAccount.isOnline())
		{
			tmpAccount.setOnline(true);
			tmpAccount = null;
			aLog.info("Player Sign in : Player " +  pUsername + " Is Now Online");
			return true;
		}
		else
		{
			aLog.info("Error Player Sign in : Player " + pUsername + " Is Already Online");
			tmpAccount = null;
			return false;
		}
	}