void HandlePlayerLoginCallback(QueryResult * /*dummy*/, SqlQueryHolder * holder) { if (!holder) return; WorldSession *session = sWorld.FindSession(((LoginQueryHolder*)holder)->GetAccountId()); if(!session) { delete holder; return; } session->HandlePlayerLogin((LoginQueryHolder*)holder); }
void HandlePlayerLoginCallback(QueryResult * /*dummy*/, SqlQueryHolder * holder) { sLog.outString("CharacterHandler::HandlePlayerLoginCallback"); if(!holder) return; WorldSession *session = sWorld.FindSession(((LoginQueryHolder*)holder)->GetAccountId()); if(!session) { sLog.outString("Session not found for %u", ((LoginQueryHolder*)holder)->GetAccountId()); delete holder; return; } session->HandlePlayerLogin((LoginQueryHolder*)holder); }
// This callback is different from the normal HandlePlayerLoginCallback in that it // sets up the bot's world session and also stores the pointer to the bot player in the master's // world session m_playerBots map void HandlePlayerBotLoginCallback(QueryResult* /*dummy*/, SqlQueryHolder* holder) { if (!holder) return; LoginQueryHolder* lqh = (LoginQueryHolder*) holder; WorldSession* masterSession = sWorld.FindSession(lqh->GetAccountId()); if (! masterSession || sObjectMgr.GetPlayer(lqh->GetGuid())) { delete holder; return; } // The bot's WorldSession is owned by the bot's Player object // The bot's WorldSession is deleted by PlayerbotMgr::LogoutPlayerBot WorldSession* botSession = new WorldSession(lqh->GetAccountId(), nullptr, SEC_PLAYER, 0, LOCALE_enUS); botSession->HandlePlayerLogin(lqh); // will delete lqh masterSession->GetPlayer()->GetPlayerbotMgr()->OnBotLogin(botSession->GetPlayer()); }
// Playerbot mod: is different from the normal HandlePlayerLoginCallback in that it // sets up the bot's world session and also stores the pointer to the bot player in the master's // world session m_playerBots map void HandlePlayerBotLoginCallback(QueryResult * /*dummy*/, SqlQueryHolder * holder, uint32 masterId) { if (!holder) return; LoginQueryHolder* lqh = (LoginQueryHolder*) holder; WorldSession* masterSession = sWorld.FindSession(masterId); if (! masterSession || sObjectMgr.GetPlayer(lqh->GetGuid())) { delete holder; return; } // The bot's WorldSession is owned by the bot's Player object // The bot's WorldSession is deleted by PlayerbotMgr::LogoutPlayerBot WorldSession *botSession = new WorldSession(lqh->GetAccountId(), NULL, SEC_PLAYER, 0, masterSession->GetSessionDbcLocale()); botSession->m_Address = "bot"; botSession->HandlePlayerLogin(lqh); // will delete lqh masterSession->GetPlayer()->GetPlayerbotMgr()->OnBotLogin(botSession->GetPlayer()); }