diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-08-18 18:59:58 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-08-18 18:59:58 +0200 |
commit | c4b710446d62c95eb8124175203fa5f394912594 (patch) | |
tree | c0e64d7fe1b315a34df65e4c44f0ad3d8723edf4 /src/server/scripts/Commands | |
parent | 88fea990ff1408b94076fb9dbd0c974908d6a731 (diff) |
Core/Realms: Realmlist refactors
* Removed global realm variable from World and use RealmList everywhere
* Match auth build key with client version
* Restored allowedSecurityLevel checks for realmlist packet building
* Restored updating population field, mysteriously removed 15 years ago in f20b25d1c90f608deab28c9957b3b376ab2a0d50
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r-- | src/server/scripts/Commands/cs_gm.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_rbac.cpp | 5 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_server.cpp | 12 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_ticket.cpp | 6 |
5 files changed, 14 insertions, 17 deletions
diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp index d4b644ec62f..d4302e4bb0d 100644 --- a/src/server/scripts/Commands/cs_gm.cpp +++ b/src/server/scripts/Commands/cs_gm.cpp @@ -30,7 +30,7 @@ EndScriptData */ #include "Language.h" #include "ObjectAccessor.h" #include "Player.h" -#include "Realm.h" +#include "RealmList.h" #include "World.h" #include "WorldSession.h" @@ -161,7 +161,7 @@ public: ///- Get the accounts with GM Level >0 LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_GM_ACCOUNTS); stmt->setUInt8(0, uint8(SEC_MODERATOR)); - stmt->setInt32(1, int32(realm.Id.Realm)); + stmt->setInt32(1, int32(sRealmList->GetCurrentRealmId().Realm)); PreparedQueryResult result = LoginDatabase.Query(stmt); if (result) diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index fde76603bff..fae41f2d995 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -40,7 +40,7 @@ #include "ObjectMgr.h" #include "PhasingHandler.h" #include "Player.h" -#include "Realm.h" +#include "RealmList.h" #include "SpellAuras.h" #include "SpellHistory.h" #include "SpellMgr.h" @@ -1781,7 +1781,7 @@ public: // Query the prepared statement for login data LoginDatabasePreparedStatement* stmt2 = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO); - stmt2->setInt32(0, int32(realm.Id.Realm)); + stmt2->setInt32(0, int32(sRealmList->GetCurrentRealmId().Realm)); stmt2->setUInt32(1, accId); PreparedQueryResult result = LoginDatabase.Query(stmt2); diff --git a/src/server/scripts/Commands/cs_rbac.cpp b/src/server/scripts/Commands/cs_rbac.cpp index 5beb4caaf72..2d42cf2f6dd 100644 --- a/src/server/scripts/Commands/cs_rbac.cpp +++ b/src/server/scripts/Commands/cs_rbac.cpp @@ -29,7 +29,7 @@ EndScriptData */ #include "Config.h" #include "Language.h" #include "Player.h" -#include "Realm.h" +#include "RealmList.h" #include "World.h" #include "WorldSession.h" @@ -83,7 +83,8 @@ public: if (account.IsConnected()) return { account.GetConnectedSession()->GetRBACData(), false }; - rbac::RBACData* rbac = new rbac::RBACData(account.GetID(), account.GetName(), realm.Id.Realm, AccountMgr::GetSecurity(account.GetID(), realm.Id.Realm)); + uint32 realmId = sRealmList->GetCurrentRealmId().Realm; + rbac::RBACData* rbac = new rbac::RBACData(account.GetID(), account.GetName(), realmId, AccountMgr::GetSecurity(account.GetID(), realmId)); rbac->LoadFromDB(); return { rbac, true }; diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 6b607244805..c58f038677a 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -34,7 +34,7 @@ EndScriptData */ #include "Log.h" #include "MySQLThreading.h" #include "RBAC.h" -#include "Realm.h" +#include "RealmList.h" #include "UpdateTime.h" #include "Util.h" #include "VMapFactory.h" @@ -124,14 +124,10 @@ public: { std::string dbPortOutput; - uint16 dbPort = 0; - if (QueryResult res = LoginDatabase.PQuery("SELECT port FROM realmlist WHERE id = {}", realm.Id.Realm)) - dbPort = (*res)[0].GetUInt16(); - - if (dbPort) - dbPortOutput = Trinity::StringFormat("Realmlist (Realm Id: {}) configured in port {}", realm.Id.Realm, dbPort); + if (std::shared_ptr<Realm const> currentRealm = sRealmList->GetCurrentRealm()) + dbPortOutput = Trinity::StringFormat("Realmlist (Realm Id: {}) configured in port {}", currentRealm->Id.Realm, currentRealm->Port); else - dbPortOutput = Trinity::StringFormat("Realm Id: {} not found in `realmlist` table. Please check your setup", realm.Id.Realm); + dbPortOutput = Trinity::StringFormat("Realm Id: {} not found in `realmlist` table. Please check your setup", sRealmList->GetCurrentRealmId().Realm); handler->PSendSysMessage("%s", GitRevision::GetFullVersion()); handler->PSendSysMessage("Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp index 471d46cd77f..bcba814325c 100644 --- a/src/server/scripts/Commands/cs_ticket.cpp +++ b/src/server/scripts/Commands/cs_ticket.cpp @@ -30,7 +30,7 @@ EndScriptData */ #include "Language.h" #include "ObjectMgr.h" #include "Player.h" -#include "Realm.h" +#include "RealmList.h" #include "SupportMgr.h" #include "World.h" #include "WorldSession.h" @@ -132,7 +132,7 @@ bool ticket_commandscript::HandleTicketAssignToCommand(ChatHandler* handler, cha ObjectGuid targetGuid = sCharacterCache->GetCharacterGuidByName(target); uint32 accountId = sCharacterCache->GetCharacterAccountIdByGuid(targetGuid); // Target must exist and have administrative rights - if (!AccountMgr::HasPermission(accountId, rbac::RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET, realm.Id.Realm)) + if (!AccountMgr::HasPermission(accountId, rbac::RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET, sRealmList->GetCurrentRealmId().Realm)) { handler->SendSysMessage(LANG_COMMAND_TICKETASSIGNERROR_A); return true; @@ -328,7 +328,7 @@ bool ticket_commandscript::HandleTicketUnAssignCommand(ChatHandler* handler, cha { ObjectGuid guid = ticket->GetAssignedToGUID(); uint32 accountId = sCharacterCache->GetCharacterAccountIdByGuid(guid); - security = AccountMgr::GetSecurity(accountId, realm.Id.Realm); + security = AccountMgr::GetSecurity(accountId, sRealmList->GetCurrentRealmId().Realm); } // Check security |