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.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index e49763b2a31..8a33b26cf8b 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -748,12 +748,13 @@ void WorldSession::HandleCharCreateOpcode(WorldPackets::Character::CreateCharact
newChar->SetAtLoginFlag(AT_LOGIN_FIRST); // First login
+ CharacterDatabaseTransaction characterTransaction = CharacterDatabase.BeginTransaction();
+ LoginDatabaseTransaction trans = LoginDatabase.BeginTransaction();
+
// Player created, save it now
- newChar->SaveToDB(true);
+ newChar->SaveToDB(trans, characterTransaction, true);
createInfo->CharCount += 1;
- LoginDatabaseTransaction trans = LoginDatabase.BeginTransaction();
-
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_REALM_CHARACTERS_BY_REALM);
stmt->setUInt32(0, GetAccountId());
stmt->setUInt32(1, realm.Id.Realm);
@@ -765,7 +766,9 @@ void WorldSession::HandleCharCreateOpcode(WorldPackets::Character::CreateCharact
stmt->setUInt32(2, realm.Id.Realm);
trans->Append(stmt);
- AddTransactionCallback(LoginDatabase.AsyncCommitTransaction(trans)).AfterComplete([this, newChar = std::move(newChar)](bool success)
+ LoginDatabase.CommitTransaction(trans);
+
+ AddTransactionCallback(CharacterDatabase.AsyncCommitTransaction(characterTransaction)).AfterComplete([this, newChar = std::move(newChar)](bool success)
{
if (success)
{