mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 06:36:24 +00:00
feat(Core/Scripts): new OnBeforeFinalizePlayerWorldSession() hook (#7136)
Co-authored-by: Yehonal <yehonal.azeroth@gmail.com>
This commit is contained in:
@@ -312,9 +312,8 @@ void World::AddSession_(WorldSession* s)
|
||||
}
|
||||
|
||||
s->SendAuthResponse(AUTH_OK, true);
|
||||
s->SendAddonsInfo();
|
||||
s->SendClientCacheVersion(sWorld->getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
s->SendTutorialsData();
|
||||
|
||||
FinalizePlayerWorldSession(s);
|
||||
|
||||
UpdateMaxSessionCounters();
|
||||
}
|
||||
@@ -397,11 +396,9 @@ bool World::RemoveQueuedPlayer(WorldSession* sess)
|
||||
pop_sess->SetInQueue(false);
|
||||
pop_sess->ResetTimeOutTime(false);
|
||||
pop_sess->SendAuthWaitQue(0);
|
||||
pop_sess->SendAddonsInfo();
|
||||
|
||||
pop_sess->SendClientCacheVersion(sWorld->getIntConfig(CONFIG_CLIENTCACHE_VERSION));
|
||||
pop_sess->SendAccountDataTimes(GLOBAL_CACHE_MASK);
|
||||
pop_sess->SendTutorialsData();
|
||||
|
||||
FinalizePlayerWorldSession(pop_sess);
|
||||
|
||||
m_QueuedPlayer.pop_front();
|
||||
|
||||
@@ -3480,3 +3477,13 @@ uint32 World::GetNextWhoListUpdateDelaySecs()
|
||||
|
||||
return uint32(ceil(t / 1000.0f));
|
||||
}
|
||||
|
||||
void World::FinalizePlayerWorldSession(WorldSession* session)
|
||||
{
|
||||
uint32 cacheVersion = sWorld->getIntConfig(CONFIG_CLIENTCACHE_VERSION);
|
||||
sScriptMgr->OnBeforeFinalizePlayerWorldSession(cacheVersion);
|
||||
|
||||
session->SendAddonsInfo();
|
||||
session->SendClientCacheVersion(cacheVersion);
|
||||
session->SendTutorialsData();
|
||||
}
|
||||
|
||||
@@ -486,6 +486,13 @@ private:
|
||||
|
||||
void ProcessQueryCallbacks();
|
||||
QueryCallbackProcessor _queryProcessor;
|
||||
|
||||
/**
|
||||
* @brief Executed when a World Session is being finalized. Be it from a normal login or via queue popping.
|
||||
*
|
||||
* @param session The World Session that we are finalizing.
|
||||
*/
|
||||
inline void FinalizePlayerWorldSession(WorldSession* session);
|
||||
};
|
||||
|
||||
std::unique_ptr<IWorld>& getWorldInstance();
|
||||
|
||||
Reference in New Issue
Block a user