1 /** 
2  * IRC constants
3  */
4 module birchwood.protocol.constants;
5 
6 /** 
7  * The type of numeric response 
8  */
9 public enum ReplyType : ulong
10 {
11     /**
12      * rfc 1459
13      */
14 
15     /* Error replies */
16     ERR_NOSUCHNICK = 401,
17     ERR_NOSUCHSERVER = 402,
18     ERR_NOSUCHCHANNEL = 403,
19     ERR_CANNOTSENDTOCHAN = 404,
20     ERR_TOOMANYCHANNELS = 405,
21     ERR_WASNOSUCHNICK = 406,
22     ERR_TOOMANYTARGETS = 407,
23     ERR_NOORIGIN = 409,
24     ERR_NORECIPIENT = 411,
25     ERR_NOTEXTTOSEND = 412,
26     ERR_NOTOPLEVEL = 413,
27     ERR_WILDTOPLEVEL  = 414,
28     ERR_UNKNOWNCOMMAND = 421,
29     ERR_NOMOTD = 422,
30     ERR_NOADMININFO = 423,
31     ERR_FILEERROR = 424,
32     ERR_NONICKNAMEGIVEN = 431,
33     ERR_ERRONEUSNICKNAME = 432,
34     ERR_NICKNAMEINUSE = 433,
35     ERR_NICKCOLLISION = 436,
36     ERR_USERNOTINCHANNEL = 441,
37     ERR_NOTONCHANNEL = 442,
38     ERR_USERONCHANNEL = 443,
39     ERR_NOLOGIN = 444,
40     ERR_SUMMONDISABLED = 445,
41     ERR_USERSDISABLED = 446,
42     ERR_NOTREGISTERED = 451,
43     ERR_NEEDMOREPARAMS = 461,
44     ERR_ALREADYREGISTRED = 462,
45     ERR_NOPERMFORHOST = 463,
46     ERR_PASSWDMISMATCH = 464,
47     ERR_YOUREBANNEDCREEP = 465,
48     ERR_KEYSET = 467,
49     ERR_CHANNELISFULL = 471,
50     ERR_UNKNOWNMODE = 472,
51     ERR_INVITEONLYCHAN = 473,
52     ERR_BANNEDFROMCHAN = 474,
53     ERR_BADCHANNELKEY = 475,
54     ERR_NOPRIVILEGES = 481,
55     ERR_CHANOPRIVSNEEDED = 482,
56     ERR_CANTKILLSERVER = 483,
57     ERR_NOOPERHOST = 491,
58     ERR_UMODEUNKNOWNFLAG = 501,
59     ERR_USERSDONTMATCH = 502,
60 
61     /* Command responses */
62     RPL_NONE = 300,
63     RPL_USERHOST = 302,
64     RPL_ISON = 303,
65     RPL_AWAY = 301,
66     RPL_UNAWAY = 305,
67     RPL_NOWAWAY = 306,
68     RPL_WHOISUSER = 311,
69     RPL_WHOISSERVER = 312,
70     RPL_WHOISOPERATOR = 313,
71     RPL_WHOISIDLE = 317,
72     RPL_ENDOFWHOIS = 318,
73     RPL_WHOISCHANNELS = 319,
74     RPL_WHOWASUSER = 314,
75     RPL_ENDOFWHOWAS = 369,
76     RPL_LISTSTART = 321,
77     RPL_LIST = 322,
78     RPL_LISTEND = 323,
79     RPL_CHANNELMODEIS = 324,
80     RPL_NOTOPIC = 331,
81     RPL_TOPIC = 332,
82     RPL_INVITING = 341,
83     RPL_SUMMONING = 342,
84     RPL_VERSION = 351,
85     RPL_WHOREPLY = 352,
86     RPL_ENDOFWHO = 315,
87     RPL_NAMREPLY = 353,
88     RPL_ENDOFNAMES = 366,
89     RPL_LINKS = 364,
90     RPL_ENDOFLINKS = 365,
91     RPL_BANLIST = 367,
92     RPL_ENDOFBANLIST = 368,
93     RPL_INFO = 371,
94     RPL_ENDOFINFO = 374,
95     RPL_MOTDSTART = 375,
96     RPL_MOTD = 372,
97     RPL_ENDOFMOTD = 376,
98     RPL_YOUREOPER = 381,
99     RPL_REHASHING = 382,
100     RPL_TIME = 391,
101     RPL_USERSSTART = 392,
102     RPL_USERS = 393,
103     RPL_ENDOFUSERS = 394,
104     RPL_NOUSERS = 395,
105     RPL_TRACELINK = 200,
106     RPL_TRACECONNECTING = 201,
107     RPL_TRACEHANDSHAKE = 202,
108     RPL_TRACEUNKNOWN = 203,
109     RPL_TRACEOPERATOR = 204,
110     RPL_TRACEUSER = 205,
111     RPL_TRACESERVER = 206,
112     RPL_TRACENEWTYPE = 208,
113     RPL_TRACELOG = 261,
114     RPL_STATSLINKINFO = 211,
115     RPL_STATSCOMMANDS = 212,
116     RPL_STATSCLINE = 213,
117     RPL_STATSNLINE = 214,
118     RPL_STATSILINE = 215,
119     RPL_STATSKLINE = 216,
120     RPL_STATSYLINE = 218,
121     RPL_ENDOFSTATS = 219,
122     RPL_STATSLLINE = 241,
123     RPL_STATSUPTIME = 242,
124     RPL_STATSOLINE = 243,
125     RPL_STATSHLINE = 244,
126     RPL_UMODEIS = 221,
127     RPL_LUSERCLIENT = 251,
128     RPL_LUSEROP = 252,
129     RPL_LUSERUNKNOWN = 253,
130     RPL_LUSERCHANNELS = 254,
131     RPL_LUSERME = 255,
132     RPL_ADMINME = 256,
133     RPL_ADMINLOC1 = 257,
134     RPL_ADMINLOC2 = 258,
135     RPL_ADMINEMAIL = 259,
136 
137     /* Reserved Numerics (See section 6.3 in RFC 1459) */
138     RPL_TRACECLASS = 209,
139     RPL_SERVICEINFO = 231,
140     RPL_SERVICE = 233,
141     RPL_SERVLISTEND = 235,
142     RPL_WHOISCHANOP = 316,
143     RPL_CLOSING = 362,
144     RPL_INFOSTART = 372,
145     ERR_YOUWILLBEBANNED = 466,
146     ERR_NOSERVICEHOST = 492,
147     RPL_STATSQLINE = 217,
148     RPL_ENDOFSERVICES = 232,
149     RPL_SERVLIST = 234,
150     RPL_KILLDONE = 361,
151     RPL_CLOSEEND = 363,
152     RPL_MYPORTIS = 384,
153     ERR_BADCHANMASK = 476,
154 
155     /**
156      * rfc 2812
157      */
158     RPL_WELCOME = 1,
159     RPL_YOURHOST = 2,
160     RPL_CREATED = 3,
161     RPL_MYINFO = 4,
162     RPL_BOUNCE = 10, // In ircv3 this changed from 005 to 010
163     ERR_NOCHANMODES = 477,
164 
165     /**
166      * ircv3
167      */
168     RPL_LOCALUSERS = 265,
169     RPL_GLOBALUSERS = 266,
170     RPL_WHOISCERTFP = 276,
171     RPL_ISUPPORT = 5, // This overrides the old rfc2812 RPL_BOUNCE code (we can only support one of these)
172 
173 
174 
175     /**
176     * If no code is matched then this is the default
177     */
178     BIRCHWOOD_UNKNOWN_RESP_CODE = 0
179 }