aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-07-31 23:27:26 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-24 21:21:37 +0100
commitd5dcf02196e30c932c7a25c3975a91a0fe1ccd50 (patch)
tree088b9bc6b9fc261a62894f0e839f59ef622c1f26 /src/server/game/Handlers/CharacterHandler.cpp
parent61bf51874de432856ecd2c5794334bd256d4b014 (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.cpp15
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)