feat(Core/Scripting): Implement new hook OnBeforePlayerLogout() (#18163)
* new hook OnPlayerPreLogout * Changed PreLogout to BeforeLogout per review * Renamed OnPlayerBeforeLogout to OnBeforePlayerLogout per review --------- Co-authored-by: NathanHandley <nathanhandley@protonmail.com>
This commit is contained in:
parent
a1891d8d8f
commit
4321b8a4de
4 changed files with 15 additions and 0 deletions
|
|
@ -361,6 +361,14 @@ void ScriptMgr::OnPlayerLoadFromDB(Player* player)
|
|||
});
|
||||
}
|
||||
|
||||
void ScriptMgr::OnBeforePlayerLogout(Player* player)
|
||||
{
|
||||
ExecuteScript<PlayerScript>([&](PlayerScript* script)
|
||||
{
|
||||
script->OnBeforeLogout(player);
|
||||
});
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerLogout(Player* player)
|
||||
{
|
||||
ExecuteScript<PlayerScript>([&](PlayerScript* script)
|
||||
|
|
|
|||
|
|
@ -132,6 +132,9 @@ public:
|
|||
// Called when a player logs in.
|
||||
virtual void OnLogin(Player* /*player*/) { }
|
||||
|
||||
// Called before the player is logged out
|
||||
virtual void OnBeforeLogout(Player* /*player*/) { }
|
||||
|
||||
// Called when a player logs out.
|
||||
virtual void OnLogout(Player* /*player*/) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -329,6 +329,7 @@ public: /* PlayerScript */
|
|||
void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck);
|
||||
void OnPlayerLogin(Player* player);
|
||||
void OnPlayerLoadFromDB(Player* player);
|
||||
void OnBeforePlayerLogout(Player* player);
|
||||
void OnPlayerLogout(Player* player);
|
||||
void OnPlayerCreate(Player* player);
|
||||
void OnPlayerSave(Player* player);
|
||||
|
|
|
|||
|
|
@ -579,6 +579,9 @@ void WorldSession::LogoutPlayer(bool save)
|
|||
|
||||
if (_player)
|
||||
{
|
||||
//! Call script hook before other logout events
|
||||
sScriptMgr->OnBeforePlayerLogout(_player);
|
||||
|
||||
if (ObjectGuid lguid = _player->GetLootGUID())
|
||||
DoLootRelease(lguid);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue