diff options
author | Wyrserth <wyrserth@protonmail.com> | 2019-06-21 20:17:37 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-11 22:47:08 +0100 |
commit | b709ea9a8dcceb76bf1d057d01e86e347e207e51 (patch) | |
tree | 7d28aaf615e0bc228eade3871c2fadd6a739a7ab /src/server/game/Achievements/CriteriaHandler.cpp | |
parent | 8fc52bc5e542ab5a572343c64e915d01cf363b76 (diff) |
Core/RBAC: add permission that prevents accounts from earning all achievements or only realm firsts (#23459)
* Core/RBAC: add permission that prevents accounts from earning all achievements or only realm firsts.
* Kill evil spaces.
* Rename 9999_99_99_99_auth.sql to 2019_06_21_00_auth.sql
* Update auth_database.sql
(cherry picked from commit 8163ea60c8d517ebe3a88f595dd8291df8338811)
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 964998093da..c3fe055a630 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -40,6 +40,7 @@ #include "ObjectMgr.h" #include "PhasingHandler.h" #include "Player.h" +#include "RBAC.h" #include "RealmList.h" #include "ReputationMgr.h" #include "Scenario.h" @@ -472,11 +473,12 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0* return; } - // disable for gamemasters with GM-mode enabled - if (referencePlayer->IsGameMaster()) + // Disable for GameMasters with GM-mode enabled or for players that don't have the related RBAC permission + if (referencePlayer->IsGameMaster() || referencePlayer->GetSession()->HasPermission(rbac::RBAC_PERM_CANNOT_EARN_ACHIEVEMENTS)) { - TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria: [Player %s GM mode on] %s, %s (%u), " UI64FMTD ", " UI64FMTD ", " UI64FMTD, - referencePlayer->GetName().c_str(), GetOwnerInfo().c_str(), CriteriaMgr::GetCriteriaTypeString(type), uint32(type), miscValue1, miscValue2, miscValue3); + TC_LOG_DEBUG("criteria", "CriteriaHandler::UpdateCriteria: [Player %s %s] %s, %s (%u), " UI64FMTD ", " UI64FMTD ", " UI64FMTD, + referencePlayer->GetName().c_str(), referencePlayer->IsGameMaster() ? "GM mode on" : "disallowed by RBAC", + GetOwnerInfo().c_str(), CriteriaMgr::GetCriteriaTypeString(type), uint32(type), miscValue1, miscValue2, miscValue3); return; } |