bool CSakiServerEngine::OnAccepted(CAsyncSocket* pVisitor)
{
	auto player = JoinGame(pVisitor);

	if (player != nullptr)
	{
		// Send Hello message to new player
		{
			auto msg = SakiSnakeCommon::Msg<SakiSnakeCommon::msgHello, SakiSnakeCommon::HelloMsg>();
			msg._data._playerId = player->PlayerId();
			msg._data._height = m_board.Height();
			msg._data._width = m_board.Width();
			msg._data._r = player->Color().r;
			msg._data._g = player->Color().g;
			msg._data._b = player->Color().b;
			player->Send(&msg);
		}

		// Send Joined message to everybody
		for (auto x : m_players)
		{
			for (auto y : m_players)
			{
				if (y.first != x.second->PlayerId())
				{
					auto msg = SakiSnakeCommon::Msg<SakiSnakeCommon::msgJoined, SakiSnakeCommon::JoinedMsg>();
					msg._data._playerId = y.second->PlayerId();
					msg._data._r = y.second->Color().r;
					msg._data._g = y.second->Color().g;
					msg._data._b = y.second->Color().b;
					x.second->Send(&msg);
				}
			}
		}

		BroadcastBoard();
	}

	return (player != nullptr);
}
void FOnlineIdentityGooglePlay::SetPlayerDataFromFetchSelfResponse(const gpg::Player& PlayerData)
{
	FString PlayerId(PlayerData.Id().c_str());
	UniqueNetId = MakeShareable(new FUniqueNetIdString(PlayerId));
	PlayerAlias = PlayerData.Name().c_str();
}