diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-07-31 23:27:26 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-24 21:21:37 +0100 |
commit | d5dcf02196e30c932c7a25c3975a91a0fe1ccd50 (patch) | |
tree | 088b9bc6b9fc261a62894f0e839f59ef622c1f26 /src/server/game/Handlers/CharacterHandler.cpp | |
parent | 61bf51874de432856ecd2c5794334bd256d4b014 (diff) |
Core/DBLayer: Add nicer api for SQLQueryHolders
(cherry picked from commit 9b806c6b5d9e83f8614523317a44742954f97744)
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index ef67ac1b114..befda8ece15 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -480,7 +480,10 @@ void WorldSession::HandleCharEnumOpcode(WorldPackets::Character::EnumCharacters& return; } - _charEnumCallback = CharacterDatabase.DelayQueryHolder(holder); + AddQueryHolderCallback(CharacterDatabase.DelayQueryHolder(holder)).AfterComplete([this](SQLQueryHolderBase* result) + { + HandleCharEnum(static_cast<EnumCharactersQueryHolder*>(result)); + }); } void WorldSession::HandleCharUndeleteEnumOpcode(WorldPackets::Character::EnumCharacters& /*enumCharacters*/) @@ -493,7 +496,10 @@ void WorldSession::HandleCharUndeleteEnumOpcode(WorldPackets::Character::EnumCha return; } - _charEnumCallback = CharacterDatabase.DelayQueryHolder(holder); + AddQueryHolderCallback(CharacterDatabase.DelayQueryHolder(holder)).AfterComplete([this](SQLQueryHolderBase* result) + { + HandleCharEnum(static_cast<EnumCharactersQueryHolder*>(result)); + }); } bool WorldSession::MeetsChrCustomizationReq(ChrCustomizationReqEntry const* req, Classes playerClass, @@ -1034,7 +1040,10 @@ void WorldSession::HandleContinuePlayerLogin() SendPacket(WorldPackets::Auth::ResumeComms(CONNECTION_TYPE_INSTANCE).Write()); - _charLoginCallback = CharacterDatabase.DelayQueryHolder(holder); + AddQueryHolderCallback(CharacterDatabase.DelayQueryHolder(holder)).AfterComplete([this](SQLQueryHolderBase* holder) + { + HandlePlayerLogin(static_cast<LoginQueryHolder*>(holder)); + }); } void WorldSession::AbortLogin(WorldPackets::Character::LoginFailureReason reason) |