From 1251093ec113309d33547893129507d3fdc7b7d6 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sun, 24 Aug 2008 04:35:48 +0000 Subject: [PATCH] Improved bot detection slightly. This was meant to go along with the fix for amb1801. --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402473 --- core/PlayerManager.cpp | 5 ++++- core/PlayerManager.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/PlayerManager.cpp b/core/PlayerManager.cpp index bcf73bde..871564c0 100644 --- a/core/PlayerManager.cpp +++ b/core/PlayerManager.cpp @@ -451,6 +451,7 @@ void PlayerManager::OnClientPutInServer(edict_t *pEntity, const char *playername char error[255]; const char *authid = engine->GetPlayerNetworkIDString(pEntity); pPlayer->Authorize(authid); + pPlayer->m_bFakeClient = true; if (!OnClientConnect(pEntity, playername, "127.0.0.1", error, sizeof(error))) { /* :TODO: kick the bot if it's rejected */ @@ -1219,6 +1220,7 @@ CPlayer::CPlayer() m_bIsInKickQueue = false; m_LastPassword.clear(); m_LangId = SOURCEMOD_LANGUAGE_ENGLISH; + m_bFakeClient = false; } void CPlayer::Initialize(const char *name, const char *ip, edict_t *pEntity) @@ -1286,6 +1288,7 @@ void CPlayer::Disconnect() m_bAdminCheckSignalled = false; m_UserId = -1; m_bIsInKickQueue = false; + m_bFakeClient = false; } void CPlayer::SetName(const char *name) @@ -1350,7 +1353,7 @@ IPlayerInfo *CPlayer::GetPlayerInfo() bool CPlayer::IsFakeClient() { - return (strncasecmp(m_AuthID.c_str(), "BOT", 3) == 0); + return m_bFakeClient; } void CPlayer::SetAdminId(AdminId id, bool temporary) diff --git a/core/PlayerManager.h b/core/PlayerManager.h index da67f206..a3b44b41 100644 --- a/core/PlayerManager.h +++ b/core/PlayerManager.h @@ -195,6 +195,7 @@ private: bool m_QueryLang; bool m_bIsListenServer; int m_ListenClient; + bool m_bFakeClient; }; extern PlayerManager g_Players;