1#ifndef ENGINE_SERVER_ANTIBOT_H
2#define ENGINE_SERVER_ANTIBOT_H
3
4#include <antibot/antibot_data.h>
5
6#include <engine/antibot.h>
7
8class CAntibot : public IEngineAntibot
9{
10 class IServer *m_pServer;
11 class IConsole *m_pConsole;
12 class IGameServer *m_pGameServer;
13
14 class IServer *Server() const { return m_pServer; }
15 class IConsole *Console() const { return m_pConsole; }
16 class IGameServer *GameServer() const { return m_pGameServer; }
17
18 CAntibotData m_Data;
19 CAntibotRoundData m_RoundData;
20 bool m_Initialized;
21
22 void Update();
23 static void Kick(int ClientId, const char *pMessage, void *pUser);
24 static void Log(const char *pMessage, void *pUser);
25 static void Report(int ClientId, const char *pMessage, void *pUser);
26 static void Send(int ClientId, const void *pData, int Size, int Flags, void *pUser);
27 static void Teehistorian(const void *pData, int Size, void *pUser);
28
29public:
30 CAntibot();
31 ~CAntibot() override;
32
33 // Engine
34 void Init() override;
35
36 void OnEngineTick() override;
37 void OnEngineClientJoin(int ClientId) override;
38 void OnEngineClientDrop(int ClientId, const char *pReason) override;
39 bool OnEngineClientMessage(int ClientId, const void *pData, int Size, int Flags) override;
40 bool OnEngineServerMessage(int ClientId, const void *pData, int Size, int Flags) override;
41 bool OnEngineSimulateClientMessage(int *pClientId, void *pBuffer, int BufferSize, int *pOutSize, int *pFlags) override;
42
43 // Game
44 void RoundStart(class IGameServer *pGameServer) override;
45 void RoundEnd() override;
46
47 void OnPlayerInit(int ClientId) override;
48 void OnPlayerDestroy(int ClientId) override;
49 void OnSpawn(int ClientId) override;
50 void OnHammerFireReloading(int ClientId) override;
51 void OnHammerFire(int ClientId) override;
52 void OnHammerHit(int ClientId, int TargetId) override;
53 void OnDirectInput(int ClientId) override;
54 void OnCharacterTick(int ClientId) override;
55 void OnHookAttach(int ClientId, bool Player) override;
56
57 void ConsoleCommand(const char *pCommand) override;
58};
59
60extern IEngineAntibot *CreateEngineAntibot();
61
62#endif // ENGINE_SERVER_ANTIBOT_H
63