@Override
	public String playerSignIn(String p_Username, String p_Password, String p_IPAddres) 
	{
		// TODO Auto-generated method stub
		String hashTable_token = "";
		
		if(p_Username != null)
			hashTable_token = p_Username.substring(0,1);
		else 
			return "Error: Username Null";
		
		System.out.println(p_Username+" - Trying to Sign in\n");
		
		List<UserData> ud_l = this.UserData_HashTable.get(hashTable_token);
		if (ud_l != null) 
		{
			for(UserData record : ud_l)
			{
				if(record.UserName.contains(p_Username))
				{
					if(record.Password.equals(p_Password))
					{
						System.out.println(p_Username+" - Entered Correct Password \n");
						
						String player_status = record.getLoginStatus();
						if(player_status.contains("Online"))
						{
							System.out.println(p_Username+" - User already Online. Sever error sent to User\n");
							return "Error: Login Failed - You are already loggin in. First Log off to log in.";
						}
						else
						{
							boolean cur_status = record.setLoginStatus("Online");
							if(cur_status == true)
							{
								System.out.println(p_Username+" - Succefully signed in. Message sent to User\n");
								return "Login successful";
							}
							
							else
							{
								System.out.println(p_Username+" - Internal Error Occured. Verify Sign in Method. Sever error sent to User\n");
								System.out.println("Error: User login status inconsistancy. Should not happen\n");
								return "Error: Login failed - Server Error";
							}
						}
					}
					System.out.println(p_Username+" - Entered wrong Password. Message Sent\n");
					return "Login failed. Wrong Password.";
				}
			}
		}
		System.out.println(p_Username+" - Unknown user. User does not exist in records. Message sent to user\n");
		return "Login Failed. Profile Does not Exist. First Sign Up";
	}