Cherry pick some db commits (#24713)

* Core/DBLayer: Implement async transaction completion callbacks

(cherry picked from commit 0f0ca3a919)

# Conflicts:
#	src/server/bnetserver/REST/LoginRESTService.cpp
#	src/server/bnetserver/Server/Session.cpp
#	src/server/bnetserver/Server/Session.h
#	src/server/database/Database/Transaction.cpp
#	src/server/game/Handlers/CharacterHandler.cpp
#	src/server/game/Handlers/SpellHandler.cpp
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSocket.cpp
#	src/server/game/Server/WorldSocket.h

* Core/Misc: Fixed char enum packet sometimes not showing newly created character when client latency is too low

(cherry picked from commit fc9d2e728e)

# Conflicts:
#	src/server/game/Handlers/CharacterHandler.cpp

* Fix no-pch build

* Core/Player: Wait for correct transaction on character creation

(cherry picked from commit 01c68b2aa2)

# Conflicts:
#	src/server/game/Entities/Player/Player.cpp

* Fix warning

* Remove unused login transaction

Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
Giacomo Pozzoni
2020-05-30 15:43:54 +00:00
committed by GitHub
parent 00bc6e7d54
commit 141ada19b0
23 changed files with 281 additions and 160 deletions

View File

@@ -241,7 +241,7 @@ void WorldSession::HandleOpenItemOpcode(WorldPacket& recvPacket)
{
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_GIFT_BY_ITEM);
stmt->setUInt32(0, item->GetGUID().GetCounter());
_queryProcessor.AddQuery(CharacterDatabase.AsyncQuery(stmt)
_queryProcessor.AddCallback(CharacterDatabase.AsyncQuery(stmt)
.WithPreparedCallback(std::bind(&WorldSession::HandleOpenWrappedItemCallback, this, item->GetPos(), item->GetGUID(), std::placeholders::_1)));
}
else