diff options
| author | Shauren <shauren.trinity@gmail.com> | 2014-10-23 21:34:03 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2014-10-23 21:34:03 +0200 |
| commit | 76f1f85d8bc3f9dda2ee174f457b5f07468a7dc5 (patch) | |
| tree | 887fa1af7cf4b26a2de2097c13de0e5fe3e3a0c7 /src/server/game/World | |
| parent | 2f368984094181f2aa9b1ae1c73ce182469e5037 (diff) | |
Core/Entities: Second part of required database changes for migrating guids to 128 bit - all fields storing lowguid must be extended to uint64
Diffstat (limited to 'src/server/game/World')
| -rw-r--r-- | src/server/game/World/World.cpp | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index c1cef3059a2..959a1d91789 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2508,32 +2508,27 @@ bool World::RemoveBanAccount(BanMode mode, std::string const& nameOrIP) BanReturn World::BanCharacter(std::string const& name, std::string const& duration, std::string const& reason, std::string const& author) { Player* pBanned = ObjectAccessor::FindConnectedPlayerByName(name); - uint32 guid = 0; + ObjectGuid guid; uint32 duration_secs = TimeStringToSecs(duration); /// Pick a player to ban if not online if (!pBanned) { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_BY_NAME); - stmt->setString(0, name); - PreparedQueryResult resultCharacter = CharacterDatabase.Query(stmt); - - if (!resultCharacter) + guid = sObjectMgr->GetPlayerGUIDByName(name); + if (guid.IsEmpty()) return BAN_NOTFOUND; // Nobody to ban - - guid = (*resultCharacter)[0].GetUInt32(); } else - guid = pBanned->GetGUID().GetCounter(); + guid = pBanned->GetGUID(); // make sure there is only one active ban PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_BAN); - stmt->setUInt32(0, guid); + stmt->setUInt64(0, guid.GetCounter()); CharacterDatabase.Execute(stmt); stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHARACTER_BAN); - stmt->setUInt32(0, guid); + stmt->setUInt64(0, guid.GetCounter()); stmt->setUInt32(1, duration_secs); stmt->setString(2, author); stmt->setString(3, reason); @@ -2549,28 +2544,20 @@ BanReturn World::BanCharacter(std::string const& name, std::string const& durati bool World::RemoveBanCharacter(std::string const& name) { Player* pBanned = ObjectAccessor::FindConnectedPlayerByName(name); - uint32 guid = 0; + ObjectGuid guid; /// Pick a player to ban if not online if (!pBanned) { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_BY_NAME); - stmt->setString(0, name); - PreparedQueryResult resultCharacter = CharacterDatabase.Query(stmt); - - if (!resultCharacter) - return false; - - guid = (*resultCharacter)[0].GetUInt32(); + guid = sObjectMgr->GetPlayerGUIDByName(name); + if (guid.IsEmpty()) + return false; // Nobody to ban } else - guid = pBanned->GetGUID().GetCounter(); - - if (!guid) - return false; + guid = pBanned->GetGUID(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHARACTER_BAN); - stmt->setUInt32(0, guid); + stmt->setUInt64(0, guid.GetCounter()); CharacterDatabase.Execute(stmt); return true; } |
