]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/numerics.h
Generalise XLine stats numerics using RPL_STATS from aircd.
[user/henk/code/inspircd.git] / include / numerics.h
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2017 B00mX0r <b00mx0r@aureus.pw>
5  *   Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
6  *   Copyright (C) 2013, 2015-2018 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>
13  *
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.
17  *
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
21  * details.
22  *
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/>.
25  */
26
27
28 #pragma once
29
30 /*
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!
34  *
35  *  If you *do* have a suggestion for a numeric you genuinely believe would be useful,
36  *  please speak to us. :)
37  *
38  * Thanks to Darom, jackmcbarn and Brain for suggesting and discussing this.
39  *
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)
42  */
43 enum
44 {
45         RPL_ISUPPORT                    = 5, // not RFC, extremely common though (defined as RPL_BOUNCE in 2812, widely ignored)
46
47         RPL_SNOMASKIS                   = 8, // unrealircd
48
49         RPL_MAP                         = 15, // ircu
50         RPL_ENDMAP                      = 17, // ircu
51         RPL_MAPUSERS                    = 18, // insp-specific
52
53         RPL_STATS                       = 210, // From aircd.
54         RPL_UMODEIS                     = 221,
55
56         RPL_LUSERCLIENT                 = 251,
57         RPL_LUSEROP                     = 252,
58         RPL_LUSERUNKNOWN                = 253,
59         RPL_LUSERCHANNELS               = 254,
60         RPL_LUSERME                     = 255,
61
62         RPL_ADMINME                     = 256,
63         RPL_ADMINLOC1                   = 257,
64         RPL_ADMINLOC2                   = 258,
65         RPL_ADMINEMAIL                  = 259,
66
67         RPL_LOCALUSERS                  = 265,
68         RPL_GLOBALUSERS                 = 266,
69
70         RPL_AWAY                        = 301,
71         RPL_USERHOST                    = 302,
72         RPL_ISON                        = 303,
73
74         RPL_WHOISSERVER                 = 312,
75         RPL_ENDOFWHOIS                  = 318,
76
77         RPL_LISTSTART                   = 321,
78         RPL_LIST                        = 322,
79         RPL_LISTEND                     = 323,
80
81         RPL_CHANNELMODEIS               = 324,
82         RPL_CHANNELCREATED              = 329, // ???
83         RPL_NOTOPICSET                  = 331,
84         RPL_TOPIC                       = 332,
85         RPL_TOPICTIME                   = 333, // not RFC, extremely common though
86
87         RPL_USERIP                      = 340,
88         RPL_INVITING                    = 341,
89         RPL_INVITELIST                  = 346, // insp-specific (stolen from ircu)
90         RPL_ENDOFINVITELIST             = 347, // insp-specific (stolen from ircu)
91         RPL_VERSION                     = 351,
92         RPL_NAMREPLY                    = 353,
93         RPL_LINKS                       = 364,
94         RPL_ENDOFLINKS                  = 365,
95         RPL_ENDOFNAMES                  = 366,
96
97         RPL_INFO                        = 371,
98         RPL_ENDOFINFO                   = 374,
99         RPL_MOTD                        = 372,
100         RPL_MOTDSTART                   = 375,
101         RPL_ENDOFMOTD                   = 376,
102
103         RPL_YOUAREOPER                  = 381,
104         RPL_REHASHING                   = 382,
105         RPL_TIME                        = 391,
106         RPL_YOURDISPLAYEDHOST           = 396, // from charybdis/etc, common convention
107
108         /*
109          * Error range of numerics.
110          */
111         ERR_NOSUCHNICK                  = 401,
112         ERR_NOSUCHSERVER                = 402,
113         ERR_NOSUCHCHANNEL               = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
114         ERR_CANNOTSENDTOCHAN            = 404,
115         ERR_TOOMANYCHANNELS             = 405,
116         ERR_WASNOSUCHNICK               = 406,
117         ERR_NOTEXTTOSEND                = 412,
118         ERR_UNKNOWNCOMMAND              = 421,
119         ERR_NOMOTD                      = 422,
120         ERR_NONICKNAMEGIVEN             = 431,
121         ERR_ERRONEUSNICKNAME            = 432,
122         ERR_NICKNAMEINUSE               = 433,
123         ERR_USERNOTINCHANNEL            = 441,
124         ERR_NOTONCHANNEL                = 442,
125         ERR_USERONCHANNEL               = 443,
126         ERR_CANTCHANGENICK              = 447, // unrealircd, probably
127         ERR_NOTREGISTERED               = 451,
128         ERR_NEEDMOREPARAMS              = 461,
129         ERR_ALREADYREGISTERED           = 462,
130         ERR_YOUREBANNEDCREEP            = 465,
131         ERR_UNKNOWNMODE                 = 472,
132
133         /*
134          * A quick side-rant about the next group of numerics..
135          * There are clients out there that like to assume that just because they don't receive a numeric
136          * they know, that they have joined the channel.
137          *
138          * If IRC was at all properly standardised, this may even be a semi-acceptable assumption to make,
139          * but that's not the case as we all know, so IT IS NOT ACCEPTABLE. Especially for Insp users, where
140          * differing modules MAY potentially choose to block joins and send NOTICEs or other text to the user
141          * instead!
142          *
143          * tl;dr version:
144          *   DON'T MAKE YOUR CLIENT ASSUME YOU JOINED UNLESS YOU RECEIVE A JOIN WITH YOUR DAMN NICK ON IT.
145          * Thanks.
146          *
147          *  -- A message from the IRC group for coder sanity, and w00t
148          */
149         ERR_BADCHANNELKEY               = 475,
150         ERR_BADCHANMASK                 = 476,
151         ERR_INVITEONLYCHAN              = 473,
152         ERR_CHANNELISFULL               = 471,
153         ERR_BANNEDFROMCHAN              = 474,
154
155         ERR_BANLISTFULL                 = 478,
156
157         ERR_NOPRIVILEGES                = 481, // rfc, beware though, we use this for other things opers may not do also
158         ERR_CHANOPRIVSNEEDED            = 482, // rfc, beware though, we use this for other things like trying to kick a uline
159
160         ERR_RESTRICTED                  = 484,
161
162         ERR_NOOPERHOST                  = 491,
163         ERR_UNKNOWNSNOMASK              = 501, // insp-specific
164         ERR_USERSDONTMATCH              = 502,
165         ERR_CANTSENDTOUSER              = 531, // ???
166
167         RPL_SYNTAX                      = 650, // insp-specific
168         ERR_INVALIDMODEPARAM            = 696, // insp-specific
169         ERR_LISTMODEALREADYSET          = 697, // insp-specific
170         ERR_LISTMODENOTSET              = 698, // insp-specific
171
172         RPL_OTHERUMODEIS                = 803, // insp-specific
173         RPL_OTHERSNOMASKIS              = 804, // insp-specific
174
175         ERR_CANTUNLOADMODULE            = 972, // insp-specific
176         RPL_UNLOADEDMODULE              = 973, // insp-specific
177         ERR_CANTLOADMODULE              = 974, // insp-specific
178         RPL_LOADEDMODULE                = 975 // insp-specific
179 };