]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/numerics.h
Move RPL_SYNTAX to 650 to prevent a collision with RPL_TEXT.
[user/henk/code/inspircd.git] / include / numerics.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
5  *   Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
6  *
7  * This file is part of InspIRCd.  InspIRCd is free software: you can
8  * redistribute it and/or modify it under the terms of the GNU General Public
9  * License as published by the Free Software Foundation, version 2.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
14  * details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20
21 #pragma once
22
23 /*
24  * Module authors, please note!
25  *  While you are free to use any numerics on this list, like the rest of the core, you
26  *  *should not* be editing it!
27  *  You should just WriteNumeric(444, .. or whatever as you would before this file, OR:
28  *  #define RPL_MYNUMERIC 444 & WriteNumeric(RPL_MYNUMERIC, ...
29  *
30  *  If you *do* have a suggestion for a numeric you genuinely believe would be useful,
31  *  please speak to us. :)
32  *
33  * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
34  *
35  * Please note that the list may not be exhaustive, it'll be done when I have
36  * nothing better to do with my time. -- w00t (jul 13, 2008)
37  */
38 enum
39 {
40         /*
41          * Reply range of numerics.
42          */
43         RPL_WELCOME                     = 1, // 2812, not 1459
44         RPL_YOURHOSTIS                  = 2, // 2812, not 1459
45         RPL_SERVERCREATED               = 3, // 2812, not 1459
46         RPL_SERVERVERSION               = 4, // 2812, not 1459
47         RPL_ISUPPORT                    = 5, // not RFC, extremely common though (defined as RPL_BOUNCE in 2812, widely ignored)
48
49         RPL_SNOMASKIS                   = 8, // unrealircd
50         RPL_REDIR                       = 10,
51
52         RPL_MAP                         = 15, // ircu
53         RPL_ENDMAP                      = 17, // ircu
54         RPL_MAPUSERS                    = 18, // insp-specific
55
56         RPL_UMODEIS                     = 221,
57         RPL_RULES                       = 232, // unrealircd
58
59         RPL_LUSERCLIENT                 = 251,
60         RPL_LUSEROP                     = 252,
61         RPL_LUSERUNKNOWN                = 253,
62         RPL_LUSERCHANNELS               = 254,
63         RPL_LUSERME                     = 255,
64
65         RPL_ADMINME                     = 256,
66         RPL_ADMINLOC1                   = 257,
67         RPL_ADMINLOC2                   = 258,
68         RPL_ADMINEMAIL                  = 259,
69
70         RPL_LOCALUSERS                  = 265,
71         RPL_GLOBALUSERS                 = 266,
72
73         RPL_AWAY                        = 301,
74         RPL_USERHOST                    = 302,
75         RPL_ISON                        = 303,
76
77         RPL_UNAWAY                      = 305,
78         RPL_NOWAWAY                     = 306,
79
80         RPL_RULESTART                   = 308, // unrealircd
81         RPL_RULESEND                    = 309, // unrealircd
82
83         RPL_WHOISSERVER                 = 312,
84         RPL_WHOWASUSER                  = 314,
85
86         RPL_ENDOFWHO                    = 315,
87         RPL_ENDOFWHOIS                  = 318,
88
89         RPL_LISTSTART                   = 321,
90         RPL_LIST                        = 322,
91         RPL_LISTEND                     = 323,
92
93         RPL_CHANNELMODEIS               = 324,
94         RPL_CHANNELCREATED              = 329, // ???
95         RPL_NOTOPICSET                  = 331,
96         RPL_TOPIC                       = 332,
97         RPL_TOPICTIME                   = 333, // not RFC, extremely common though
98
99         RPL_USERIP                      = 340,
100         RPL_INVITING                    = 341,
101         RPL_INVITELIST                  = 346, // insp-specific (stolen from ircu)
102         RPL_ENDOFINVITELIST             = 347, // insp-specific (stolen from ircu)
103         RPL_VERSION                     = 351,
104         RPL_WHOREPLY                    = 352,
105         RPL_NAMREPLY                    = 353,
106         RPL_LINKS                       = 364,
107         RPL_ENDOFLINKS                  = 365,
108         RPL_ENDOFNAMES                  = 366,
109         RPL_ENDOFWHOWAS                 = 369,
110
111         RPL_INFO                        = 371,
112         RPL_ENDOFINFO                   = 374,
113         RPL_MOTD                        = 372,
114         RPL_MOTDSTART                   = 375,
115         RPL_ENDOFMOTD                   = 376,
116
117         RPL_WHOWASIP                    = 379,
118
119         RPL_YOUAREOPER                  = 381,
120         RPL_REHASHING                   = 382,
121         RPL_TIME                        = 391,
122         RPL_YOURDISPLAYEDHOST           = 396, // from charybdis/etc, common convention
123
124         /*
125          * Error range of numerics.
126          */
127         ERR_NOSUCHNICK                  = 401,
128         ERR_NOSUCHSERVER                = 402,
129         ERR_NOSUCHCHANNEL               = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
130         ERR_CANNOTSENDTOCHAN            = 404,
131         ERR_TOOMANYCHANNELS             = 405,
132         ERR_WASNOSUCHNICK               = 406,
133         ERR_INVALIDCAPSUBCOMMAND        = 410, // ratbox/charybdis(?)
134         ERR_NOTEXTTOSEND                = 412,
135         ERR_UNKNOWNCOMMAND              = 421,
136         ERR_NOMOTD                      = 422,
137         ERR_NONICKNAMEGIVEN             = 431,
138         ERR_ERRONEUSNICKNAME            = 432,
139         ERR_NICKNAMEINUSE               = 433,
140         ERR_NORULES                     = 434, // unrealircd
141         ERR_USERNOTINCHANNEL            = 441,
142         ERR_NOTONCHANNEL                = 442,
143         ERR_USERONCHANNEL               = 443,
144         ERR_CANTCHANGENICK              = 447, // unrealircd, probably
145         ERR_NOTREGISTERED               = 451,
146         ERR_NEEDMOREPARAMS              = 461,
147         ERR_ALREADYREGISTERED           = 462,
148         ERR_YOUREBANNEDCREEP            = 465,
149         ERR_UNKNOWNMODE                 = 472,
150
151         /*
152          * A quick side-rant about the next group of numerics..
153          * There are clients out there that like to assume that just because they don't recieve a numeric
154          * they know, that they have joined the channel.
155          *
156          * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
157          * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
158          * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
159          * instead!
160          *
161          * tl;dr version:
162          *   DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECIEVE A JOIN WITH YOUR DAMN NICK ON IT.
163          * Thanks.
164          *
165          *  -- A message from the IRC group for coder sanity, and w00t
166          */
167         ERR_BADCHANNELKEY               = 475,
168         ERR_INVITEONLYCHAN              = 473,
169         ERR_CHANNELISFULL               = 471,
170         ERR_BANNEDFROMCHAN              = 474,
171
172         ERR_BANLISTFULL                 = 478,
173
174         ERR_NOPRIVILEGES                = 481, // rfc, beware though, we use this for other things opers may not do also
175         ERR_CHANOPRIVSNEEDED            = 482, // rfc, beware though, we use this for other things like trying to kick a uline
176
177         ERR_RESTRICTED                  = 484,
178
179         ERR_ALLMUSTSSL                  = 490, // unrealircd
180         ERR_NOOPERHOST                  = 491,
181         ERR_NOCTCPALLOWED               = 492, // XXX: bzzzz. 1459 defines this as ERR_NOSERVICEHOST, research it more and perhaps change this! (ERR_CANNOTSENDTOCHAN?)
182                                                // wtf, we also use this for m_noinvite. UGLY!
183         ERR_DELAYREJOIN                 = 495, // insp-specific, XXX: we should use 'resource temporarily unavailable' from ircnet/ratbox or whatever
184         ERR_UNKNOWNSNOMASK              = 501, // insp-specific
185         ERR_USERSDONTMATCH              = 502,
186         ERR_CANTJOINOPERSONLY           = 520, // unrealircd, but crap to have so many numerics for cant join..
187         ERR_CANTSENDTOUSER              = 531, // ???
188
189         RPL_SYNTAX                      = 650, // insp-specific
190
191         ERR_CHANOPEN                    = 713,
192         ERR_KNOCKONCHAN                 = 714,
193
194         RPL_OTHERUMODEIS                = 803, // insp-specific
195         RPL_OTHERSNOMASKIS              = 804, // insp-specific
196
197         ERR_WORDFILTERED                = 936, // insp-specific, would be nice if we could get rid of this..
198         ERR_CANTUNLOADMODULE            = 972, // insp-specific
199         RPL_UNLOADEDMODULE              = 973, // insp-specific
200         ERR_CANTLOADMODULE              = 974, // insp-specific
201         RPL_LOADEDMODULE                = 975 // insp-specific
202 };