1 ///
2 module vibeirc.constants;
3 
4 package enum CTCP_ENCAPSULATOR = '\x01';
5 
6 /++
7     Color codes for use with $(LINK2 ../utility/color.html, color).
8 +/
9 enum Color: string
10 {
11     none = null, ///Default color
12     white = "00", ///
13     black = "01", ///
14     blue = "02", ///
15     green = "03", ///
16     red = "04", ///
17     brown = "05", ///
18     purple = "06", ///
19     orange = "07", ///
20     yellow = "08", ///
21     lightgreen = "09", ///
22     teal = "10", ///
23     lightcyan = "11", ///
24     lightblue = "12", ///
25     pink = "13", ///
26     grey = "14", ///
27     lightgrey = "15", ///
28     transparent = "99", ///
29 }
30 
31 /++
32     Numerics used in place of words in IRC commands.
33     Only sent from the server.
34 +/
35 enum Numeric
36 {
37     /++
38         Sent after successfully logging in to the server.
39     +/
40     RPL_WELCOME = 001,
41     
42     /++
43         ditto
44     +/
45     RPL_YOURHOST = 002,
46     
47     /++
48         ditto
49     +/
50     RPL_CREATED = 003,
51     
52     /++
53         ditto
54     +/
55     RPL_MYINFO = 004,
56     
57     /++
58         Sent when the connection is refused, suggesting an alternate server.
59         This is often used when the connection is refused because the server is already full.
60     +/
61     RPL_BOUNCE = 005,
62     
63     /++
64         Reply format used by USERHOST to list replies to the query list.
65     +/
66     RPL_USERHOST = 302,
67     
68     /++
69         Reply format used by ISON to list replies to the query list.
70     +/
71     RPL_ISON = 303,
72     
73     /++
74         Reply from a command directed at a user who is marked as away.
75     +/
76     RPL_AWAY = 301,
77     
78     /++
79         Reply from AWAY command when no longer marked as away.
80     +/
81     RPL_UNAWAY = 305,
82     
83     /++
84         Reply from AWAY when marked as away.
85     +/
86     RPL_NOWAWAY = 306,
87     
88     /++
89         Reply to WHOIS with information about the user.
90     +/
91     RPL_WHOISUSER = 311,
92     
93     /++
94         Reply to WHOIS with information about the server the user is connected to.
95     +/
96     RPL_WHOISSERVER = 312,
97     
98     /++
99         Reply to WHOIS indicating the operator status of the user.
100     +/
101     RPL_WHOISOPERATOR = 313,
102     
103     /++
104         Reply to WHOIS with information about the user's idle status.
105     +/
106     RPL_WHOISIDLE = 317,
107     
108     /++
109         End of replies to WHOIS command.
110     +/
111     RPL_ENDOFWHOIS = 318,
112     
113     /++
114         Reply to WHOIS listing the channels the user has joined.
115     +/
116     RPL_WHOISCHANNELS = 319,
117     
118     /++
119         Reply to WHOWAS with information about the user.
120     +/
121     RPL_WHOWASUSER = 314,
122     
123     /++
124         End of replies to WHOWAS.
125     +/
126     RPL_ENDOFWHOWAS = 369,
127     
128     /++
129         Reply to LIST containing a single channel.
130     +/
131     RPL_LIST = 322,
132     
133     /++
134         End of replies to LIST.
135     +/
136     RPL_LISTEND = 323,
137     
138     /++
139         Deprecated. Formerly indicated the start of a response to LIST command.
140     +/
141     RPL_LISTSTART = 321,
142     
143     /++
144         Reply to a MODE command on a channel which does not change any modes.
145     +/
146     RPL_CHANNELMODEIS = 324,
147     
148     /++
149         Reply to TOPIC if no topic is set.
150     +/
151     RPL_NOTOPIC = 331,
152     
153     /++
154         Reply to TOPIC if a topic is set.
155     +/
156     RPL_TOPIC = 332,
157     
158     /++
159         Reply to successful INVITE command.
160     +/
161     RPL_INVITING = 341,
162     
163     /++
164         Reply to successful SUMMON command.
165     +/
166     RPL_SUMMONING = 342,
167     
168     /++
169         A single listing of an invitation mask for a channel.
170     +/
171     RPL_INVITELIST = 346,
172     
173     /++
174         End of RPL_INVITELIST replies.
175     +/
176     RPL_ENDOFINVITELIST = 347,
177     
178     /++
179         A single listing of an exception mask for a channel.
180     +/
181     RPL_EXCEPTLIST = 348,
182     
183     /++
184         End of RPL_EXCEPTLIST replies.
185     +/
186     RPL_ENDOFEXCEPTLIST = 349,
187     
188     /++
189         Reply to VERSION command.
190     +/
191     RPL_VERSION = 351,
192     
193     /++
194         Reply to WHO command.
195     +/
196     RPL_WHOREPLY = 352,
197     
198     /++
199         End of replies to WHO command.
200     +/
201     RPL_ENDOFWHO = 315,
202     
203     /++
204         Reply to NAMES command.
205     +/
206     RPL_NAMREPLY = 353,
207     
208     /++
209         End of replies to NAMES command.
210     +/
211     RPL_ENDOFNAMES = 366,
212     
213     /++
214         Reply to LINKS command.
215     +/
216     RPL_LINKS = 364,
217     
218     /++
219         End of replies to LINKS command.
220     +/
221     RPL_ENDOFLINKS = 365,
222     
223     /++
224         A single listing of a ban mask for a channel.
225     +/
226     RPL_BANLIST = 367,
227     
228     /++
229         End of RPL_BANLIST replies.
230     +/
231     RPL_ENDOFBANLIST = 368,
232     
233     /++
234         Reply to INFO command.
235     +/
236     RPL_INFO = 371,
237     
238     /++
239         End of replies to INFO command.
240     +/
241     RPL_ENDOFINFO = 374,
242     
243     /++
244         Sent at the start of MOTD transmission.
245     +/
246     RPL_MOTDSTART = 375,
247     
248     /++
249         A line of the MOTD.
250     +/
251     RPL_MOTD = 372,
252     
253     /++
254         End of the MOTD.
255     +/
256     RPL_ENDOFMOTD = 376,
257     
258     /++
259         Reply to a successful OPER command.
260     +/
261     RPL_YOUREOPER = 381,
262     
263     /++
264         Reply to a successful REHASH command.
265     +/
266     RPL_REHASHING = 382,
267     
268     /++
269         Reply received upon successfully registering as a service.
270     +/
271     RPL_YOURESERVICE = 383,
272     
273     /++
274         Reply to TIME command.
275     +/
276     RPL_TIME = 391,
277     
278     /++
279         Start of replies to USERS command.
280     +/
281     RPL_USERSSTART = 392,
282     
283     /++
284         Reply to USERS command.
285     +/
286     RPL_USERS = 393,
287     
288     /++
289         End of replies to USERS command.
290     +/
291     RPL_ENDOFUSERS = 394,
292     
293     /++
294         Reply to USERS if there are no users.
295     +/
296     RPL_NOUSERS = 395,
297     
298     /++
299         The RPL_TRACE* are all returned by the server in response to the TRACE message.
300         How many are returned is dependent on the TRACE message and whether it was sent by an operator or not.
301         There is no predefined order for which occurs first.
302         Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and RPL_TRACEHANDSHAKE are all used for connections
303         which have not been fully established and are either unknown,
304         still attempting to connect or in the process of completing the 'server handshake'.
305         RPL_TRACELINK is sent by any server which handlesa TRACE message and has to pass it on to another server.
306         The list of RPL_TRACELINKs sent in response to a TRACE command traversing the IRC network
307         should reflect the actual connectivity ofthe servers themselves along that path.
308         RPL_TRACENEWTYPE is to be used for any connection which does not fit in the other categories
309         but is being displayed anyway.
310         RPL_TRACEEND is sent to indicate the end of the list.
311     +/
312     
313     /++
314         Reply to TRACE command from each server along the route to the specified server.
315     +/
316     RPL_TRACELINK = 200,
317     
318     /++
319         Reply to TRACE command indicating a server which has not yet been connected to.
320     +/
321     RPL_TRACECONNECTING = 201,
322     
323     /++
324         Reply to TRACE command indicating a server which is still completing the server-to-server handshake.
325     +/
326     RPL_TRACEHANDSHAKE = 202,
327     
328     /++
329         Reply to TRACE command indicating a server which is in an unknown state.
330     +/
331     RPL_TRACEUNKNOWN = 203,
332     
333     /++
334         Reply to TRACE command upon a user, indicates that the specified user is an operator.
335     +/
336     RPL_TRACEOPERATOR = 204,
337     
338     /++
339         Reply to TRACE command upon a user.
340     +/
341     RPL_TRACEUSER = 205,
342     
343     /++
344         Reply to TRACE command upon a server, with details about the specified server.
345     +/
346     RPL_TRACESERVER = 206,
347     
348     /++
349         Reply to TRACE command upon a user, indicates that the specified user is a service.
350     +/
351     RPL_TRACESERVICE = 207,
352     
353     /++
354         Reply to TRACE command, indicates a connection of some sort which does not fit any of the other RPL_TRACE* replies.
355     +/
356     RPL_TRACENEWTYPE = 208,
357     
358     /++
359         Reply to TRACE command. Unknown meaning.
360     +/
361     RPL_TRACECLASS = 209,
362     
363     /++
364         Reply to TRACE command. Unknown meaning.
365     +/
366     RPL_TRACELOG = 261,
367     
368     /++
369         End of replies to TRACE command.
370     +/
371     RPL_TRACEEND = 262,
372     
373     /++
374         Reply to STATS command with information about the specified server's links.
375     +/
376     RPL_STATSLINKINFO = 211,
377     
378     /++
379         Reply to STATS command with information about the specified server's commands.
380     +/
381     RPL_STATSCOMMANDS = 212,
382     
383     /++
384         End of replies to STATS command.
385     +/
386     RPL_ENDOFSTATS = 219,
387     
388     /++
389         Reply to STATS command with information about the specified server's uptime.
390     +/
391     RPL_STATSUPTIME = 242,
392     
393     /++
394         Reply to STATS command listing the specified server's C-lines.
395     +/
396     RPL_STATSCLINE = 213,
397     
398     /++
399         Reply to STATS command listing the specified server's N-lines.
400     +/
401     RPL_STATSNLINE = 214,
402     
403     /++
404         Reply to STATS command listing the specified server's I-lines.
405     +/
406     RPL_STATSILINE = 215,
407     
408     /++
409         Reply to STATS command listing the specified server's K-lines.
410     +/
411     RPL_STATSKLINE = 216,
412     
413     /++
414         Reply to STATS command listing the specified server's Y-lines.
415     +/
416     RPL_STATSYLINE = 218,
417     
418     /++
419         Reply to STATS command listing the specified server's L-lines.
420     +/
421     RPL_STATSLLINE = 241,
422     
423     /++
424         Reply to STATS command listing the specified server's O-lines.
425     +/
426     RPL_STATSOLINE = 243,
427     
428     /++
429         Reply to STATS command listing the specified server's H-lines.
430     +/
431     RPL_STATSHLINE = 244,
432     
433     /++
434         Reply to MODE command on a user, listing their modes.
435     +/
436     RPL_UMODEIS = 221,
437     
438     /++
439         Reply to LUSERS command specifying the number of users logged in across the network.
440     +/
441     RPL_LUSERCLIENT = 251,
442     
443     /++
444         Reply to LUSERS command specifying the number of operators logged in across the network.
445     +/
446     RPL_LUSEROP = 252,
447     
448     /++
449         Reply to LUSERS command specifying the number of unknown connections.
450     +/
451     RPL_LUSERUNKNOWN = 253,
452     
453     /++
454         Reply to LUSERS command specifying the number of channels across the network.
455     +/
456     RPL_LUSERCHANNELS = 254,
457     
458     /++
459         Reply to LUSERS command specifying the number of users and links on the local server.
460     +/
461     RPL_LUSERME = 255,
462     
463     /++
464         Start of reply to ADMIN command.
465     +/
466     RPL_ADMINME = 256,
467     
468     /++
469         Reply to ADMIN command, first line.
470     +/
471     RPL_ADMINLOC1 = 257,
472     
473     /++
474         Reply to ADMIN command, second line.
475     +/
476     RPL_ADMINLOC2 = 258,
477     
478     /++
479         Reply to ADMIN command, third and final line, typically listing the server administrator's email.
480     +/
481     RPL_ADMINEMAIL = 259,
482     
483     /++
484         Reply to a command which was dropped, requesting the client to try the command again.
485     +/
486     RPL_TRYAGAIN = 263,
487     
488     /++
489         Reply to a command on a user when that user does not exist.
490     +/
491     ERR_NOSUCHNICK = 401,
492     
493     /++
494         Reply to a command on a server when that server does not exist.
495     +/
496     ERR_NOSUCHSERVER = 402,
497     
498     /++
499         Reply to a command on a channel when that channel does not exist.
500     +/
501     ERR_NOSUCHCHANNEL = 403,
502     
503     /++
504         Reply to a PRIVMSG command on a channel when the message cannot be sent because the user lacks permissions.
505     +/
506     ERR_CANNOTSENDTOCHAN = 404,
507     
508     /++
509         Reply to JOIN command when the user has already joined too many channels.
510     +/
511     ERR_TOOMANYCHANNELS = 405,
512     
513     /++
514         Reply to WHOWAS command indicating there is no history for the given nick.
515     +/
516     ERR_WASNOSUCHNICK = 406,
517     
518     /++
519         Reply to a command where the given targets are ambiguous.
520     +/
521     ERR_TOOMANYTARGETS = 407,
522     
523     /++
524         Reply to a SQUERY command on a service which does not exist.
525     +/
526     ERR_NOSUCHSERVICE = 408,
527     
528     /++
529         Reply to a PING or PONG command which is missing the originator parameter.
530     +/
531     ERR_NOORIGIN = 409,
532     
533     /++
534         Reply to a command which expects a recipient but was given none.
535     +/
536     ERR_NORECIPIENT = 411,
537     
538     /++
539         Reply to a command which expects a message body but was given none.
540     +/
541     ERR_NOTEXTTOSEND = 412,
542     
543     /++
544         Reply when sending a message to a mask but no top-level domain is given for the mask.
545     +/
546     ERR_NOTOPLEVEL = 413,
547     
548     /++
549         Reply when sending a message to a mask but a wildcard is given for the mask's top-level domain.
550     +/
551     ERR_WILDTOPLEVEL = 414,
552     
553     /++
554         Reply when sending a message to a mask but the mask is invalid.
555     +/
556     ERR_BADMASK = 415,
557     
558     /++
559         Reply to a command which does not exist.
560     +/
561     ERR_UNKNOWNCOMMAND = 421,
562     
563     /++
564         Sent when the server does not have a MOTD.
565     +/
566     ERR_NOMOTD = 422,
567     
568     /++
569         Reply to ADMIN command when there is no administrator information available.
570     +/
571     ERR_NOADMININFO = 423,
572     
573     /++
574         Sent when a command fails due to a file operation error.
575     +/
576     ERR_FILEERROR = 424,
577     
578     /++
579         Reply to NICK command when no nick is given.
580     +/
581     ERR_NONICKNAMEGIVEN = 431,
582     
583     /++
584         Reply to NICK command when the new nickname is invalid.
585     +/
586     ERR_ERRONEUSNICKNAME = 432,
587     
588     /++
589         Reply to NICK command when the given nickname is already in use.
590     +/
591     ERR_NICKNAMEINUSE = 433,
592     
593     /++
594         Sent when a nickname collision is detected, presumably after recovery from a netsplit.
595     +/
596     ERR_NICKCOLLISION = 436,
597 }