aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
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)