2 * InspIRCd -- Internet Relay Chat Daemon
4 * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
5 * Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
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.
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
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/>.
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, ...
30 * If you *do* have a suggestion for a numeric you genuinely believe would be useful,
31 * please speak to us. :)
33 * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
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)
41 * Reply range of numerics.
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)
49 RPL_SNOMASKIS = 8, // unrealircd
53 RPL_ENDMAP = 17, // ircu
54 RPL_MAPUSERS = 18, // insp-specific
56 RPL_YOURUUID = 42, // taken from ircnet
59 RPL_RULES = 232, // unrealircd
61 RPL_LUSERCLIENT = 251,
63 RPL_LUSERUNKNOWN = 253,
64 RPL_LUSERCHANNELS = 254,
73 RPL_GLOBALUSERS = 266,
78 RPL_SYNTAX = 304, // insp-specific
83 RPL_RULESTART = 308, // unrealircd
84 RPL_RULESEND = 309, // unrealircd
86 RPL_WHOISSERVER = 312,
96 RPL_CHANNELMODEIS = 324,
97 RPL_CHANNELCREATED = 329, // ???
100 RPL_TOPICTIME = 333, // not RFC, extremely common though
104 RPL_INVITELIST = 346, // insp-specific (stolen from ircu)
105 RPL_ENDOFINVITELIST = 347, // insp-specific (stolen from ircu)
110 RPL_ENDOFLINKS = 365,
111 RPL_ENDOFNAMES = 366,
112 RPL_ENDOFWHOWAS = 369,
122 RPL_YOUAREOPER = 381,
125 RPL_YOURDISPLAYEDHOST = 396, // from charybdis/etc, common convention
128 * Error range of numerics.
130 ERR_NOSUCHNICK = 401,
131 ERR_NOSUCHSERVER = 402,
132 ERR_NOSUCHCHANNEL = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
133 ERR_CANNOTSENDTOCHAN = 404,
134 ERR_TOOMANYCHANNELS = 405,
135 ERR_WASNOSUCHNICK = 406,
136 ERR_INVALIDCAPSUBCOMMAND = 410, // ratbox/charybdis(?)
137 ERR_NOTEXTTOSEND = 412,
138 ERR_UNKNOWNCOMMAND = 421,
140 ERR_NONICKNAMEGIVEN = 431,
141 ERR_ERRONEUSNICKNAME = 432,
142 ERR_NICKNAMEINUSE = 433,
143 ERR_NORULES = 434, // unrealircd
144 ERR_USERNOTINCHANNEL = 441,
145 ERR_NOTONCHANNEL = 442,
146 ERR_USERONCHANNEL = 443,
147 ERR_CANTCHANGENICK = 447, // unrealircd, probably
148 ERR_NOTREGISTERED = 451,
149 ERR_NEEDMOREPARAMS = 461,
150 ERR_ALREADYREGISTERED = 462,
151 ERR_YOUREBANNEDCREEP = 465,
152 ERR_UNKNOWNMODE = 472,
155 * A quick side-rant about the next group of numerics..
156 * There are clients out there that like to assume that just because they don't recieve a numeric
157 * they know, that they have joined the channel.
159 * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
160 * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
161 * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
165 * DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECIEVE A JOIN WITH YOUR DAMN NICK ON IT.
168 * -- A message from the IRC group for coder sanity, and w00t
170 ERR_BADCHANNELKEY = 475,
171 ERR_INVITEONLYCHAN = 473,
172 ERR_CHANNELISFULL = 471,
173 ERR_BANNEDFROMCHAN = 474,
175 ERR_BANLISTFULL = 478,
177 ERR_NOPRIVILEGES = 481, // rfc, beware though, we use this for other things opers may not do also
178 ERR_CHANOPRIVSNEEDED = 482, // rfc, beware though, we use this for other things like trying to kick a uline
180 ERR_RESTRICTED = 484,
182 ERR_ALLMUSTSSL = 490, // unrealircd
183 ERR_NOOPERHOST = 491,
184 ERR_NOCTCPALLOWED = 492, // XXX: bzzzz. 1459 defines this as ERR_NOSERVICEHOST, research it more and perhaps change this! (ERR_CANNOTSENDTOCHAN?)
185 // wtf, we also use this for m_noinvite. UGLY!
186 ERR_DELAYREJOIN = 495, // insp-specific, XXX: we should use 'resource temporarily unavailable' from ircnet/ratbox or whatever
187 ERR_UNKNOWNSNOMASK = 501, // insp-specific
188 ERR_USERSDONTMATCH = 502,
189 ERR_CANTJOINOPERSONLY = 520, // unrealircd, but crap to have so many numerics for cant join..
190 ERR_CANTSENDTOUSER = 531, // ???
193 ERR_KNOCKONCHAN = 714,
195 RPL_OTHERUMODEIS = 803, // insp-specific
196 RPL_OTHERSNOMASKIS = 804, // insp-specific
198 ERR_WORDFILTERED = 936, // insp-specific, would be nice if we could get rid of this..
199 ERR_CANTUNLOADMODULE = 972, // insp-specific
200 RPL_UNLOADEDMODULE = 973, // insp-specific
201 ERR_CANTLOADMODULE = 974, // insp-specific
202 RPL_LOADEDMODULE = 975 // insp-specific