aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2014-11-12 19:16:14 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2014-11-12 19:16:14 +0100
commit620f23d9dcb94b21c2b3402765817362e2b82b2f (patch)
tree89a92c8266999f4a8e1b6bba8e54377ab01102cf
parentf4926e0a8c0c028d6b50ee28aabde720a93cf280 (diff)
Core/World: hold deleted characters in character store
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp18
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp4
-rw-r--r--src/server/game/Chat/Chat.cpp8
-rw-r--r--src/server/game/Entities/Player/Player.cpp29
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp66
-rw-r--r--src/server/game/Globals/ObjectMgr.h10
-rw-r--r--src/server/game/Groups/Group.cpp4
-rw-r--r--src/server/game/Guilds/Guild.cpp2
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.h7
-rw-r--r--src/server/game/Handlers/ArenaTeamHandler.cpp2
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp2
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp51
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp2
-rw-r--r--src/server/game/Handlers/MailHandler.cpp12
-rw-r--r--src/server/game/Handlers/PetitionsHandler.cpp2
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp28
-rw-r--r--src/server/game/Mails/Mail.cpp2
-rw-r--r--src/server/game/Tickets/TicketMgr.cpp2
-rw-r--r--src/server/game/Tickets/TicketMgr.h2
-rw-r--r--src/server/game/Tools/PlayerDump.cpp2
-rw-r--r--src/server/game/World/World.cpp151
-rw-r--r--src/server/game/World/World.h31
-rw-r--r--src/server/scripts/Commands/cs_arena.cpp6
-rw-r--r--src/server/scripts/Commands/cs_ban.cpp2
-rw-r--r--src/server/scripts/Commands/cs_character.cpp23
-rw-r--r--src/server/scripts/Commands/cs_group.cpp2
-rw-r--r--src/server/scripts/Commands/cs_guild.cpp2
-rw-r--r--src/server/scripts/Commands/cs_list.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp16
-rw-r--r--src/server/scripts/Commands/cs_ticket.cpp8
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.cpp3
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.h3
33 files changed, 231 insertions, 275 deletions
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index e5b9079f019..74b1271f185 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -106,10 +106,10 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
}
else
{
- bidderAccId = sObjectMgr->GetPlayerAccountIdByGUID(bidderGuid);
+ bidderAccId = ObjectMgr::GetPlayerAccountIdByGUID(bidderGuid);
logGmTrade = AccountMgr::HasPermission(bidderAccId, rbac::RBAC_PERM_LOG_GM_TRADE, realmHandle.Index);
- if (logGmTrade && !sObjectMgr->GetPlayerNameByGUID(bidderGuid, bidderName))
+ if (logGmTrade && !ObjectMgr::GetPlayerNameByGUID(bidderGuid, bidderName))
bidderName = sObjectMgr->GetTrinityStringForDBCLocale(LANG_UNKNOWN);
}
@@ -117,10 +117,10 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
{
ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
std::string ownerName;
- if (!sObjectMgr->GetPlayerNameByGUID(ownerGuid, ownerName))
+ if (!ObjectMgr::GetPlayerNameByGUID(ownerGuid, ownerName))
ownerName = sObjectMgr->GetTrinityStringForDBCLocale(LANG_UNKNOWN);
- uint32 ownerAccId = sObjectMgr->GetPlayerAccountIdByGUID(ownerGuid);
+ uint32 ownerAccId = ObjectMgr::GetPlayerAccountIdByGUID(ownerGuid);
sLog->outCommand(bidderAccId, "GM %s (Account: %u) won item in auction: %s (Entry: %u Count: %u) and pay money: %u. Original owner %s (Account: %u)",
bidderName.c_str(), bidderAccId, pItem->GetTemplate()->Name1.c_str(), pItem->GetEntry(), pItem->GetCount(), auction->bid, ownerName.c_str(), ownerAccId);
@@ -158,7 +158,7 @@ void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTrans
{
ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
- uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
+ uint32 owner_accId = ObjectMgr::GetPlayerAccountIdByGUID(owner_guid);
// owner exist (online or offline)
if (owner || owner_accId)
MailDraft(auction->BuildAuctionMailSubject(AUCTION_SALE_PENDING), AuctionEntry::BuildAuctionMailBody(auction->bidder, auction->bid, auction->buyout, auction->deposit, auction->GetAuctionCut()))
@@ -170,7 +170,7 @@ void AuctionHouseMgr::SendAuctionSuccessfulMail(AuctionEntry* auction, SQLTransa
{
ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
- uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
+ uint32 owner_accId = ObjectMgr::GetPlayerAccountIdByGUID(owner_guid);
// owner exist
if (owner || owner_accId)
{
@@ -201,7 +201,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti
ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
- uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
+ uint32 owner_accId = ObjectMgr::GetPlayerAccountIdByGUID(owner_guid);
// owner exist
if (owner || owner_accId)
{
@@ -227,7 +227,7 @@ void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 new
uint32 oldBidder_accId = 0;
if (!oldBidder)
- oldBidder_accId = sObjectMgr->GetPlayerAccountIdByGUID(oldBidder_guid);
+ oldBidder_accId = ObjectMgr::GetPlayerAccountIdByGUID(oldBidder_guid);
// old bidder exist
if (oldBidder || oldBidder_accId)
@@ -249,7 +249,7 @@ void AuctionHouseMgr::SendAuctionCancelledToBidderMail(AuctionEntry* auction, SQ
uint32 bidder_accId = 0;
if (!bidder)
- bidder_accId = sObjectMgr->GetPlayerAccountIdByGUID(bidder_guid);
+ bidder_accId = ObjectMgr::GetPlayerAccountIdByGUID(bidder_guid);
if (bidder)
bidder->GetSession()->SendAuctionRemovedNotification(auction->Id, auction->itemEntry, item->GetItemRandomPropertyId());
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 73c067ddf99..65f07b625e1 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -828,9 +828,9 @@ void Channel::MakeNotOwner(WorldPacket* data)
void Channel::MakeChannelOwner(WorldPacket* data)
{
- std::string name = "";
+ std::string name;
- if (!sObjectMgr->GetPlayerNameByGUID(_ownerGUID, name) || name.empty())
+ if (!ObjectMgr::GetPlayerNameByGUID(_ownerGUID, name) || name.empty())
name = "PLAYER_NOT_FOUND";
MakeNotifyPacket(data, CHAT_CHANNEL_OWNER_NOTICE);
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index 83c39349593..6c5d67db36a 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -133,7 +133,7 @@ bool ChatHandler::HasLowerSecurity(Player* target, ObjectGuid guid, bool strong)
if (target)
target_session = target->GetSession();
else if (!guid.IsEmpty())
- target_account = sObjectMgr->GetPlayerAccountIdByGUID(guid);
+ target_account = ObjectMgr::GetPlayerAccountIdByGUID(guid);
if (!target_session && !target_account)
{
@@ -1086,7 +1086,7 @@ ObjectGuid ChatHandler::extractGuidFromLink(char* text)
if (Player* player = ObjectAccessor::FindPlayerByName(name))
return player->GetGUID();
- return sObjectMgr->GetPlayerGUIDByName(name);
+ return ObjectMgr::GetPlayerGUIDByName(name);
}
case SPELL_LINK_CREATURE:
{
@@ -1145,7 +1145,7 @@ bool ChatHandler::extractPlayerTarget(char* args, Player** player, ObjectGuid* p
*player = pl;
// if need guid value from DB (in name case for check player existence)
- ObjectGuid guid = !pl && (player_guid || player_name) ? sObjectMgr->GetPlayerGUIDByName(name) : ObjectGuid::Empty;
+ ObjectGuid guid = !pl && (player_guid || player_name) ? ObjectMgr::GetPlayerGUIDByName(name) : ObjectGuid::Empty;
// if allowed player guid (if no then only online players allowed)
if (player_guid)
@@ -1304,7 +1304,7 @@ bool ChatHandler::GetPlayerGroupAndGUIDByName(const char* cname, Player*& player
player = ObjectAccessor::FindPlayerByName(name);
if (offline)
- guid = sObjectMgr->GetPlayerGUIDByName(name.c_str());
+ guid = ObjectMgr::GetPlayerGUIDByName(name.c_str());
}
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index dcd69e65264..c0753f72942 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -4365,19 +4365,19 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
// Convert guid to low GUID for CharacterNameData, but also other methods on success
ObjectGuid::LowType guid = playerguid.GetCounter();
- uint32 charDelete_method = sWorld->getIntConfig(CONFIG_CHARDELETE_METHOD);
+ uint32 charDeleteMethod = sWorld->getIntConfig(CONFIG_CHARDELETE_METHOD);
if (deleteFinally)
- charDelete_method = CHAR_DELETE_REMOVE;
- else if (CharacterNameData const* nameData = sWorld->GetCharacterNameData(playerguid)) // To avoid a query, we select loaded data. If it doesn't exist, return.
+ charDeleteMethod = CHAR_DELETE_REMOVE;
+ else if (CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(playerguid)) // To avoid a query, we select loaded data. If it doesn't exist, return.
{
// Define the required variables
- uint32 charDelete_minLvl = sWorld->getIntConfig(nameData->m_class != CLASS_DEATH_KNIGHT ? CONFIG_CHARDELETE_MIN_LEVEL : CONFIG_CHARDELETE_HEROIC_MIN_LEVEL);
+ uint32 charDeleteMinLvl = sWorld->getIntConfig(characterInfo->Class != CLASS_DEATH_KNIGHT ? CONFIG_CHARDELETE_MIN_LEVEL : CONFIG_CHARDELETE_HEROIC_MIN_LEVEL);
// if we want to finalize the character removal or the character does not meet the level requirement of either heroic or non-heroic settings,
// we set it to mode CHAR_DELETE_REMOVE
- if (nameData->m_level < charDelete_minLvl)
- charDelete_method = CHAR_DELETE_REMOVE;
+ if (characterInfo->Level < charDeleteMinLvl)
+ charDeleteMethod = CHAR_DELETE_REMOVE;
}
// convert corpse to bones if exist (to prevent exiting Corpse in World without DB entry)
@@ -4403,7 +4403,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
// Remove signs from petitions (also remove petitions if owner);
RemovePetitionsAndSigns(playerguid, 10);
- switch (charDelete_method)
+ switch (charDeleteMethod)
{
// Completely remove from the database
case CHAR_DELETE_REMOVE:
@@ -4492,7 +4492,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
stmt->setUInt32(0, mail_id);
trans->Append(stmt);
- uint32 pl_account = sObjectMgr->GetPlayerAccountIdByGUID(playerguid);
+ uint32 pl_account = ObjectMgr::GetPlayerAccountIdByGUID(playerguid);
draft.AddMoney(money).SendReturnToSender(pl_account, guid, sender, trans);
}
@@ -4673,27 +4673,28 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
trans->Append(stmt);
CharacterDatabase.CommitTransaction(trans);
+
+ sWorld->DeleteCharacterInfo(playerguid);
break;
}
// The character gets unlinked from the account, the name gets freed up and appears as deleted ingame
case CHAR_DELETE_UNLINK:
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_DELETE_INFO);
-
stmt->setUInt64(0, guid);
CharacterDatabase.Execute(stmt);
+
+ sWorld->UpdateCharacterInfoDeleted(playerguid, true);
break;
}
default:
- TC_LOG_ERROR("entities.player", "Player::DeleteFromDB: Unsupported delete method: %u.", charDelete_method);
+ TC_LOG_ERROR("entities.player", "Player::DeleteFromDB: Unsupported delete method: %u.", charDeleteMethod);
return;
}
if (updateRealmChars)
sWorld->UpdateRealmCharCount(accountId);
-
- sWorld->DeleteCharacterNameData(playerguid);
}
/**
@@ -16927,7 +16928,7 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
if (!result)
{
std::string name = "<unknown>";
- sObjectMgr->GetPlayerNameByGUID(guid, name);
+ ObjectMgr::GetPlayerNameByGUID(guid, name);
TC_LOG_ERROR("entities.player", "Player %s %s not found in table `characters`, can't load. ", name.c_str(), guid.ToString().c_str());
return false;
}
@@ -18010,7 +18011,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
}
std::string name;
- if (!creatorGuid.IsEmpty() && !sObjectMgr->GetPlayerNameByGUID(creatorGuid, name))
+ if (!creatorGuid.IsEmpty() && !ObjectMgr::GetPlayerNameByGUID(creatorGuid, name))
{
TC_LOG_ERROR("entities.player", "Player::_LoadVoidStorage - Player (%s, name: %s) has an item with an invalid creator guid, set to 0 (item id: " UI64FMTD ", entry: %u, creator: %s).", GetGUID().ToString().c_str(), GetName().c_str(), itemId, itemEntry, creatorGuid.ToString().c_str());
creatorGuid.Clear();
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 0152b132370..8d90d73d0c1 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -11693,7 +11693,7 @@ void Unit::SetLevel(uint8 lvl)
if (player->GetGroup())
player->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_LEVEL);
- sWorld->UpdateCharacterNameDataLevel(GetGUID(), lvl);
+ sWorld->UpdateCharacterInfoLevel(GetGUID(), lvl);
}
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 70f8eb4d0fa..985d0508f6c 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2152,103 +2152,67 @@ Player* ObjectMgr::GetPlayerByLowGUID(ObjectGuid::LowType lowguid) const
}
// name must be checked to correctness (if received) before call this function
-ObjectGuid ObjectMgr::GetPlayerGUIDByName(std::string const& name) const
+ObjectGuid ObjectMgr::GetPlayerGUIDByName(std::string const& name)
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GUID_BY_NAME);
-
stmt->setString(0, name);
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
- if (result)
+ if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
return ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt64());
return ObjectGuid::Empty;
}
-bool ObjectMgr::GetPlayerNameByGUID(ObjectGuid guid, std::string& name) const
+bool ObjectMgr::GetPlayerNameByGUID(ObjectGuid const& guid, std::string& name)
{
- // prevent DB access for online player
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
{
name = player->GetName();
return true;
}
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME);
-
- stmt->setUInt64(0, guid.GetCounter());
-
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
- if (result)
+ if (CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(guid))
{
- name = (*result)[0].GetString();
+ name = characterInfo->Name;
return true;
}
return false;
}
-uint32 ObjectMgr::GetPlayerTeamByGUID(ObjectGuid guid) const
+uint32 ObjectMgr::GetPlayerTeamByGUID(ObjectGuid const& guid)
{
- // prevent DB access for online player
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
- {
- return Player::TeamForRace(player->getRace());
- }
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_RACE);
-
- stmt->setUInt64(0, guid.GetCounter());
-
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
+ return player->GetTeam();
- if (result)
- {
- uint8 race = (*result)[0].GetUInt8();
- return Player::TeamForRace(race);
- }
+ if (CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(guid))
+ return Player::TeamForRace(characterInfo->Race);
return 0;
}
-uint32 ObjectMgr::GetPlayerAccountIdByGUID(ObjectGuid guid) const
+uint32 ObjectMgr::GetPlayerAccountIdByGUID(ObjectGuid const& guid)
{
// prevent DB access for online player
if (Player* player = ObjectAccessor::FindConnectedPlayer(guid))
- {
return player->GetSession()->GetAccountId();
- }
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ACCOUNT_BY_GUID);
-
stmt->setUInt64(0, guid.GetCounter());
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
- if (result)
- {
- uint32 acc = (*result)[0].GetUInt32();
- return acc;
- }
+ if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
+ return (*result)[0].GetUInt32();
return 0;
}
-uint32 ObjectMgr::GetPlayerAccountIdByPlayerName(const std::string& name) const
+uint32 ObjectMgr::GetPlayerAccountIdByPlayerName(std::string const& name)
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ACCOUNT_BY_NAME);
-
stmt->setString(0, name);
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
-
- if (result)
- {
- uint32 acc = (*result)[0].GetUInt32();
- return acc;
- }
+ if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
+ return (*result)[0].GetUInt32();
return 0;
}
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 5f6c4f0765b..fbf696770dc 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -784,7 +784,7 @@ class ObjectMgr
void GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, PlayerLevelInfo* info) const;
- ObjectGuid GetPlayerGUIDByName(std::string const& name) const;
+ static ObjectGuid GetPlayerGUIDByName(std::string const& name);
/**
* Retrieves the player name by guid.
@@ -799,10 +799,10 @@ class ObjectMgr
*
* @return true if player was found, false otherwise
*/
- bool GetPlayerNameByGUID(ObjectGuid guid, std::string& name) const;
- uint32 GetPlayerTeamByGUID(ObjectGuid guid) const;
- uint32 GetPlayerAccountIdByGUID(ObjectGuid guid) const;
- uint32 GetPlayerAccountIdByPlayerName(std::string const& name) const;
+ static bool GetPlayerNameByGUID(ObjectGuid const& guid, std::string& name);
+ static uint32 GetPlayerTeamByGUID(ObjectGuid const& guid);
+ static uint32 GetPlayerAccountIdByGUID(ObjectGuid const& guid);
+ static uint32 GetPlayerAccountIdByPlayerName(std::string const& name);
uint32 GetNearestTaxiNode(float x, float y, float z, uint32 mapid, uint32 team);
void GetTaxiPath(uint32 source, uint32 destination, uint32 &path, uint32 &cost);
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 2aa40942171..e0f443b7da6 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -166,7 +166,7 @@ void Group::LoadGroupFromDB(Field* fields)
m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
// group leader not exist
- if (!sObjectMgr->GetPlayerNameByGUID(m_leaderGuid, m_leaderName))
+ if (!ObjectMgr::GetPlayerNameByGUID(m_leaderGuid, m_leaderName))
return;
m_lootMethod = LootMethod(fields[1].GetUInt8());
@@ -204,7 +204,7 @@ void Group::LoadMemberFromDB(ObjectGuid::LowType guidLow, uint8 memberFlags, uin
member.guid = ObjectGuid::Create<HighGuid::Player>(guidLow);
// skip non-existed member
- if (!sObjectMgr->GetPlayerNameByGUID(member.guid, member.name))
+ if (!ObjectMgr::GetPlayerNameByGUID(member.guid, member.name))
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GROUP_MEMBER);
stmt->setUInt64(0, guidLow);
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 05d26b58ddf..4fb361209c1 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -1854,7 +1854,7 @@ void Guild::HandleAcceptMember(WorldSession* session)
{
Player* player = session->GetPlayer();
if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) &&
- player->GetTeam() != sObjectMgr->GetPlayerTeamByGUID(GetLeaderGUID()))
+ player->GetTeam() != ObjectMgr::GetPlayerTeamByGUID(GetLeaderGUID()))
return;
AddMember(player->GetGUID());
diff --git a/src/server/game/Guilds/GuildFinderMgr.h b/src/server/game/Guilds/GuildFinderMgr.h
index b1c57f230dd..45228957b55 100644
--- a/src/server/game/Guilds/GuildFinderMgr.h
+++ b/src/server/game/Guilds/GuildFinderMgr.h
@@ -81,12 +81,13 @@ struct MembershipRequest
uint8 GetAvailability() const { return _availability; }
uint8 GetClassRoles() const { return _classRoles; }
uint8 GetInterests() const { return _interests; }
- uint8 GetClass() const { return sWorld->GetCharacterNameData(GetPlayerGUID())->m_class; }
- uint8 GetLevel() const { return sWorld->GetCharacterNameData(GetPlayerGUID())->m_level; }
+ uint8 GetClass() const { return sWorld->GetCharacterInfo(GetPlayerGUID())->Class; }
+ uint8 GetLevel() const { return sWorld->GetCharacterInfo(GetPlayerGUID())->Level; }
time_t GetSubmitTime() const { return _time; }
time_t GetExpiryTime() const { return time_t(_time + 30 * 24 * 3600); } // Adding 30 days
std::string const& GetComment() const { return _comment; }
- std::string const& GetName() const { return sWorld->GetCharacterNameData(GetPlayerGUID())->m_name; }
+ std::string const& GetName() const { return sWorld->GetCharacterInfo(GetPlayerGUID())->Name; }
+
private:
std::string _comment;
diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp
index 609a8805b18..8598085d65d 100644
--- a/src/server/game/Handlers/ArenaTeamHandler.cpp
+++ b/src/server/game/Handlers/ArenaTeamHandler.cpp
@@ -237,7 +237,7 @@ void WorldSession::HandleArenaTeamAcceptOpcode(WorldPacket & /*recvData*/)
}
// Only allow members of the other faction to join the team if cross faction interaction is enabled
- if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && _player->GetTeam() != sObjectMgr->GetPlayerTeamByGUID(arenaTeam->GetCaptain()))
+ if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && _player->GetTeam() != ObjectMgr::GetPlayerTeamByGUID(arenaTeam->GetCaptain()))
{
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_NOT_ALLIED);
return;
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index 9197ea15b3d..e7e45e0bf19 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -431,7 +431,7 @@ void WorldSession::HandleAuctionPlaceBid(WorldPacket& recvData)
// impossible have online own another character (use this for speedup check in case online owner)
ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* auction_owner = ObjectAccessor::FindPlayer(ownerGuid);
- if (!auction_owner && sObjectMgr->GetPlayerAccountIdByGUID(ownerGuid) == player->GetSession()->GetAccountId())
+ if (!auction_owner && ObjectMgr::GetPlayerAccountIdByGUID(ownerGuid) == player->GetSession()->GetAccountId())
{
//you cannot bid your another character auction:
SendAuctionCommandResult(NULL, AUCTION_PLACE_BID, ERR_AUCTION_BID_OWN);
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 9be421e2f83..6e9560ac22f 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -246,8 +246,8 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result)
if (!(charInfo.Flags & (CHARACTER_FLAG_LOCKED_FOR_TRANSFER | CHARACTER_FLAG_LOCKED_BY_BILLING)))
_legitCharacters.insert(charInfo.Guid);
- if (!sWorld->HasCharacterNameData(charInfo.Guid)) // This can happen if characters are inserted into the database manually. Core hasn't loaded name data yet.
- sWorld->AddCharacterNameData(charInfo.Guid, charInfo.Name, charInfo.Sex, charInfo.Race, charInfo.Class, charInfo.Level);
+ if (!sWorld->HasCharacterInfo(charInfo.Guid)) // This can happen if characters are inserted into the database manually. Core hasn't loaded name data yet.
+ sWorld->AddCharacterInfo(charInfo.Guid, charInfo.Name, charInfo.Sex, charInfo.Race, charInfo.Class, charInfo.Level, false);
charEnum.Characters.emplace_back(charInfo);
}
@@ -292,6 +292,9 @@ void WorldSession::HandleCharUndeleteEnum(PreparedQueryResult result)
TC_LOG_INFO("network", "Loading undeleted char guid %s from account %u.", charInfo.Guid.ToString().c_str(), GetAccountId());
+ if (!sWorld->HasCharacterInfo(charInfo.Guid)) // This can happen if characters are inserted into the database manually. Core hasn't loaded name data yet.
+ sWorld->AddCharacterInfo(charInfo.Guid, charInfo.Name, charInfo.Sex, charInfo.Race, charInfo.Class, charInfo.Level, true);
+
charEnum.Characters.emplace_back(charInfo);
}
while (result->NextRow());
@@ -675,7 +678,7 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, WorldPac
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Create Character: %s %s", GetAccountId(), GetRemoteAddress().c_str(), createInfo->Name.c_str(), newChar.GetGUID().ToString().c_str());
sScriptMgr->OnPlayerCreate(&newChar);
- sWorld->AddCharacterNameData(newChar.GetGUID(), newChar.GetName(), newChar.getGender(), newChar.getRace(), newChar.getClass(), newChar.getLevel());
+ sWorld->AddCharacterInfo(newChar.GetGUID(), newChar.GetName(), newChar.getGender(), newChar.getRace(), newChar.getClass(), newChar.getLevel(), false);
newChar.CleanupsBeforeDelete();
_charCreateCallback.Reset();
@@ -1261,7 +1264,7 @@ void WorldSession::HandleCharRenameCallBack(PreparedQueryResult result, WorldPac
SendCharRename(RESPONSE_SUCCESS, renameInfo);
- sWorld->UpdateCharacterNameData(renameInfo->Guid, renameInfo->NewName);
+ sWorld->UpdateCharacterInfo(renameInfo->Guid, renameInfo->NewName);
}
void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recvData)
@@ -1272,7 +1275,7 @@ void WorldSession::HandleSetPlayerDeclinedNames(WorldPacket& recvData)
// not accept declined names for unsupported languages
std::string name;
- if (!sObjectMgr->GetPlayerNameByGUID(guid, name))
+ if (!ObjectMgr::GetPlayerNameByGUID(guid, name))
{
SendSetPlayerDeclinedNamesResult(DECLINED_NAMES_RESULT_ERROR, guid);
return;
@@ -1488,7 +1491,7 @@ void WorldSession::HandleCharCustomizeCallback(PreparedQueryResult result, World
// character with this name already exist
/// @todo: make async
- ObjectGuid newGuid = sObjectMgr->GetPlayerGUIDByName(customizeInfo->CharName);
+ ObjectGuid newGuid = ObjectMgr::GetPlayerGUIDByName(customizeInfo->CharName);
if (!newGuid.IsEmpty())
{
if (newGuid != customizeInfo->CharGUID)
@@ -1535,7 +1538,7 @@ void WorldSession::HandleCharCustomizeCallback(PreparedQueryResult result, World
CharacterDatabase.CommitTransaction(trans);
- sWorld->UpdateCharacterNameData(customizeInfo->CharGUID, customizeInfo->CharName, customizeInfo->SexID);
+ sWorld->UpdateCharacterInfo(customizeInfo->CharGUID, customizeInfo->CharName, customizeInfo->SexID);
SendCharCustomize(RESPONSE_SUCCESS, customizeInfo);
@@ -1694,16 +1697,16 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(PreparedQueryResult res
}
// get the players old (at this moment current) race
- CharacterNameData const* nameData = sWorld->GetCharacterNameData(factionChangeInfo->Guid);
- if (!nameData)
+ CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(factionChangeInfo->Guid);
+ if (!characterInfo)
{
SendCharFactionChange(CHAR_CREATE_ERROR, factionChangeInfo);
return;
}
- uint8 oldRace = nameData->m_race;
- uint8 playerClass = nameData->m_class;
- uint8 level = nameData->m_level;
+ uint8 oldRace = characterInfo->Race;
+ uint8 playerClass = characterInfo->Class;
+ uint8 level = characterInfo->Level;
if (!sObjectMgr->GetPlayerInfo(factionChangeInfo->RaceID, playerClass))
{
@@ -1769,7 +1772,7 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(PreparedQueryResult res
}
// character with this name already exist
- ObjectGuid newGuid = sObjectMgr->GetPlayerGUIDByName(factionChangeInfo->Name);
+ ObjectGuid newGuid = ObjectMgr::GetPlayerGUIDByName(factionChangeInfo->Name);
if (!newGuid.IsEmpty())
{
if (newGuid != factionChangeInfo->Guid)
@@ -1872,7 +1875,7 @@ void WorldSession::HandleCharRaceOrFactionChangeCallback(PreparedQueryResult res
trans->Append(stmt);
}
- sWorld->UpdateCharacterNameData(factionChangeInfo->Guid, factionChangeInfo->Name, factionChangeInfo->SexID, factionChangeInfo->RaceID);
+ sWorld->UpdateCharacterInfo(factionChangeInfo->Guid, factionChangeInfo->Name, factionChangeInfo->SexID, factionChangeInfo->RaceID);
if (oldRace != factionChangeInfo->RaceID)
{
@@ -2477,25 +2480,7 @@ void WorldSession::HandleCharUndeleteCallback(PreparedQueryResult result, WorldP
stmt->setUInt32(0, GetBattlenetAccountId());
LoginDatabase.Execute(stmt);
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME_DATA);
- stmt->setUInt64(0, undeleteInfo->CharacterGuid.GetCounter());
-
- _charUndeleteCallback.FreeResult();
- _charUndeleteCallback.SetFutureResult(CharacterDatabase.AsyncQuery(stmt));
- _charUndeleteCallback.NextStage();
- break;
- }
- case 5:
- {
- if (!result)
- {
- SendUndeleteCharacterResponse(CHARACTER_UNDELETE_RESULT_ERROR_UNKNOWN, undeleteInfo);
- _charUndeleteCallback.Reset();
- return;
- }
-
- Field* fields = result->Fetch();
- sWorld->AddCharacterNameData(undeleteInfo->CharacterGuid, undeleteInfo->Name, fields[2].GetUInt8(), fields[0].GetUInt8(), fields[1].GetUInt8(), fields[3].GetUInt8());
+ sWorld->UpdateCharacterInfoDeleted(undeleteInfo->CharacterGuid, false, &undeleteInfo->Name);
SendUndeleteCharacterResponse(CHARACTER_UNDELETE_RESULT_OK, undeleteInfo);
_charUndeleteCallback.Reset();
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index c5207941301..46ff540ef04 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -834,7 +834,7 @@ void WorldSession::HandleGroupChangeSubGroupOpcode(WorldPacket& recvData)
else
{
CharacterDatabase.EscapeString(name);
- guid = sObjectMgr->GetPlayerGUIDByName(name.c_str());
+ guid = ObjectMgr::GetPlayerGUIDByName(name.c_str());
}
group->ChangeMembersGroup(guid, groupNr);
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 44c51800c57..69ffef3cdb1 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -154,7 +154,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
ObjectGuid receiverGuid;
if (normalizePlayerName(receiverName))
- receiverGuid = sObjectMgr->GetPlayerGUIDByName(receiverName);
+ receiverGuid = ObjectMgr::GetPlayerGUIDByName(receiverName);
if (!receiverGuid)
{
@@ -212,7 +212,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
}
else
{
- receiverTeam = sObjectMgr->GetPlayerTeamByGUID(receiverGuid);
+ receiverTeam = ObjectMgr::GetPlayerTeamByGUID(receiverGuid);
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_MAIL_COUNT);
stmt->setUInt64(0, receiverGuid.GetCounter());
@@ -234,7 +234,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData)
receiverLevel = fields[0].GetUInt8();
}
- receiverAccountId = sObjectMgr->GetPlayerAccountIdByGUID(receiverGuid);
+ receiverAccountId = ObjectMgr::GetPlayerAccountIdByGUID(receiverGuid);
receiverBnetAccountId = Battlenet::AccountMgr::GetIdByGameAccount(receiverAccountId);
}
@@ -569,16 +569,16 @@ void WorldSession::HandleMailTakeItem(WorldPacket& recvData)
else
{
// can be calculated early
- sender_accId = sObjectMgr->GetPlayerAccountIdByGUID(sender_guid);
+ sender_accId = ObjectMgr::GetPlayerAccountIdByGUID(sender_guid);
- if (!sObjectMgr->GetPlayerNameByGUID(sender_guid, sender_name))
+ if (!ObjectMgr::GetPlayerNameByGUID(sender_guid, sender_name))
sender_name = sObjectMgr->GetTrinityStringForDBCLocale(LANG_UNKNOWN);
}
sLog->outCommand(GetAccountId(), "GM %s (Account: %u) receiver mail item: %s (Entry: %u Count: %u) and send COD money: " UI64FMTD " to player: %s (Account: %u)",
GetPlayerName().c_str(), GetAccountId(), it->GetTemplate()->Name1.c_str(), it->GetEntry(), it->GetCount(), m->COD, sender_name.c_str(), sender_accId);
}
else if (!receiver)
- sender_accId = sObjectMgr->GetPlayerAccountIdByGUID(sender_guid);
+ sender_accId = ObjectMgr::GetPlayerAccountIdByGUID(sender_guid);
// check player existence
if (receiver || sender_accId)
diff --git a/src/server/game/Handlers/PetitionsHandler.cpp b/src/server/game/Handlers/PetitionsHandler.cpp
index 93187b6bb2f..1326a6eeba2 100644
--- a/src/server/game/Handlers/PetitionsHandler.cpp
+++ b/src/server/game/Handlers/PetitionsHandler.cpp
@@ -480,7 +480,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket& recvData)
return;
// not let enemies sign guild charter
- if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != sObjectMgr->GetPlayerTeamByGUID(ownerGuid))
+ if (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD) && GetPlayer()->GetTeam() != ObjectMgr::GetPlayerTeamByGUID(ownerGuid))
{
if (type != GUILD_CHARTER_TYPE)
SendArenaTeamCommandResult(ERR_ARENA_TEAM_INVITE_SS, "", "", ERR_ARENA_TEAM_NOT_ALLIED);
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 1f88585b5ae..7be46b4723b 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -36,35 +36,33 @@
void WorldSession::SendNameQueryOpcode(ObjectGuid guid)
{
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
- CharacterNameData const* nameData = sWorld->GetCharacterNameData(guid);
+ CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(guid);
WorldPackets::Character::PlayerNameResponse response;
response.Player = guid;
- if (nameData)
+ if (characterInfo)
{
- uint32 accountId = player ? player->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(guid);
+ uint32 accountId = player ? player->GetSession()->GetAccountId() : ObjectMgr::GetPlayerAccountIdByGUID(guid);
uint32 bnetAccountId = player ? player->GetSession()->GetBattlenetAccountId() : Battlenet::AccountMgr::GetIdByGameAccount(accountId);
- response.Result = 0; // name known
- response.Data.IsDeleted = false; // TODO: send deletes as well
- response.Data.AccountID = ObjectGuid::Create<HighGuid::WowAccount>(accountId);
+ response.Result = RESPONSE_SUCCESS; // name known
+ response.Data.IsDeleted = characterInfo->IsDeleted;
+ response.Data.AccountID = ObjectGuid::Create<HighGuid::WowAccount>(accountId);
response.Data.BnetAccountID = ObjectGuid::Create<HighGuid::BNetAccount>(bnetAccountId);
- response.Data.Name = nameData->m_name;
+ response.Data.Name = characterInfo->Name;
response.Data.VirtualRealmAddress = GetVirtualRealmAddress();
- response.Data.Race = nameData->m_race;
- response.Data.Sex = nameData->m_gender;
- response.Data.ClassID = nameData->m_class;
- response.Data.Level = nameData->m_level;
+ response.Data.Race = characterInfo->Race;
+ response.Data.Sex = characterInfo->Sex;
+ response.Data.ClassID = characterInfo->Class;
+ response.Data.Level = characterInfo->Level;
if (DeclinedName const* names = (player ? player->GetDeclinedNames() : nullptr))
- for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
+ for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
response.Data.DeclinedNames.name[i] = names->name[i];
}
else
- {
- response.Result = 1; // name unknown
- }
+ response.Result = RESPONSE_FAILURE; // name unknown
SendPacket(response.Write());
}
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 3051729d49a..99ee9879930 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -136,7 +136,7 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, ObjectGuid::LowType sender
uint32 rc_account = 0;
if (!receiver)
- rc_account = sObjectMgr->GetPlayerAccountIdByGUID(receiverGuid);
+ rc_account = ObjectMgr::GetPlayerAccountIdByGUID(receiverGuid);
if (!receiver && !rc_account) // sender not exist
{
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index 7c74c4cc7b0..5c1a144efe8 100644
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -175,7 +175,7 @@ std::string GmTicket::FormatMessageString(ChatHandler& handler, bool detailed) c
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGE, (secsToTimeString(curTime - _lastModifiedTime, true, false)).c_str());
std::string name;
- if (sObjectMgr->GetPlayerNameByGUID(_assignedTo, name))
+ if (ObjectMgr::GetPlayerNameByGUID(_assignedTo, name))
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, name.c_str());
if (detailed)
diff --git a/src/server/game/Tickets/TicketMgr.h b/src/server/game/Tickets/TicketMgr.h
index a9b32cf35c3..5c31906c5a8 100644
--- a/src/server/game/Tickets/TicketMgr.h
+++ b/src/server/game/Tickets/TicketMgr.h
@@ -102,7 +102,7 @@ public:
std::string name;
// save queries if ticket is not assigned
if (!_assignedTo.IsEmpty())
- sObjectMgr->GetPlayerNameByGUID(_assignedTo, name);
+ ObjectMgr::GetPlayerNameByGUID(_assignedTo, name);
return name;
}
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index 79d96200d80..6f42d41c694 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -666,7 +666,7 @@ DumpReturn PlayerDumpReader::LoadDump(std::string const& file, uint32 account, s
CharacterDatabase.CommitTransaction(trans);
// in case of name conflict player has to rename at login anyway
- sWorld->AddCharacterNameData(ObjectGuid::Create<HighGuid::Player>(guid), name, gender, race, playerClass, level);
+ sWorld->AddCharacterInfo(ObjectGuid::Create<HighGuid::Player>(guid), name, gender, race, playerClass, level, false);
sObjectMgr->GetGenerator<HighGuid::Item>()->Set(sObjectMgr->GetGenerator<HighGuid::Item>()->GetNextAfterMaxUsed() + items.size());
sObjectMgr->_mailId += mails.size();
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 8bc360abf4d..098181c76a1 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1917,7 +1917,7 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Calculate next currency reset time...");
InitCurrencyResetTime();
- LoadCharacterNameData();
+ LoadCharacterInfoStore();
TC_LOG_INFO("misc", "Loading hotfix info...");
sObjectMgr->LoadHotfixData();
@@ -2510,7 +2510,7 @@ bool World::RemoveBanAccount(BanMode mode, std::string const& nameOrIP)
if (mode == BAN_ACCOUNT)
account = AccountMgr::GetId(nameOrIP);
else if (mode == BAN_CHARACTER)
- account = sObjectMgr->GetPlayerAccountIdByPlayerName(nameOrIP);
+ account = ObjectMgr::GetPlayerAccountIdByPlayerName(nameOrIP);
if (!account)
return false;
@@ -2534,7 +2534,7 @@ BanReturn World::BanCharacter(std::string const& name, std::string const& durati
/// Pick a player to ban if not online
if (!pBanned)
{
- guid = sObjectMgr->GetPlayerGUIDByName(name);
+ guid = ObjectMgr::GetPlayerGUIDByName(name);
if (guid.IsEmpty())
return BAN_NOTFOUND; // Nobody to ban
}
@@ -2568,7 +2568,7 @@ bool World::RemoveBanCharacter(std::string const& name)
/// Pick a player to ban if not online
if (!pBanned)
{
- guid = sObjectMgr->GetPlayerGUIDByName(name);
+ guid = ObjectMgr::GetPlayerGUIDByName(name);
if (guid.IsEmpty())
return false; // Nobody to ban
}
@@ -2836,9 +2836,9 @@ void World::_UpdateRealmCharCount(PreparedQueryResult resultCharCount)
void World::InitWeeklyQuestResetTime()
{
- time_t wstime = uint64(sWorld->getWorldState(WS_WEEKLY_QUEST_RESET_TIME));
+ time_t wstime = sWorld->getWorldState(WS_WEEKLY_QUEST_RESET_TIME);
time_t curtime = time(NULL);
- m_NextWeeklyQuestReset = wstime < curtime ? curtime : time_t(wstime);
+ m_NextWeeklyQuestReset = wstime < curtime ? curtime : wstime;
}
void World::InitDailyQuestResetTime()
@@ -2878,16 +2878,16 @@ void World::InitDailyQuestResetTime()
void World::InitMonthlyQuestResetTime()
{
- time_t wstime = uint64(sWorld->getWorldState(WS_MONTHLY_QUEST_RESET_TIME));
+ time_t wstime = sWorld->getWorldState(WS_MONTHLY_QUEST_RESET_TIME);
time_t curtime = time(NULL);
- m_NextMonthlyQuestReset = wstime < curtime ? curtime : time_t(wstime);
+ m_NextMonthlyQuestReset = wstime < curtime ? curtime : wstime;
}
void World::InitRandomBGResetTime()
{
- time_t bgtime = uint64(sWorld->getWorldState(WS_BG_DAILY_RESET_TIME));
+ time_t bgtime = sWorld->getWorldState(WS_BG_DAILY_RESET_TIME);
if (!bgtime)
- m_NextRandomBGReset = time_t(time(NULL)); // game time not yet init
+ m_NextRandomBGReset = time(NULL); // game time not yet init
// generate time by config
time_t curTime = time(NULL);
@@ -2913,9 +2913,9 @@ void World::InitRandomBGResetTime()
void World::InitGuildResetTime()
{
- time_t gtime = uint64(getWorldState(WS_GUILD_DAILY_RESET_TIME));
+ time_t gtime = getWorldState(WS_GUILD_DAILY_RESET_TIME);
if (!gtime)
- m_NextGuildReset = time_t(time(NULL)); // game time not yet init
+ m_NextGuildReset = time(NULL); // game time not yet init
// generate time by config
time_t curTime = time(NULL);
@@ -2941,9 +2941,9 @@ void World::InitGuildResetTime()
void World::InitCurrencyResetTime()
{
- time_t currencytime = uint64(sWorld->getWorldState(WS_CURRENCY_RESET_TIME));
+ time_t currencytime = sWorld->getWorldState(WS_CURRENCY_RESET_TIME);
if (!currencytime)
- m_NextCurrencyReset = time_t(time(NULL)); // game time not yet init
+ m_NextCurrencyReset = time(NULL); // game time not yet init
// generate time by config
time_t curTime = time(NULL);
@@ -3227,95 +3227,108 @@ void World::ProcessQueryCallbacks()
}
/**
-* @brief Loads several pieces of information on server startup with the GUID
-* There is no further database query necessary.
-* These are a number of methods that work into the calling function.
-*
-* @param guid Requires a guid to call
-* @return Name, Gender, Race, Class and Level of player character
-* Example Usage:
-* @code
-* CharacterNameData const* nameData = sWorld->GetCharacterNameData(GUID);
-* if (!nameData)
-* return;
-*
-* std::string playerName = nameData->m_name;
-* uint8 playerGender = nameData->m_gender;
-* uint8 playerRace = nameData->m_race;
-* uint8 playerClass = nameData->m_class;
-* uint8 playerLevel = nameData->m_level;
-* @endcode
-**/
-
-void World::LoadCharacterNameData()
-{
- TC_LOG_INFO("server.loading", "Loading character name data");
-
- QueryResult result = CharacterDatabase.Query("SELECT guid, name, race, gender, class, level FROM characters WHERE deleteDate IS NULL");
+ * @brief Loads several pieces of information on server startup with the GUID
+ * There is no further database query necessary.
+ * These are a number of methods that work into the calling function.
+ *
+ * @param guid Requires a guid to call
+ * @return Name, Sex, Race, Class and Level of player character
+ * Example Usage:
+ * @code
+ * CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(GUID);
+ * if (!nameData)
+ * return;
+ *
+ * std::string playerName = characterInfo->Name;
+ * uint8 playerGender = characterInfo->Sex;
+ * uint8 playerRace = characterInfo->Race;
+ * uint8 playerClass = characterInfo->Class;
+ * uint8 playerLevel = characterInfo->Level;
+ * @endcode
+ */
+
+CharacterInfo const* World::GetCharacterInfo(ObjectGuid const& guid) const
+{
+ CharacterInfoContainer::const_iterator itr = _characterInfoStore.find(guid);
+ if (itr != _characterInfoStore.end())
+ return &itr->second;
+
+ return nullptr;
+}
+
+void World::LoadCharacterInfoStore()
+{
+ TC_LOG_INFO("server.loading", "Loading character info store");
+
+ _characterInfoStore.clear();
+
+ QueryResult result = CharacterDatabase.Query("SELECT guid, name, race, gender, class, level, deleteDate FROM characters");
if (!result)
{
TC_LOG_INFO("server.loading", "No character name data loaded, empty query");
return;
}
- uint32 count = 0;
-
do
{
Field* fields = result->Fetch();
- AddCharacterNameData(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()), fields[1].GetString(),
- fields[3].GetUInt8() /*gender*/, fields[2].GetUInt8() /*race*/, fields[4].GetUInt8() /*class*/, fields[5].GetUInt8() /*level*/);
- ++count;
- } while (result->NextRow());
+ AddCharacterInfo(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()), fields[1].GetString(),
+ fields[3].GetUInt8() /*gender*/, fields[2].GetUInt8() /*race*/, fields[4].GetUInt8() /*class*/, fields[5].GetUInt8() /*level*/, fields[6].GetUInt32() != 0);
+ }
+ while (result->NextRow());
- TC_LOG_INFO("server.loading", "Loaded name data for %u characters", count);
+ TC_LOG_INFO("server.loading", "Loaded character infos for " SZFMTD " characters", _characterInfoStore.size());
}
-void World::AddCharacterNameData(ObjectGuid guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass, uint8 level)
+void World::AddCharacterInfo(ObjectGuid const& guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass, uint8 level, bool isDeleted)
{
- CharacterNameData& data = _characterNameDataMap[guid];
- data.m_name = name;
- data.m_race = race;
- data.m_gender = gender;
- data.m_class = playerClass;
- data.m_level = level;
+ CharacterInfo& data = _characterInfoStore[guid];
+ data.Name = name;
+ data.Race = race;
+ data.Sex = gender;
+ data.Class = playerClass;
+ data.Level = level;
+ data.IsDeleted = isDeleted;
}
-void World::UpdateCharacterNameData(ObjectGuid guid, std::string const& name, uint8 gender /*= GENDER_NONE*/, uint8 race /*= RACE_NONE*/)
+void World::UpdateCharacterInfo(ObjectGuid const& guid, std::string const& name, uint8 gender /*= GENDER_NONE*/, uint8 race /*= RACE_NONE*/)
{
- std::map<ObjectGuid, CharacterNameData>::iterator itr = _characterNameDataMap.find(guid);
- if (itr == _characterNameDataMap.end())
+ CharacterInfoContainer::iterator itr = _characterInfoStore.find(guid);
+ if (itr == _characterInfoStore.end())
return;
- itr->second.m_name = name;
+ itr->second.Name = name;
if (gender != GENDER_NONE)
- itr->second.m_gender = gender;
+ itr->second.Sex = gender;
if (race != RACE_NONE)
- itr->second.m_race = race;
+ itr->second.Race = race;
WorldPacket data(SMSG_INVALIDATE_PLAYER, 8);
data << guid;
SendGlobalMessage(&data);
}
-void World::UpdateCharacterNameDataLevel(ObjectGuid guid, uint8 level)
+void World::UpdateCharacterInfoLevel(ObjectGuid const& guid, uint8 level)
{
- std::map<ObjectGuid, CharacterNameData>::iterator itr = _characterNameDataMap.find(guid);
- if (itr == _characterNameDataMap.end())
+ CharacterInfoContainer::iterator itr = _characterInfoStore.find(guid);
+ if (itr == _characterInfoStore.end())
return;
- itr->second.m_level = level;
+ itr->second.Level = level;
}
-CharacterNameData const* World::GetCharacterNameData(ObjectGuid guid) const
+void World::UpdateCharacterInfoDeleted(ObjectGuid const& guid, bool deleted, std::string const* name /*= nullptr*/)
{
- std::map<ObjectGuid, CharacterNameData>::const_iterator itr = _characterNameDataMap.find(guid);
- if (itr != _characterNameDataMap.end())
- return &itr->second;
- else
- return NULL;
+ CharacterInfoContainer::iterator itr = _characterInfoStore.find(guid);
+ if (itr == _characterInfoStore.end())
+ return;
+
+ itr->second.IsDeleted = deleted;
+
+ if (name)
+ itr->second.Name = *name;
}
void World::UpdatePhaseDefinitions()
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 7bf8f5b70e7..79723c540ab 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -543,13 +543,14 @@ private:
typedef std::unordered_map<uint32, WorldSession*> SessionMap;
-struct CharacterNameData
+struct CharacterInfo
{
- std::string m_name;
- uint8 m_class;
- uint8 m_race;
- uint8 m_gender;
- uint8 m_level;
+ std::string Name;
+ uint8 Class;
+ uint8 Race;
+ uint8 Sex;
+ uint8 Level;
+ bool IsDeleted;
};
/// The World
@@ -768,12 +769,13 @@ class World
void UpdateAreaDependentAuras();
- CharacterNameData const* GetCharacterNameData(ObjectGuid guid) const;
- void AddCharacterNameData(ObjectGuid guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass, uint8 level);
- void UpdateCharacterNameData(ObjectGuid guid, std::string const& name, uint8 gender = GENDER_NONE, uint8 race = RACE_NONE);
- void UpdateCharacterNameDataLevel(ObjectGuid guid, uint8 level);
- void DeleteCharacterNameData(ObjectGuid guid) { _characterNameDataMap.erase(guid); }
- bool HasCharacterNameData(ObjectGuid guid) { return _characterNameDataMap.find(guid) != _characterNameDataMap.end(); }
+ CharacterInfo const* GetCharacterInfo(ObjectGuid const& guid) const;
+ void AddCharacterInfo(ObjectGuid const& guid, std::string const& name, uint8 gender, uint8 race, uint8 playerClass, uint8 level, bool isDeleted);
+ void DeleteCharacterInfo(ObjectGuid const& guid) { _characterInfoStore.erase(guid); }
+ bool HasCharacterInfo(ObjectGuid const& guid) { return _characterInfoStore.find(guid) != _characterInfoStore.end(); }
+ void UpdateCharacterInfo(ObjectGuid const& guid, std::string const& name, uint8 gender = GENDER_NONE, uint8 race = RACE_NONE);
+ void UpdateCharacterInfoLevel(ObjectGuid const& guid, uint8 level);
+ void UpdateCharacterInfoDeleted(ObjectGuid const& guid, bool deleted, std::string const* name = nullptr);
uint32 GetCleaningFlags() const { return m_CleaningFlags; }
void SetCleaningFlags(uint32 flags) { m_CleaningFlags = flags; }
@@ -881,8 +883,9 @@ class World
typedef std::map<uint8, uint8> AutobroadcastsWeightMap;
AutobroadcastsWeightMap m_AutobroadcastsWeights;
- std::map<ObjectGuid, CharacterNameData> _characterNameDataMap;
- void LoadCharacterNameData();
+ typedef std::map<ObjectGuid, CharacterInfo> CharacterInfoContainer;
+ CharacterInfoContainer _characterInfoStore;
+ void LoadCharacterInfoStore();
void ProcessQueryCallbacks();
std::deque<PreparedQueryResultFuture> m_realmCharCallbacks;
diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp
index 32a4c3ac9b4..29b874d83c4 100644
--- a/src/server/scripts/Commands/cs_arena.cpp
+++ b/src/server/scripts/Commands/cs_arena.cpp
@@ -275,14 +275,14 @@ public:
arena->SetCaptain(targetGuid);
- CharacterNameData const* oldCaptainNameData = sWorld->GetCharacterNameData(arena->GetCaptain());
- if (!oldCaptainNameData)
+ std::string oldCaptainName;
+ if (!ObjectMgr::GetPlayerNameByGUID(arena->GetCaptain(), oldCaptainName))
{
handler->SetSentErrorMessage(true);
return false;
}
- handler->PSendSysMessage(LANG_ARENA_CAPTAIN, arena->GetName().c_str(), arena->GetId(), oldCaptainNameData->m_name.c_str(), target->GetName().c_str());
+ handler->PSendSysMessage(LANG_ARENA_CAPTAIN, arena->GetName().c_str(), arena->GetId(), oldCaptainName.c_str(), target->GetName().c_str());
if (handler->GetSession())
TC_LOG_DEBUG("bg.arena", "GameMaster: %s [%s] promoted player: %s [%s] to leader of arena team \"%s\"[Id: %u]",
handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUID().ToString().c_str(),
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp
index f3766939c71..c3e32e007af 100644
--- a/src/server/scripts/Commands/cs_ban.cpp
+++ b/src/server/scripts/Commands/cs_ban.cpp
@@ -305,7 +305,7 @@ public:
if (!target)
{
- targetGuid = sObjectMgr->GetPlayerGUIDByName(name);
+ targetGuid = ObjectMgr::GetPlayerGUIDByName(name);
if (targetGuid.IsEmpty())
{
handler->PSendSysMessage(LANG_BANINFO_NOCHARACTER);
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 7bd2775e6c6..f066613b905 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -211,7 +211,7 @@ public:
return;
}
- if (!sObjectMgr->GetPlayerGUIDByName(delInfo.name).IsEmpty())
+ if (!ObjectMgr::GetPlayerGUIDByName(delInfo.name).IsEmpty())
{
handler->PSendSysMessage(LANG_CHARACTER_DELETED_SKIP_NAME, delInfo.name.c_str(), delInfo.guid.ToString().c_str(), delInfo.accountId);
return;
@@ -223,10 +223,7 @@ public:
stmt->setUInt64(2, delInfo.guid.GetCounter());
CharacterDatabase.Execute(stmt);
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARACTER_NAME_DATA);
- stmt->setUInt64(0, delInfo.guid.GetCounter());
- if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
- sWorld->AddCharacterNameData(delInfo.guid, delInfo.name, (*result)[2].GetUInt8(), (*result)[0].GetUInt8(), (*result)[1].GetUInt8(), (*result)[3].GetUInt8());
+ sWorld->UpdateCharacterInfoDeleted(delInfo.guid, false, &delInfo.name);
}
static void HandleCharacterLevel(Player* player, ObjectGuid playerGuid, uint32 oldLevel, uint32 newLevel, ChatHandler* handler)
@@ -329,7 +326,7 @@ public:
if (handler->HasLowerSecurity(NULL, targetGuid))
return false;
- sObjectMgr->GetPlayerNameByGUID(targetGuid, playerOldName);
+ ObjectMgr::GetPlayerNameByGUID(targetGuid, playerOldName);
}
if (!normalizePlayerName(newName))
@@ -386,14 +383,14 @@ public:
CharacterDatabase.Execute(stmt);
}
- sWorld->UpdateCharacterNameData(targetGuid, newName);
+ sWorld->UpdateCharacterInfo(targetGuid, newName);
handler->PSendSysMessage(LANG_RENAME_PLAYER_WITH_NEW_NAME, playerOldName.c_str(), newName.c_str());
if (WorldSession* session = handler->GetSession())
{
if (Player* player = session->GetPlayer())
- sLog->outCommand(session->GetAccountId(), "GM %s (Account: %u) forced rename %s to player %s (Account: %u)", player->GetName().c_str(), session->GetAccountId(), newName.c_str(), playerOldName.c_str(), sObjectMgr->GetPlayerAccountIdByGUID(targetGuid));
+ sLog->outCommand(session->GetAccountId(), "GM %s (Account: %u) forced rename %s to player %s (Account: %u)", player->GetName().c_str(), session->GetAccountId(), newName.c_str(), playerOldName.c_str(), ObjectMgr::GetPlayerAccountIdByGUID(targetGuid));
}
else
sLog->outCommand(0, "CONSOLE forced rename '%s' to '%s' (%s)", playerOldName.c_str(), newName.c_str(), targetGuid.ToString().c_str());
@@ -785,14 +782,14 @@ public:
}
else
{
- characterGuid = sObjectMgr->GetPlayerGUIDByName(characterName);
+ characterGuid = ObjectMgr::GetPlayerGUIDByName(characterName);
if (!characterGuid)
{
handler->PSendSysMessage(LANG_NO_PLAYER, characterName.c_str());
handler->SetSentErrorMessage(true);
return false;
}
- accountId = sObjectMgr->GetPlayerAccountIdByGUID(characterGuid);
+ accountId = ObjectMgr::GetPlayerAccountIdByGUID(characterGuid);
}
std::string accountName;
@@ -921,7 +918,7 @@ public:
return false;
}
- if (sObjectMgr->GetPlayerAccountIdByGUID(ObjectGuid::Create<HighGuid::Player>(guid)))
+ if (ObjectMgr::GetPlayerAccountIdByGUID(ObjectGuid::Create<HighGuid::Player>(guid)))
{
handler->PSendSysMessage(LANG_CHARACTER_GUID_IN_USE, guid);
handler->SetSentErrorMessage(true);
@@ -980,10 +977,10 @@ public:
return false;
}
- guid = sObjectMgr->GetPlayerGUIDByName(name);
+ guid = ObjectMgr::GetPlayerGUIDByName(name);
}
- if (!sObjectMgr->GetPlayerAccountIdByGUID(guid))
+ if (!ObjectMgr::GetPlayerAccountIdByGUID(guid))
{
handler->PSendSysMessage(LANG_PLAYER_NOT_FOUND);
handler->SetSentErrorMessage(true);
diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp
index 99a0766f728..ea9849ce074 100644
--- a/src/server/scripts/Commands/cs_group.cpp
+++ b/src/server/scripts/Commands/cs_group.cpp
@@ -272,7 +272,7 @@ public:
ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
// ... and try to extract a player out of it.
- if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget))
+ if (ObjectMgr::GetPlayerNameByGUID(parseGUID, nameTarget))
{
playerTarget = ObjectAccessor::FindPlayer(parseGUID);
guidTarget = parseGUID;
diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp
index 977e6ceb1e3..f7a614b171b 100644
--- a/src/server/scripts/Commands/cs_guild.cpp
+++ b/src/server/scripts/Commands/cs_guild.cpp
@@ -268,7 +268,7 @@ public:
handler->PSendSysMessage(LANG_GUILD_INFO_NAME, guild->GetName().c_str(), guild->GetId()); // Guild Id + Name
std::string guildMasterName;
- if (sObjectMgr->GetPlayerNameByGUID(guild->GetLeaderGUID(), guildMasterName))
+ if (ObjectMgr::GetPlayerNameByGUID(guild->GetLeaderGUID(), guildMasterName))
handler->PSendSysMessage(LANG_GUILD_INFO_GUILD_MASTER, guildMasterName.c_str(), guild->GetLeaderGUID().ToString().c_str()); // Guild Master
// Format creation date
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index deb714d1ef8..46929e3967c 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -478,7 +478,7 @@ public:
ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
- if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
+ if (ObjectMgr::GetPlayerNameByGUID(parseGUID, targetName))
{
target = ObjectAccessor::FindPlayer(parseGUID);
targetGuid = parseGUID;
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 0ebf05f74ad..f202fce6fae 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1423,7 +1423,7 @@ public:
ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
// ... and make sure we get a target, somehow.
- if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
+ if (ObjectMgr::GetPlayerNameByGUID(parseGUID, targetName))
{
target = ObjectAccessor::FindPlayer(parseGUID);
targetGuid = parseGUID;
@@ -1836,7 +1836,7 @@ public:
if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid, &targetName))
return false;
- uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(targetGuid);
+ uint32 accountId = target ? target->GetSession()->GetAccountId() : ObjectMgr::GetPlayerAccountIdByGUID(targetGuid);
// find only player from same account if any
if (!target)
@@ -1905,7 +1905,7 @@ public:
if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
return false;
- uint32 accountId = target ? target->GetSession()->GetAccountId() : sObjectMgr->GetPlayerAccountIdByGUID(targetGuid);
+ uint32 accountId = target ? target->GetSession()->GetAccountId() : ObjectMgr::GetPlayerAccountIdByGUID(targetGuid);
// find only player from same account if any
if (!target)
@@ -1979,7 +1979,7 @@ public:
PreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO);
stmt->setUInt16(0, accountId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
-
+
if (!result)
{
handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_EMPTY, accountName);
@@ -1990,16 +1990,16 @@ public:
do
{
Field* fields = result->Fetch();
-
+
// we have to manually set the string for mutedate
time_t sqlTime = fields[0].GetUInt32();
tm timeinfo;
char buffer[80];
-
+
// set it to string
localtime_r(&sqlTime, &timeinfo);
strftime(buffer, sizeof(buffer),"%Y-%m-%d %I:%M%p", &timeinfo);
-
+
handler->PSendSysMessage(LANG_COMMAND_MUTEHISTORY_OUTPUT, buffer, fields[1].GetUInt32(), fields[2].GetCString(), fields[3].GetCString());
} while (result->NextRow());
return true;
@@ -2464,7 +2464,7 @@ public:
if (targetName)
{
// Check for offline players
- ObjectGuid guid = sObjectMgr->GetPlayerGUIDByName(name);
+ ObjectGuid guid = ObjectMgr::GetPlayerGUIDByName(name);
if (guid.IsEmpty())
{
handler->SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp
index 5667145c266..3917368a3c3 100644
--- a/src/server/scripts/Commands/cs_ticket.cpp
+++ b/src/server/scripts/Commands/cs_ticket.cpp
@@ -95,8 +95,8 @@ public:
return true;
}
- ObjectGuid targetGuid = sObjectMgr->GetPlayerGUIDByName(target);
- uint32 accountId = sObjectMgr->GetPlayerAccountIdByGUID(targetGuid);
+ ObjectGuid targetGuid = ObjectMgr::GetPlayerGUIDByName(target);
+ uint32 accountId = ObjectMgr::GetPlayerAccountIdByGUID(targetGuid);
// Target must exist and have administrative rights
if (!AccountMgr::HasPermission(accountId, rbac::RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET, realmHandle.Index))
{
@@ -375,7 +375,7 @@ public:
else
{
ObjectGuid guid = ticket->GetAssignedToGUID();
- uint32 accountId = sObjectMgr->GetPlayerAccountIdByGUID(guid);
+ uint32 accountId = ObjectMgr::GetPlayerAccountIdByGUID(guid);
security = AccountMgr::GetSecurity(accountId, realmHandle.Index);
}
@@ -436,7 +436,7 @@ public:
if (Player* player = ObjectAccessor::FindPlayerByName(name))
guid = player->GetGUID();
else
- guid = sObjectMgr->GetPlayerGUIDByName(name);
+ guid = ObjectMgr::GetPlayerGUIDByName(name);
// Target must exist
if (!guid)
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index 572230a6071..e91aa10c52d 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -62,10 +62,8 @@ void CharacterDatabaseConnection::DoPrepareStatements()
"LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.deleteInfos_Account = ? AND c.deleteInfos_Name IS NOT NULL", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_FREE_NAME, "SELECT name, at_login FROM characters WHERE guid = ? AND NOT EXISTS (SELECT NULL FROM characters WHERE name = ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_GUID_RACE_ACC_BY_NAME, "SELECT guid, race, account FROM characters WHERE name = ?", CONNECTION_BOTH);
- PrepareStatement(CHAR_SEL_CHAR_RACE, "SELECT race FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_LEVEL, "SELECT level FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_ZONE, "SELECT zone FROM characters WHERE guid = ?", CONNECTION_SYNCH);
- PrepareStatement(CHAR_SEL_CHARACTER_NAME_DATA, "SELECT race, class, gender, level FROM characters WHERE guid = ?", CONNECTION_BOTH);
PrepareStatement(CHAR_SEL_CHAR_POSITION_XYZ, "SELECT map, position_x, position_y, position_z FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHAR_POSITION, "SELECT position_x, position_y, position_z, orientation, map, taxi_path FROM characters WHERE guid = ?", CONNECTION_SYNCH);
@@ -170,7 +168,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_DEL_ACCOUNT_INSTANCE_LOCK_TIMES, "DELETE FROM account_instance_times WHERE accountId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_ACCOUNT_INSTANCE_LOCK_TIMES, "INSERT INTO account_instance_times (accountId, instanceId, releaseTime) VALUES (?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHARACTER_NAME_CLASS, "SELECT name, class FROM characters WHERE guid = ?", CONNECTION_SYNCH);
- PrepareStatement(CHAR_SEL_CHARACTER_NAME, "SELECT name FROM characters WHERE guid = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_MATCH_MAKER_RATING, "SELECT matchMakerRating FROM character_arena_stats WHERE guid = ? AND slot = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_SEL_CHARACTER_COUNT, "SELECT account, COUNT(guid) FROM characters WHERE account = ? GROUP BY account", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_NAME_BY_GUID, "UPDATE characters SET name = ? WHERE guid = ?", CONNECTION_ASYNC);
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index 72d103aa4f8..8755acaf302 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -67,10 +67,8 @@ enum CharacterDatabaseStatements
CHAR_SEL_UNDELETE_ENUM_DECLINED_NAME,
CHAR_SEL_FREE_NAME,
CHAR_SEL_GUID_RACE_ACC_BY_NAME,
- CHAR_SEL_CHAR_RACE,
CHAR_SEL_CHAR_LEVEL,
CHAR_SEL_CHAR_ZONE,
- CHAR_SEL_CHARACTER_NAME_DATA,
CHAR_SEL_CHAR_POSITION_XYZ,
CHAR_SEL_CHAR_POSITION,
@@ -161,7 +159,6 @@ enum CharacterDatabaseStatements
CHAR_DEL_ACCOUNT_INSTANCE_LOCK_TIMES,
CHAR_INS_ACCOUNT_INSTANCE_LOCK_TIMES,
CHAR_SEL_CHARACTER_NAME_CLASS,
- CHAR_SEL_CHARACTER_NAME,
CHAR_SEL_MATCH_MAKER_RATING,
CHAR_SEL_CHARACTER_COUNT,
CHAR_UPD_NAME_BY_GUID,