summaryrefslogtreecommitdiff
path: root/src/protocol/bahamut.h
blob: 200dc3d6a578b1c2f87d767d3fbc9f44376f181b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* Bahamut functions
 *
 * (C) 2003-2008 Anope Team
 * Contact us at info@anope.org
 *
 * Please read COPYING and README for furhter details.
 *
 * Based on the original code of Epona by Lara.
 * Based on the original code of Services by Andy Church.
 *
 *
 */

/*************************************************************************/

#define UMODE_a 0x00000001  /* umode +a - Services Admin */
#define UMODE_h 0x00000002  /* umode +h - Helper */
#define UMODE_i 0x00000004  /* umode +i - Invisible */
#define UMODE_o 0x00000008  /* umode +o - Oper */
#define UMODE_r 0x00000010  /* umode +r - registered nick */
#define UMODE_w 0x00000020  /* umode +w - Get wallops */
#define UMODE_A 0x00000040  /* umode +A - Server Admin */
#define UMODE_x 0x00000080  /* umode +x - Squelch with notice */
#define UMODE_X 0x00000100  /* umode +X - Squelch without notice */
#define UMODE_F 0x00000200  /* umode +F - no cptr->since message rate throttle */
#define UMODE_j 0x00000400  /* umode +j - client rejection notices */
#define UMODE_K 0x00000800  /* umode +K - U: lined server kill messages */
#define UMODE_O 0x00001000  /* umode +O - Local Oper */
#define UMODE_s 0x00002000  /* umode +s - Server notices */
#define UMODE_c 0x00004000  /* umode +c - Client connections/exits */
#define UMODE_k 0x00008000  /* umode +k - Server kill messages */
#define UMODE_f 0x00010000  /* umode +f - Server flood messages */
#define UMODE_y 0x00020000  /* umode +y - Stats/links */
#define UMODE_d 0x00040000  /* umode +d - Debug info */
#define UMODE_g 0x00080000  /* umode +g - Globops */
#define UMODE_b 0x00100000  /* umode +b - Chatops */
#define UMODE_n 0x00200000  /* umode +n - Routing Notices */
#define UMODE_m 0x00400000  /* umode +m - spambot notices */
#define UMODE_e 0x00800000  /* umode +e - oper notices for the above +D */
#define UMODE_D 0x01000000  /* umode +D - Hidden dccallow umode */
#define UMODE_I 0x02000000  /* umode +I - invisible oper (masked) */
#define UMODE_R 0x80000000  /* unmode +R - No non registered msgs */

#define CMODE_i 0x00000001
#define CMODE_m 0x00000002
#define CMODE_n 0x00000004
#define CMODE_p 0x00000008
#define CMODE_s 0x00000010
#define CMODE_t 0x00000020
#define CMODE_k 0x00000040	/* These two used only by ChanServ */
#define CMODE_l 0x00000080
#define CMODE_R 0x00000100	/* Only identified users can join */
#define CMODE_r 0x00000200	/* Set for all registered channels */
#define CMODE_c 0x00000400	/* Colors can't be used */
#define CMODE_M 0x00000800      /* Non-regged nicks can't send messages */
#define CMODE_j 0x00001000      /* join throttle */
#define CMODE_O 0x00008000	/* Only opers can join */

#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r

class BahamutIRCdProto : public IRCDProto {
		void SendSVSKillInternal(const char *, const char *, const char *);
		void SendModeInternal(BotInfo *, const char *, const char *);
		void SendKickInternal(BotInfo *, const char *, const char *, const char *);
		void SendNoticeChanopsInternal(BotInfo *, const char *, const char *);
	public:
		void SendSVSNOOP(const char *, int);
		void SendAkillDel(const char *, const char *);
		void SendTopic(BotInfo *, const char *, const char *, const char *, time_t);
		void SendAkill(const char *, const char *, const char *, time_t, time_t, const char *);
		void SendSVSMode(User *, int, const char **);
		void SendGuestNick(const char *, const char *, const char *, const char *, const char *);
		void SendClientIntroduction(const char *, const char *, const char *, const char *, const char *);
		void SendBotOp(const char *, const char *);
		void SendJoin(BotInfo *, const char *, time_t);
		void SendSQLineDel(const char *);
		void SendSQLine(const char *, const char *);
		void SendConnect();
		void SendSVSHold(const char *);
		void SendSVSHoldDel(const char *);
		void SendSGLineDel(const char *);
		void SendSZLineDel(const char *);
		void SendSZLine(const char *, const char *, const char *);
		void SendSGLine(const char *, const char *);
		void SendBanDel(const char *, const char *);
		void SendSVSModeChan(const char *, const char *, const char *);
		void SendSVID(const char *, time_t);
		void SendUnregisteredNick(User *);
		void SendSVID3(User *, const char *);
		void SendEOB();
		void SendServer(const char *, int, const char *);
		void ProcessUsermodes(User *, int, const char **);
		int IsFloodModeParamValid(const char *);
} ircd_proto;