diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2021-01-30 18:53:59 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-06 18:54:04 +0100 |
commit | 1ec33095e606824e6d4f9da96cf8eab46f1e4a12 (patch) | |
tree | 36a2739e096f2ef42c6aed1547b2c1c0365226e8 | |
parent | 8992d314dc69669d3711a98e8ac91b0ff73e2f04 (diff) |
Core/Warden: Send Lua checks only when ingame (#25977)
(cherry picked from commit 3e6b3f88b0169600e9e09281723d82476e08fae7)
-rw-r--r-- | src/server/game/Warden/WardenCheckMgr.h | 11 | ||||
-rw-r--r-- | src/server/game/Warden/WardenWin.cpp | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h index 51e96312f97..eea0e2839d7 100644 --- a/src/server/game/Warden/WardenCheckMgr.h +++ b/src/server/game/Warden/WardenCheckMgr.h @@ -84,6 +84,17 @@ constexpr WorldIntConfigs GetWardenCategoryCountConfig(WardenCheckCategory categ } } +constexpr bool IsWardenCategoryInWorldOnly(WardenCheckCategory category) +{ + switch (category) + { + case INJECT_CHECK_CATEGORY: return false; + case LUA_CHECK_CATEGORY: return true; + case MODDED_CHECK_CATEGORY: return false; + default: return false; + } +} + struct WardenCheck { uint16 CheckId = 0; diff --git a/src/server/game/Warden/WardenWin.cpp b/src/server/game/Warden/WardenWin.cpp index 5b5ee27a2ca..b3862a316a2 100644 --- a/src/server/game/Warden/WardenWin.cpp +++ b/src/server/game/Warden/WardenWin.cpp @@ -235,6 +235,9 @@ void WardenWin::RequestChecks() for (WardenCheckCategory category : EnumUtils::Iterate<WardenCheckCategory>()) { + if (IsWardenCategoryInWorldOnly(category) && !_session->GetPlayer()) + continue; + auto& [checks, checksIt] = _checks[category]; for (uint32 i = 0, n = sWorld->getIntConfig(GetWardenCategoryCountConfig(category)); i < n; ++i) { |