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