Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save DDuarte/929a42546741100ddc65 to your computer and use it in GitHub Desktop.
Save DDuarte/929a42546741100ddc65 to your computer and use it in GitHub Desktop.
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