From 3e6b3f88b0169600e9e09281723d82476e08fae7 Mon Sep 17 00:00:00 2001 From: Giacomo Pozzoni Date: Sat, 30 Jan 2021 18:53:59 +0100 Subject: Core/Warden: Send Lua checks only when ingame (#25977) --- src/server/game/Warden/WardenCheckMgr.h | 11 +++++++++++ src/server/game/Warden/WardenWin.cpp | 3 +++ 2 files changed, 14 insertions(+) (limited to 'src') diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h index f002776ede1..63c61c4be0a 100644 --- a/src/server/game/Warden/WardenCheckMgr.h +++ b/src/server/game/Warden/WardenCheckMgr.h @@ -85,6 +85,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 93b1290713f..649a9f66a4e 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()) { + if (IsWardenCategoryInWorldOnly(category) && !_session->GetPlayer()) + continue; + auto& [checks, checksIt] = _checks[category]; for (uint32 i = 0, n = sWorld->getIntConfig(GetWardenCategoryCountConfig(category)); i < n; ++i) { -- cgit v1.2.3