mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-26 00:40:15 +00:00
refactor: consolidate 26 playerNameCache.find() calls to use lookupName()
Replace 26 direct playerNameCache lookups with the existing lookupName() helper, which also provides entity-name fallback. Eliminates duplicate cache+entity lookup patterns in chat, social, loot, and combat handlers. Simplifies getCachedPlayerName() to delegate to lookupName().
This commit is contained in:
parent
f02fa10126
commit
a0267e6e95
1 changed files with 39 additions and 119 deletions
|
|
@ -2046,8 +2046,8 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
std::string titleStr;
|
||||
auto tit = titleNameCache_.find(titleBit);
|
||||
if (tit != titleNameCache_.end() && !tit->second.empty()) {
|
||||
auto nameIt = playerNameCache.find(playerGuid);
|
||||
const std::string& pName = (nameIt != playerNameCache.end()) ? nameIt->second : "you";
|
||||
const auto& ln = lookupName(playerGuid);
|
||||
const std::string& pName = ln.empty() ? std::string("you") : ln;
|
||||
const std::string& fmt = tit->second;
|
||||
size_t pos = fmt.find("%s");
|
||||
if (pos != std::string::npos)
|
||||
|
|
@ -2384,8 +2384,7 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
uint32_t itemId = packet.readUInt32();
|
||||
uint32_t count = packet.readUInt32();
|
||||
if (isInGroup() && looterGuid != playerGuid) {
|
||||
auto nit = playerNameCache.find(looterGuid);
|
||||
std::string looterName = (nit != playerNameCache.end()) ? nit->second : "";
|
||||
const auto& looterName = lookupName(looterGuid);
|
||||
if (!looterName.empty()) {
|
||||
queryItemInfo(itemId, 0);
|
||||
std::string itemName = "item #" + std::to_string(itemId);
|
||||
|
|
@ -2702,13 +2701,7 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
uint64_t respGuid = packet.readUInt64();
|
||||
uint8_t isReady = packet.readUInt8();
|
||||
if (isReady) ++readyCheckReadyCount_; else ++readyCheckNotReadyCount_;
|
||||
auto nit = playerNameCache.find(respGuid);
|
||||
std::string rname;
|
||||
if (nit != playerNameCache.end()) rname = nit->second;
|
||||
else {
|
||||
auto ent = entityManager.getEntity(respGuid);
|
||||
if (ent) rname = std::static_pointer_cast<game::Unit>(ent)->getName();
|
||||
}
|
||||
const auto& rname = lookupName(respGuid);
|
||||
if (!rname.empty()) {
|
||||
bool found = false;
|
||||
for (auto& r : readyCheckResults_) {
|
||||
|
|
@ -2758,17 +2751,8 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
if (packet.getRemainingSize() < 16) return;
|
||||
uint64_t killerGuid = packet.readUInt64();
|
||||
uint64_t victimGuid = packet.readUInt64();
|
||||
auto nameFor = [this](uint64_t g) -> std::string {
|
||||
auto nit = playerNameCache.find(g);
|
||||
if (nit != playerNameCache.end()) return nit->second;
|
||||
auto ent = entityManager.getEntity(g);
|
||||
if (ent && (ent->getType() == game::ObjectType::UNIT ||
|
||||
ent->getType() == game::ObjectType::PLAYER))
|
||||
return std::static_pointer_cast<game::Unit>(ent)->getName();
|
||||
return {};
|
||||
};
|
||||
std::string killerName = nameFor(killerGuid);
|
||||
std::string victimName = nameFor(victimGuid);
|
||||
const auto& killerName = lookupName(killerGuid);
|
||||
const auto& victimName = lookupName(victimGuid);
|
||||
if (!killerName.empty() && !victimName.empty()) {
|
||||
char buf[256];
|
||||
std::snprintf(buf, sizeof(buf), "%s killed %s.", killerName.c_str(), victimName.c_str());
|
||||
|
|
@ -2862,8 +2846,7 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
if (!casterName.empty()) {
|
||||
resurrectCasterName_ = casterName;
|
||||
} else {
|
||||
auto nit = playerNameCache.find(casterGuid);
|
||||
resurrectCasterName_ = (nit != playerNameCache.end()) ? nit->second : "";
|
||||
resurrectCasterName_ = lookupName(casterGuid);
|
||||
}
|
||||
resurrectRequestPending_ = true;
|
||||
fireAddonEvent("RESURRECT_REQUEST", {resurrectCasterName_});
|
||||
|
|
@ -3268,17 +3251,17 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
dispatchTable_[Opcode::SMSG_BATTLEGROUND_PLAYER_JOINED] = [this](network::Packet& packet) {
|
||||
if (packet.getRemainingSize() >= 8) {
|
||||
uint64_t guid = packet.readUInt64();
|
||||
auto it = playerNameCache.find(guid);
|
||||
if (it != playerNameCache.end() && !it->second.empty())
|
||||
addSystemChatMessage(it->second + " has entered the battleground.");
|
||||
const auto& name = lookupName(guid);
|
||||
if (!name.empty())
|
||||
addSystemChatMessage(name + " has entered the battleground.");
|
||||
}
|
||||
};
|
||||
dispatchTable_[Opcode::SMSG_BATTLEGROUND_PLAYER_LEFT] = [this](network::Packet& packet) {
|
||||
if (packet.getRemainingSize() >= 8) {
|
||||
uint64_t guid = packet.readUInt64();
|
||||
auto it = playerNameCache.find(guid);
|
||||
if (it != playerNameCache.end() && !it->second.empty())
|
||||
addSystemChatMessage(it->second + " has left the battleground.");
|
||||
const auto& name = lookupName(guid);
|
||||
if (!name.empty())
|
||||
addSystemChatMessage(name + " has left the battleground.");
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -3468,10 +3451,7 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
auto player = std::dynamic_pointer_cast<Player>(entity);
|
||||
if (player && !player->getName().empty()) name = player->getName();
|
||||
}
|
||||
if (name.empty()) {
|
||||
auto nit = playerNameCache.find(memberGuid);
|
||||
if (nit != playerNameCache.end()) name = nit->second;
|
||||
}
|
||||
if (name.empty()) name = lookupName(memberGuid);
|
||||
if (name.empty()) name = "(unknown)";
|
||||
std::string entry = " " + name;
|
||||
if (memberFlags & 0x01) entry += " [Moderator]";
|
||||
|
|
@ -5784,9 +5764,9 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
// uint64 memberGuid — a player was added to your group via meeting stone
|
||||
if (packet.getRemainingSize() >= 8) {
|
||||
uint64_t memberGuid = packet.readUInt64();
|
||||
auto nit = playerNameCache.find(memberGuid);
|
||||
if (nit != playerNameCache.end() && !nit->second.empty()) {
|
||||
addSystemChatMessage("Meeting Stone: " + nit->second +
|
||||
const auto& memberName = lookupName(memberGuid);
|
||||
if (!memberName.empty()) {
|
||||
addSystemChatMessage("Meeting Stone: " + memberName +
|
||||
" has been added to your group.");
|
||||
} else {
|
||||
addSystemChatMessage("Meeting Stone: A new player has been added to your group.");
|
||||
|
|
@ -7140,10 +7120,7 @@ void GameHandler::registerOpcodeHandlers() {
|
|||
std::string mentorName;
|
||||
auto ent = entityManager.getEntity(mentorGuid);
|
||||
if (auto* unit = dynamic_cast<Unit*>(ent.get())) mentorName = unit->getName();
|
||||
if (mentorName.empty()) {
|
||||
auto nit = playerNameCache.find(mentorGuid);
|
||||
if (nit != playerNameCache.end()) mentorName = nit->second;
|
||||
}
|
||||
if (mentorName.empty()) mentorName = lookupName(mentorGuid);
|
||||
addSystemChatMessage(mentorName.empty()
|
||||
? "A player is offering to grant you a level."
|
||||
: (mentorName + " is offering to grant you a level."));
|
||||
|
|
@ -12435,10 +12412,7 @@ void GameHandler::sendChatMessage(ChatType type, const std::string& message, con
|
|||
echo.message = message;
|
||||
|
||||
// Look up player name
|
||||
auto nameIt = playerNameCache.find(playerGuid);
|
||||
if (nameIt != playerNameCache.end()) {
|
||||
echo.senderName = nameIt->second;
|
||||
}
|
||||
echo.senderName = lookupName(playerGuid);
|
||||
|
||||
if (type == ChatType::WHISPER) {
|
||||
echo.type = ChatType::WHISPER_INFORM;
|
||||
|
|
@ -12474,27 +12448,7 @@ void GameHandler::handleMessageChat(network::Packet& packet) {
|
|||
|
||||
// Resolve sender name from entity/cache if not already set by parser
|
||||
if (data.senderName.empty() && data.senderGuid != 0) {
|
||||
// Check player name cache first
|
||||
auto nameIt = playerNameCache.find(data.senderGuid);
|
||||
if (nameIt != playerNameCache.end()) {
|
||||
data.senderName = nameIt->second;
|
||||
} else {
|
||||
// Try entity name
|
||||
auto entity = entityManager.getEntity(data.senderGuid);
|
||||
if (entity) {
|
||||
if (entity->getType() == ObjectType::PLAYER) {
|
||||
auto player = std::dynamic_pointer_cast<Player>(entity);
|
||||
if (player && !player->getName().empty()) {
|
||||
data.senderName = player->getName();
|
||||
}
|
||||
} else if (entity->getType() == ObjectType::UNIT) {
|
||||
auto unit = std::dynamic_pointer_cast<Unit>(entity);
|
||||
if (unit && !unit->getName().empty()) {
|
||||
data.senderName = unit->getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
data.senderName = lookupName(data.senderGuid);
|
||||
|
||||
// If still unknown, proactively query the server so the UI can show names soon after.
|
||||
if (data.senderName.empty()) {
|
||||
|
|
@ -12621,17 +12575,7 @@ void GameHandler::handleTextEmote(network::Packet& packet) {
|
|||
}
|
||||
|
||||
// Resolve sender name
|
||||
std::string senderName;
|
||||
auto nameIt = playerNameCache.find(data.senderGuid);
|
||||
if (nameIt != playerNameCache.end()) {
|
||||
senderName = nameIt->second;
|
||||
} else {
|
||||
auto entity = entityManager.getEntity(data.senderGuid);
|
||||
if (entity) {
|
||||
auto unit = std::dynamic_pointer_cast<Unit>(entity);
|
||||
if (unit) senderName = unit->getName();
|
||||
}
|
||||
}
|
||||
std::string senderName = lookupName(data.senderGuid);
|
||||
if (senderName.empty()) {
|
||||
senderName = "Unknown";
|
||||
queryPlayerName(data.senderGuid);
|
||||
|
|
@ -12894,10 +12838,7 @@ void GameHandler::setFocus(uint64_t guid) {
|
|||
if (unit && !unit->getName().empty()) {
|
||||
name = unit->getName();
|
||||
}
|
||||
if (name.empty()) {
|
||||
auto nit = playerNameCache.find(guid);
|
||||
if (nit != playerNameCache.end()) name = nit->second;
|
||||
}
|
||||
if (name.empty()) name = lookupName(guid);
|
||||
if (name.empty()) name = "Unknown";
|
||||
addSystemChatMessage("Focus set: " + name);
|
||||
LOG_INFO("Focus set: 0x", std::hex, guid, std::dec);
|
||||
|
|
@ -13574,9 +13515,7 @@ void GameHandler::handleDuelRequested(network::Packet& packet) {
|
|||
duelChallengerName_ = unit->getName();
|
||||
}
|
||||
if (duelChallengerName_.empty()) {
|
||||
auto nit = playerNameCache.find(duelChallengerGuid_);
|
||||
if (nit != playerNameCache.end())
|
||||
duelChallengerName_ = nit->second;
|
||||
duelChallengerName_ = lookupName(duelChallengerGuid_);
|
||||
}
|
||||
if (duelChallengerName_.empty()) {
|
||||
char tmp[32];
|
||||
|
|
@ -14142,8 +14081,7 @@ void GameHandler::queryGameObjectInfo(uint32_t entry, uint64_t guid) {
|
|||
}
|
||||
|
||||
std::string GameHandler::getCachedPlayerName(uint64_t guid) const {
|
||||
auto it = playerNameCache.find(guid);
|
||||
return (it != playerNameCache.end()) ? it->second : "";
|
||||
return std::string(lookupName(guid));
|
||||
}
|
||||
|
||||
std::string GameHandler::getCachedCreatureName(uint32_t entry) const {
|
||||
|
|
@ -23683,10 +23621,8 @@ void GameHandler::handleFriendList(network::Packet& packet) {
|
|||
}
|
||||
// Track as a friend GUID; resolve name via name query
|
||||
friendGuids_.insert(guid);
|
||||
auto nit = playerNameCache.find(guid);
|
||||
std::string name;
|
||||
if (nit != playerNameCache.end()) {
|
||||
name = nit->second;
|
||||
std::string name = lookupName(guid);
|
||||
if (!name.empty()) {
|
||||
friendsCache[name] = guid;
|
||||
LOG_INFO(" Friend: ", name, " status=", static_cast<int>(status));
|
||||
} else {
|
||||
|
|
@ -23746,9 +23682,9 @@ void GameHandler::handleContactList(network::Packet& packet) {
|
|||
classId = packet.readUInt32();
|
||||
}
|
||||
friendGuids_.insert(guid);
|
||||
auto nit = playerNameCache.find(guid);
|
||||
if (nit != playerNameCache.end()) {
|
||||
friendsCache[nit->second] = guid;
|
||||
const auto& fname = lookupName(guid);
|
||||
if (!fname.empty()) {
|
||||
friendsCache[fname] = guid;
|
||||
} else {
|
||||
queryPlayerName(guid);
|
||||
}
|
||||
|
|
@ -23762,8 +23698,7 @@ void GameHandler::handleContactList(network::Packet& packet) {
|
|||
entry.areaId = areaId;
|
||||
entry.level = level;
|
||||
entry.classId = classId;
|
||||
auto nit = playerNameCache.find(guid);
|
||||
if (nit != playerNameCache.end()) entry.name = nit->second;
|
||||
entry.name = lookupName(guid);
|
||||
contacts_.push_back(std::move(entry));
|
||||
}
|
||||
LOG_INFO("SMSG_CONTACT_LIST: mask=", lastContactListMask_,
|
||||
|
|
@ -23790,8 +23725,7 @@ void GameHandler::handleFriendStatus(network::Packet& packet) {
|
|||
if (cit2 != contacts_.end() && !cit2->name.empty()) {
|
||||
playerName = cit2->name;
|
||||
} else {
|
||||
auto it = playerNameCache.find(data.guid);
|
||||
if (it != playerNameCache.end()) playerName = it->second;
|
||||
playerName = lookupName(data.guid);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -23871,12 +23805,8 @@ void GameHandler::handleRandomRoll(network::Packet& packet) {
|
|||
if (data.rollerGuid == playerGuid) {
|
||||
rollerName = "You";
|
||||
} else {
|
||||
auto it = playerNameCache.find(data.rollerGuid);
|
||||
if (it != playerNameCache.end()) {
|
||||
rollerName = it->second;
|
||||
} else {
|
||||
rollerName = "Someone";
|
||||
}
|
||||
rollerName = lookupName(data.rollerGuid);
|
||||
if (rollerName.empty()) rollerName = "Someone";
|
||||
}
|
||||
|
||||
// Build message
|
||||
|
|
@ -25134,9 +25064,7 @@ void GameHandler::handleQuestConfirmAccept(network::Packet& packet) {
|
|||
sharedQuestSharerName_ = unit->getName();
|
||||
}
|
||||
if (sharedQuestSharerName_.empty()) {
|
||||
auto nit = playerNameCache.find(sharedQuestSharerGuid_);
|
||||
if (nit != playerNameCache.end())
|
||||
sharedQuestSharerName_ = nit->second;
|
||||
sharedQuestSharerName_ = lookupName(sharedQuestSharerGuid_);
|
||||
}
|
||||
if (sharedQuestSharerName_.empty()) {
|
||||
char tmp[32];
|
||||
|
|
@ -25185,9 +25113,7 @@ void GameHandler::handleSummonRequest(network::Packet& packet) {
|
|||
summonerName_ = unit->getName();
|
||||
}
|
||||
if (summonerName_.empty()) {
|
||||
auto nit = playerNameCache.find(summonerGuid_);
|
||||
if (nit != playerNameCache.end())
|
||||
summonerName_ = nit->second;
|
||||
summonerName_ = lookupName(summonerGuid_);
|
||||
}
|
||||
if (summonerName_.empty()) {
|
||||
char tmp[32];
|
||||
|
|
@ -25250,9 +25176,7 @@ void GameHandler::handleTradeStatus(network::Packet& packet) {
|
|||
tradePeerName_ = unit->getName();
|
||||
}
|
||||
if (tradePeerName_.empty()) {
|
||||
auto nit = playerNameCache.find(tradePeerGuid_);
|
||||
if (nit != playerNameCache.end())
|
||||
tradePeerName_ = nit->second;
|
||||
tradePeerName_ = lookupName(tradePeerGuid_);
|
||||
}
|
||||
if (tradePeerName_.empty()) {
|
||||
char tmp[32];
|
||||
|
|
@ -25628,9 +25552,9 @@ std::string GameHandler::getFormattedTitle(uint32_t bit) const {
|
|||
auto it = titleNameCache_.find(bit);
|
||||
if (it == titleNameCache_.end() || it->second.empty()) return {};
|
||||
|
||||
const auto& ln2 = lookupName(playerGuid);
|
||||
static const std::string kUnknown = "unknown";
|
||||
auto nameIt = playerNameCache.find(playerGuid);
|
||||
const std::string& pName = (nameIt != playerNameCache.end()) ? nameIt->second : kUnknown;
|
||||
const std::string& pName = ln2.empty() ? kUnknown : ln2;
|
||||
|
||||
const std::string& fmt = it->second;
|
||||
size_t pos = fmt.find("%s");
|
||||
|
|
@ -25722,11 +25646,7 @@ void GameHandler::handleAchievementEarned(network::Packet& packet) {
|
|||
if (auto* unit = getUnitByGuid(guid)) {
|
||||
senderName = unit->getName();
|
||||
}
|
||||
if (senderName.empty()) {
|
||||
auto nit = playerNameCache.find(guid);
|
||||
if (nit != playerNameCache.end())
|
||||
senderName = nit->second;
|
||||
}
|
||||
if (senderName.empty()) senderName = lookupName(guid);
|
||||
if (senderName.empty()) {
|
||||
char tmp[32];
|
||||
std::snprintf(tmp, sizeof(tmp), "0x%llX",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue