2 * InspIRCd -- Internet Relay Chat Daemon
4 * Copyright (C) 2017 B00mX0r <b00mx0r@aureus.pw>
5 * Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
6 * Copyright (C) 2013, 2015-2018, 2020 Sadie Powell <sadie@witchery.services>
7 * Copyright (C) 2013 Adam <Adam@anope.org>
8 * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
9 * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
10 * Copyright (C) 2009 Dennis Friis <peavey@inspircd.org>
11 * Copyright (C) 2008-2010 Craig Edwards <brain@inspircd.org>
12 * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
14 * This file is part of InspIRCd. InspIRCd is free software: you can
15 * redistribute it and/or modify it under the terms of the GNU General Public
16 * License as published by the Free Software Foundation, version 2.
18 * This program is distributed in the hope that it will be useful, but WITHOUT
19 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
23 * You should have received a copy of the GNU General Public License
24 * along with this program. If not, see <http://www.gnu.org/licenses/>.
31 * Module authors, please note!
32 * While you are free to use any numerics on this list, like the rest of the core, you
33 * *should not* be editing it!
35 * If you *do* have a suggestion for a numeric you genuinely believe would be useful,
36 * please speak to us. :)
38 * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
40 * Please note that the list may not be exhaustive, it'll be done when I have
41 * nothing better to do with my time. -- w00t (jul 13, 2008)
45 RPL_ISUPPORT = 5, // not RFC, extremely common though (defined as RPL_BOUNCE in 2812, widely ignored)
47 RPL_SNOMASKIS = 8, // unrealircd
50 RPL_ENDMAP = 17, // ircu
51 RPL_MAPUSERS = 18, // insp-specific
52 RPL_SAVENICK = 43, // From irc2.
54 RPL_STATS = 210, // From aircd.
57 RPL_LUSERCLIENT = 251,
59 RPL_LUSERUNKNOWN = 253,
60 RPL_LUSERCHANNELS = 254,
69 RPL_GLOBALUSERS = 266,
75 RPL_WHOISSERVER = 312,
82 RPL_CHANNELMODEIS = 324,
83 RPL_CHANNELCREATED = 329, // ???
86 RPL_TOPICTIME = 333, // not RFC, extremely common though
102 RPL_YOUAREOPER = 381,
105 RPL_YOURDISPLAYEDHOST = 396, // from charybdis/etc, common convention
108 * Error range of numerics.
110 ERR_NOSUCHNICK = 401,
111 ERR_NOSUCHSERVER = 402,
112 ERR_NOSUCHCHANNEL = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
113 ERR_CANNOTSENDTOCHAN = 404,
114 ERR_TOOMANYCHANNELS = 405,
115 ERR_WASNOSUCHNICK = 406,
116 ERR_NOTEXTTOSEND = 412,
117 ERR_UNKNOWNCOMMAND = 421,
119 ERR_NONICKNAMEGIVEN = 431,
120 ERR_ERRONEUSNICKNAME = 432,
121 ERR_NICKNAMEINUSE = 433,
122 ERR_USERNOTINCHANNEL = 441,
123 ERR_NOTONCHANNEL = 442,
124 ERR_USERONCHANNEL = 443,
125 ERR_CANTCHANGENICK = 447, // unrealircd, probably
126 ERR_NOTREGISTERED = 451,
127 ERR_NEEDMOREPARAMS = 461,
128 ERR_ALREADYREGISTERED = 462,
129 ERR_YOUREBANNEDCREEP = 465,
130 ERR_UNKNOWNMODE = 472,
133 * A quick side-rant about the next group of numerics..
134 * There are clients out there that like to assume that just because they don't receive a numeric
135 * they know, that they have joined the channel.
137 * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
138 * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
139 * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
143 * DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECEIVE A JOIN WITH YOUR DAMN NICK ON IT.
146 * -- A message from the IRC group for coder sanity, and w00t
148 ERR_BADCHANNELKEY = 475,
149 ERR_BADCHANMASK = 476,
150 ERR_INVITEONLYCHAN = 473,
151 ERR_CHANNELISFULL = 471,
152 ERR_BANNEDFROMCHAN = 474,
154 ERR_BANLISTFULL = 478,
156 ERR_NOPRIVILEGES = 481, // rfc, beware though, we use this for other things opers may not do also
157 ERR_CHANOPRIVSNEEDED = 482, // rfc, beware though, we use this for other things like trying to kick a uline
159 ERR_RESTRICTED = 484,
161 ERR_NOOPERHOST = 491,
162 ERR_UNKNOWNSNOMASK = 501, // insp-specific
163 ERR_USERSDONTMATCH = 502,
164 ERR_CANTSENDTOUSER = 531, // ???
166 RPL_SYNTAX = 650, // insp-specific
167 ERR_INVALIDMODEPARAM = 696, // insp-specific
168 ERR_LISTMODEALREADYSET = 697, // insp-specific
169 ERR_LISTMODENOTSET = 698, // insp-specific
171 RPL_OTHERUMODEIS = 803, // insp-specific
172 RPL_OTHERSNOMASKIS = 804, // insp-specific
174 ERR_CANTUNLOADMODULE = 972, // insp-specific
175 RPL_UNLOADEDMODULE = 973, // insp-specific
176 ERR_CANTLOADMODULE = 974, // insp-specific
177 RPL_LOADEDMODULE = 975 // insp-specific