Store avatar type of current avatar in db.

This commit is contained in:
lotodore
2010-08-23 17:37:22 +00:00
parent 6972437f64
commit 1f5447bd1f
5 changed files with 27 additions and 9 deletions
+6 -1
View File
@@ -49,11 +49,16 @@ ServerDBGeneric::Stop()
}
void
ServerDBGeneric::AsyncPlayerLogin(unsigned requestId, const string &/*playerName*/, const std::string &/*avatarHash*/)
ServerDBGeneric::AsyncPlayerLogin(unsigned requestId, const string &/*playerName*/)
{
m_ioService->post(boost::bind(&ServerDBCallback::PlayerLoginFailed, &m_callback, requestId));
}
void
ServerDBGeneric::PlayerPostLogin(DB_id /*playerId*/, const std::string &/*avatarHash*/, const std::string &/*avatarType*/)
{
}
void
ServerDBGeneric::PlayerLogout(DB_id /*playerId*/)
{
+2 -1
View File
@@ -38,7 +38,8 @@ public:
virtual void Start();
virtual void Stop();
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName, const std::string &avatarHash);
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName);
virtual void PlayerPostLogin(DB_id playerId, const std::string &avatarHash, const std::string &avatarType);
virtual void PlayerLogout(DB_id playerId);
virtual void AsyncCreateGame(unsigned requestId, const std::string &gameName);
+2 -1
View File
@@ -38,7 +38,8 @@ public:
virtual void Start() = 0;
virtual void Stop() = 0;
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName, const std::string &avatarHash) = 0;
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName) = 0;
virtual void PlayerPostLogin(DB_id playerId, const std::string &avatarHash, const std::string &avatarType) = 0;
virtual void PlayerLogout(DB_id playerId) = 0;
virtual void AsyncCreateGame(unsigned requestId, const std::string &gameName) = 0;
+2 -1
View File
@@ -36,7 +36,8 @@ public:
virtual void Start() {}
virtual void Stop() {}
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName, const std::string &avatarHash) {}
virtual void AsyncPlayerLogin(unsigned requestId, const std::string &playerName) {}
virtual void PlayerPostLogin(DB_id playerId, const std::string &avatarHash, const std::string &avatarType) {}
virtual void PlayerLogout(DB_id playerId) {}
virtual void AsyncCreateGame(unsigned requestId, const std::string &gameName) {}
+15 -5
View File
@@ -1495,8 +1495,21 @@ ServerLobbyThread::InitAfterLogin(SessionWrapper session)
void
ServerLobbyThread::EstablishSession(SessionWrapper session)
{
if (!session.playerData.get())
if (!session.playerData)
throw ServerException(__FILE__, __LINE__, ERR_NET_INVALID_SESSION, 0);
// Run postlogin for DB
string tmpAvatarHash;
string tmpAvatarType;
if (!session.playerData->GetAvatarMD5().IsZero())
{
tmpAvatarHash = session.playerData->GetAvatarMD5().ToString();
tmpAvatarType = AvatarManager::GetAvatarFileExtension(AvatarManager::GetAvatarFileType(session.playerData->GetAvatarFile()));
if (!tmpAvatarType.empty())
tmpAvatarType.erase(0, 1); // Only store extension without the "."
}
m_database->PlayerPostLogin(session.playerData->GetDBId(), tmpAvatarHash, tmpAvatarType);
// Send ACK to client.
boost::shared_ptr<NetPacket> ack(new NetPacket(NetPacket::Alloc));
ack->GetMsg()->present = PokerTHMessage_PR_initAckMessage;
@@ -1529,10 +1542,7 @@ ServerLobbyThread::AuthenticatePlayer(SessionWrapper session)
{
if(session.playerData)
{
if (!session.playerData->GetAvatarMD5().IsZero())
m_database->AsyncPlayerLogin(session.playerData->GetUniqueId(), session.playerData->GetName(), session.playerData->GetAvatarMD5().ToString());
else
m_database->AsyncPlayerLogin(session.playerData->GetUniqueId(), session.playerData->GetName(), "");
m_database->AsyncPlayerLogin(session.playerData->GetUniqueId(), session.playerData->GetName());
}
}