Created
March 28, 2016 21:35
-
-
Save DDuarte/929a42546741100ddc65 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 9ba0ef7a15ed4ea53910180fba08869348a58634 Mon Sep 17 00:00:00 2001 | |
From: DDuarte <[email protected]> | |
Date: Mon, 28 Mar 2016 22:34:46 +0100 | |
Subject: [PATCH] Core/PacketIO: Properly send normalized realm names | |
Ref #14949 | |
--- | |
src/server/game/Globals/ObjectMgr.cpp | 10 ++++++++++ | |
src/server/game/Globals/ObjectMgr.h | 1 + | |
src/server/game/Handlers/AuthHandler.cpp | 5 ++--- | |
src/server/game/Server/Packets/PartyPackets.cpp | 6 ++---- | |
4 files changed, 15 insertions(+), 7 deletions(-) | |
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp | |
index 85adc27..7b10f4a 100644 | |
--- a/src/server/game/Globals/ObjectMgr.cpp | |
+++ b/src/server/game/Globals/ObjectMgr.cpp | |
@@ -48,6 +48,9 @@ | |
#include "Vehicle.h" | |
#include "World.h" | |
+#include <cctype> // for isspace | |
+#include <algorithm> | |
+ | |
ScriptMapMap sSpellScripts; | |
ScriptMapMap sEventScripts; | |
ScriptMapMap sWaypointScripts; | |
@@ -9340,6 +9343,13 @@ std::string ObjectMgr::GetRealmName(uint32 realmId) const | |
return iter != _realmNameStore.end() ? iter->second : ""; | |
} | |
+std::string ObjectMgr::GetNormalizedRealmName(uint32 realmId) const | |
+{ | |
+ std::string name = GetRealmName(realmId); | |
+ name.erase(std::remove_if(name.begin(), name.end(), ::isspace), name.end()); | |
+ return name; | |
+} | |
+ | |
void ObjectMgr::LoadGameObjectQuestItems() | |
{ | |
uint32 oldMSTime = getMSTime(); | |
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h | |
index f67d753..40e8429 100644 | |
--- a/src/server/game/Globals/ObjectMgr.h | |
+++ b/src/server/game/Globals/ObjectMgr.h | |
@@ -1369,6 +1369,7 @@ class TC_GAME_API ObjectMgr | |
void LoadRealmNames(); | |
std::string GetRealmName(uint32 realm) const; | |
+ std::string GetNormalizedRealmName(uint32 realm) const; | |
ExpansionRequirementContainer const& GetRaceExpansionRequirements() const { return _raceExpansionRequirementStore; } | |
uint8 GetRaceExpansionRequirement(uint8 race) const | |
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp | |
index 7367d82..92f59d5 100644 | |
--- a/src/server/game/Handlers/AuthHandler.cpp | |
+++ b/src/server/game/Handlers/AuthHandler.cpp | |
@@ -40,10 +40,9 @@ void WorldSession::SendAuthResponse(uint32 code, bool queued, uint32 queuePos) | |
response.SuccessInfo->ActiveExpansionLevel = GetExpansion(); | |
response.SuccessInfo->VirtualRealmAddress = GetVirtualRealmAddress(); | |
- std::string realmName = sObjectMgr->GetRealmName(realm.Id.Realm); | |
- | |
// Send current home realm. Also there is no need to send it later in realm queries. | |
- response.SuccessInfo->VirtualRealms.emplace_back(GetVirtualRealmAddress(), true, false, realmName, realmName); | |
+ response.SuccessInfo->VirtualRealms.emplace_back(GetVirtualRealmAddress(), true, false, | |
+ sObjectMgr->GetRealmName(realm.Id.Realm), sObjectMgr->GetNormalizedRealmName(realm.Id.Realm)); | |
if (HasPermission(rbac::RBAC_PERM_USE_CHARACTER_TEMPLATES)) | |
for (auto& templ : sObjectMgr->GetCharacterTemplates()) | |
diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp | |
index 2d5a85d..c4803ba 100644 | |
--- a/src/server/game/Server/Packets/PartyPackets.cpp | |
+++ b/src/server/game/Server/Packets/PartyPackets.cpp | |
@@ -103,11 +103,9 @@ void WorldPackets::Party::PartyInvite::Initialize(Player* const inviter, int32 p | |
ProposedRoles = proposedRoles; | |
- std::string realmName = sObjectMgr->GetRealmName(realm.Id.Realm); | |
- | |
InviterVirtualRealmAddress = GetVirtualRealmAddress(); | |
- InviterRealmNameActual = realmName; | |
- InviterRealmNameNormalized = realmName; | |
+ InviterRealmNameActual = sObjectMgr->GetRealmName(realm.Id.Realm); | |
+ InviterRealmNameNormalized = sObjectMgr->GetNormalizedRealmName(realm.Id.Realm); | |
} | |
void WorldPackets::Party::PartyInviteResponse::Read() | |
-- | |
2.7.1.windows.2 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment