summaryrefslogtreecommitdiff
path: root/modules/core/botserv.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-04-22 03:16:11 -0400
committerAdam <Adam@anope.org>2011-05-16 04:06:17 -0400
commitc8c23158a4ff74822d6c7d201dc53d879e3d91e8 (patch)
tree4bc9ae029691d5e7c03ebc1481683a010b733844 /modules/core/botserv.h
parent1782ce260c5bc214ec0b2e39257ab1371b68ae9c (diff)
Moved the core pseudo clients out into their own modules
Diffstat (limited to 'modules/core/botserv.h')
-rw-r--r--modules/core/botserv.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/core/botserv.h b/modules/core/botserv.h
new file mode 100644
index 000000000..5c707278a
--- /dev/null
+++ b/modules/core/botserv.h
@@ -0,0 +1,65 @@
+#ifndef BOTSERV_H
+#define BOTSERV_H
+
+struct UserData
+{
+ UserData()
+ {
+ this->Clear();
+ }
+
+ void Clear()
+ {
+ last_use = last_start = Anope::CurTime;
+ lines = times = 0;
+ lastline.clear();
+ }
+
+ /* Data validity */
+ time_t last_use;
+
+ /* for flood kicker */
+ int16 lines;
+ time_t last_start;
+
+ /* for repeat kicker */
+ Anope::string lastline;
+ Anope::string lasttarget;
+ int16 times;
+};
+
+struct BanData
+{
+ Anope::string mask;
+ time_t last_use;
+ int16 ttb[TTB_SIZE];
+
+ BanData()
+ {
+ this->Clear();
+ }
+
+ void Clear()
+ {
+ last_use = 0;
+ for (int i = 0; i < TTB_SIZE; ++i)
+ this->ttb[i] = 0;
+ }
+};
+
+class BotServService : public Service
+{
+ public:
+ BotServService(Module *m) : Service(m, "BotServ") { }
+
+ virtual BotInfo *Bot() = 0;
+
+ virtual UserData *GetUserData(User *u, Channel *c) = 0;
+
+ virtual BanData *GetBanData(User *u, Channel *c) = 0;
+};
+
+static service_reference<BotServService> botserv("BotServ");
+
+#endif // BOTSERV_H
+