Core/Warden: Base implementation for Warden functionality
Note: The default config file action for clients failing the checks can be changed for each check via the characters.warden_action table Credits to TOM_RUS
This commit is contained in:
@@ -74,6 +74,8 @@
|
||||
#include "CreatureTextMgr.h"
|
||||
#include "SmartAI.h"
|
||||
#include "Channel.h"
|
||||
#include "WardenCheckMgr.h"
|
||||
#include "Warden.h"
|
||||
|
||||
volatile bool World::m_stopEvent = false;
|
||||
uint8 World::m_ExitCode = SHUTDOWN_EXIT_CODE;
|
||||
@@ -1170,6 +1172,15 @@ void World::LoadConfigSettings(bool reload)
|
||||
m_bool_configs[CONFIG_CHATLOG_ADDON] = ConfigMgr::GetBoolDefault("ChatLogs.Addon", false);
|
||||
m_bool_configs[CONFIG_CHATLOG_BGROUND] = ConfigMgr::GetBoolDefault("ChatLogs.Battleground", false);
|
||||
|
||||
// Warden
|
||||
m_bool_configs[CONFIG_WARDEN_ENABLED] = ConfigMgr::GetBoolDefault("Warden.Enabled", false);
|
||||
m_int_configs[CONFIG_WARDEN_NUM_MEM_CHECKS] = ConfigMgr::GetIntDefault("Warden.NumMemChecks", 3);
|
||||
m_int_configs[CONFIG_WARDEN_NUM_OTHER_CHECKS] = ConfigMgr::GetIntDefault("Warden.NumOtherChecks", 7);
|
||||
m_int_configs[CONFIG_WARDEN_CLIENT_BAN_DURATION] = ConfigMgr::GetIntDefault("Warden.BanDuration", 86400);
|
||||
m_int_configs[CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF] = ConfigMgr::GetIntDefault("Warden.ClientCheckHoldOff", 30);
|
||||
m_int_configs[CONFIG_WARDEN_CLIENT_FAIL_ACTION] = ConfigMgr::GetIntDefault("Warden.ClientCheckFailAction", 0);
|
||||
m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = ConfigMgr::GetIntDefault("Warden.ClientResponseDelay", 600);
|
||||
|
||||
// Dungeon finder
|
||||
m_bool_configs[CONFIG_DUNGEON_FINDER_ENABLE] = ConfigMgr::GetBoolDefault("DungeonFinder.Enable", false);
|
||||
|
||||
@@ -1724,6 +1735,10 @@ void World::SetInitialWorldSettings()
|
||||
sLog->outString("Loading Transport NPCs...");
|
||||
sMapMgr->LoadTransportNPCs();
|
||||
|
||||
///- Initialize Warden
|
||||
sLog->outString("Loading Warden Checks..." );
|
||||
sWardenCheckMgr->LoadWardenChecks();
|
||||
|
||||
sLog->outString("Deleting expired bans...");
|
||||
LoginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate<>bandate");
|
||||
|
||||
|
||||
@@ -162,6 +162,7 @@ enum WorldBoolConfigs
|
||||
CONFIG_PDUMP_NO_OVERWRITE,
|
||||
CONFIG_QUEST_IGNORE_AUTO_ACCEPT,
|
||||
CONFIG_QUEST_IGNORE_AUTO_COMPLETE,
|
||||
CONFIG_WARDEN_ENABLED,
|
||||
BOOL_CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
@@ -309,6 +310,12 @@ enum WorldIntConfigs
|
||||
CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION,
|
||||
CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS,
|
||||
CONFIG_MAX_INSTANCES_PER_HOUR,
|
||||
CONFIG_WARDEN_CLIENT_RESPONSE_DELAY,
|
||||
CONFIG_WARDEN_CLIENT_CHECK_HOLDOFF,
|
||||
CONFIG_WARDEN_CLIENT_FAIL_ACTION,
|
||||
CONFIG_WARDEN_CLIENT_BAN_DURATION,
|
||||
CONFIG_WARDEN_NUM_MEM_CHECKS,
|
||||
CONFIG_WARDEN_NUM_OTHER_CHECKS,
|
||||
INT_CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user