2023-11-26 15:14:07 -08:00
|
|
|
struct RecognizedCommand {
|
|
|
|
char const* text;
|
|
|
|
IrcCommand command;
|
|
|
|
std::size_t min_args;
|
|
|
|
std::size_t max_args;
|
|
|
|
};
|
|
|
|
%%
|
|
|
|
001, IrcCommand::RPL_WELCOME, 2, 2
|
|
|
|
002, IrcCommand::RPL_YOURHOST, 2, 2
|
|
|
|
003, IrcCommand::RPL_CREATED, 2, 2
|
|
|
|
004, IrcCommand::RPL_MYINFO, 5, 5
|
|
|
|
005, IrcCommand::RPL_ISUPPORT, 2, 15
|
|
|
|
008, IrcCommand::RPL_SNOMASK, 3, 3
|
|
|
|
010, IrcCommand::RPL_REDIR, 4, 4
|
|
|
|
015, IrcCommand::RPL_MAP, 2, 2
|
|
|
|
017, IrcCommand::RPL_MAPEND, 2, 2
|
|
|
|
043, IrcCommand::RPL_SAVENICK, 3, 3
|
|
|
|
200, IrcCommand::RPL_TRACELINK, 5, 5
|
|
|
|
201, IrcCommand::RPL_TRACECONNECTING, 4, 4
|
|
|
|
202, IrcCommand::RPL_TRACEHANDSHAKE, 4, 4
|
|
|
|
203, IrcCommand::RPL_TRACEUNKNOWN, 6, 6
|
|
|
|
204, IrcCommand::RPL_TRACEOPERATOR
|
|
|
|
205, IrcCommand::RPL_TRACEUSER
|
|
|
|
206, IrcCommand::RPL_TRACESERVER
|
|
|
|
208, IrcCommand::RPL_TRACENEWTYPE
|
|
|
|
209, IrcCommand::RPL_TRACECLASS
|
|
|
|
211, IrcCommand::RPL_STATSLINKINFO
|
|
|
|
212, IrcCommand::RPL_STATSCOMMANDS
|
|
|
|
213, IrcCommand::RPL_STATSCLINE
|
|
|
|
214, IrcCommand::RPL_STATSNLINE
|
2023-11-26 16:14:53 -08:00
|
|
|
215, IrcCommand::RPL_STATSILINE, 8, 8
|
2023-11-26 15:14:07 -08:00
|
|
|
216, IrcCommand::RPL_STATSKLINE
|
|
|
|
217, IrcCommand::RPL_STATSQLINE
|
|
|
|
218, IrcCommand::RPL_STATSYLINE
|
|
|
|
219, IrcCommand::RPL_ENDOFSTATS
|
|
|
|
220, IrcCommand::RPL_STATSPLINE
|
|
|
|
221, IrcCommand::RPL_UMODEIS, 2, 2
|
|
|
|
224, IrcCommand::RPL_STATSFLINE
|
|
|
|
225, IrcCommand::RPL_STATSDLINE
|
|
|
|
234, IrcCommand::RPL_SERVLIST
|
|
|
|
235, IrcCommand::RPL_SERVLISTEND
|
|
|
|
241, IrcCommand::RPL_STATSLLINE
|
|
|
|
242, IrcCommand::RPL_STATSUPTIME
|
|
|
|
243, IrcCommand::RPL_STATSOLINE
|
|
|
|
244, IrcCommand::RPL_STATSHLINE
|
|
|
|
245, IrcCommand::RPL_STATSSLINE
|
|
|
|
247, IrcCommand::RPL_STATSXLINE
|
|
|
|
248, IrcCommand::RPL_STATSULINE
|
|
|
|
249, IrcCommand::RPL_STATSDEBUG
|
|
|
|
250, IrcCommand::RPL_STATSCONN
|
|
|
|
251, IrcCommand::RPL_LUSERCLIENT
|
|
|
|
252, IrcCommand::RPL_LUSEROP
|
|
|
|
253, IrcCommand::RPL_LUSERUNKNOWN
|
|
|
|
254, IrcCommand::RPL_LUSERCHANNELS
|
|
|
|
255, IrcCommand::RPL_LUSERME
|
2023-11-26 16:14:53 -08:00
|
|
|
256, IrcCommand::RPL_ADMINME, 3, 3
|
|
|
|
257, IrcCommand::RPL_ADMINLOC1, 2, 2
|
|
|
|
258, IrcCommand::RPL_ADMINLOC2, 2, 2
|
|
|
|
259, IrcCommand::RPL_ADMINEMAIL, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
261, IrcCommand::RPL_TRACELOG
|
|
|
|
262, IrcCommand::RPL_ENDOFTRACE, 3, 3
|
|
|
|
263, IrcCommand::RPL_LOAD2HI
|
2023-11-26 16:14:53 -08:00
|
|
|
265, IrcCommand::RPL_LOCALUSERS, 4, 4
|
|
|
|
266, IrcCommand::RPL_GLOBALUSERS, 4, 4
|
|
|
|
270, IrcCommand::RPL_PRIVS, 3, 3
|
|
|
|
276, IrcCommand::RPL_WHOISCERTFP, 3, 3
|
|
|
|
281, IrcCommand::RPL_ACCEPTLIST, 1, 15
|
|
|
|
282, IrcCommand::RPL_ENDOFACCEPT, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
300, IrcCommand::RPL_NONE
|
|
|
|
301, IrcCommand::RPL_AWAY
|
|
|
|
302, IrcCommand::RPL_USERHOST
|
2023-11-26 16:14:53 -08:00
|
|
|
303, IrcCommand::RPL_ISON, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
304, IrcCommand::RPL_TEXT
|
|
|
|
305, IrcCommand::RPL_UNAWAY
|
|
|
|
306, IrcCommand::RPL_NOWAWAY
|
|
|
|
310, IrcCommand::RPL_WHOISHELPOP
|
2023-11-26 16:14:53 -08:00
|
|
|
311, IrcCommand::RPL_WHOISUSER, 6, 6
|
|
|
|
312, IrcCommand::RPL_WHOISSERVER, 4, 4
|
|
|
|
313, IrcCommand::RPL_WHOISOPERATOR, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
314, IrcCommand::RPL_WHOWASUSER
|
|
|
|
369, IrcCommand::RPL_ENDOFWHOWAS
|
|
|
|
316, IrcCommand::RPL_WHOISCHANOP
|
2023-11-26 16:14:53 -08:00
|
|
|
317, IrcCommand::RPL_WHOISIDLE, 5, 5
|
|
|
|
318, IrcCommand::RPL_ENDOFWHOIS, 3, 3
|
|
|
|
319, IrcCommand::RPL_WHOISCHANNELS, 3, 3
|
|
|
|
320, IrcCommand::RPL_WHOISSPECIAL, 3, 3
|
|
|
|
321, IrcCommand::RPL_LISTSTART, 3, 3
|
|
|
|
322, IrcCommand::RPL_LIST, 4, 4
|
|
|
|
323, IrcCommand::RPL_LISTEND, 2, 2
|
2023-11-26 16:48:21 -08:00
|
|
|
324, IrcCommand::RPL_CHANNELMODEIS, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
325, IrcCommand::RPL_CHANNELMLOCK
|
|
|
|
328, IrcCommand::RPL_CHANNELURL
|
2023-11-26 16:48:21 -08:00
|
|
|
329, IrcCommand::RPL_CREATIONTIME, 3, 3
|
2023-11-26 16:14:53 -08:00
|
|
|
330, IrcCommand::RPL_WHOISLOGGEDIN, 4, 4
|
|
|
|
331, IrcCommand::RPL_NOTOPIC, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
332, IrcCommand::RPL_TOPIC, 3, 3
|
|
|
|
333, IrcCommand::RPL_TOPICWHOTIME, 4, 4
|
|
|
|
338, IrcCommand::RPL_WHOISACTUALLY
|
|
|
|
341, IrcCommand::RPL_INVITING
|
|
|
|
342, IrcCommand::RPL_SUMMONING
|
|
|
|
346, IrcCommand::RPL_INVITELIST
|
|
|
|
347, IrcCommand::RPL_ENDOFINVITELIST
|
|
|
|
348, IrcCommand::RPL_EXCEPTLIST
|
2023-11-26 16:14:53 -08:00
|
|
|
349, IrcCommand::RPL_ENDOFEXCEPTLIST, 3, 3
|
|
|
|
351, IrcCommand::RPL_VERSION, 4, 4
|
2023-11-26 15:14:07 -08:00
|
|
|
352, IrcCommand::RPL_WHOREPLY
|
|
|
|
354, IrcCommand::RPL_WHOSPCRPL
|
|
|
|
315, IrcCommand::RPL_ENDOFWHO
|
2023-11-26 16:14:53 -08:00
|
|
|
353, IrcCommand::RPL_NAMREPLY, 4, 4
|
2023-11-26 15:14:07 -08:00
|
|
|
360, IrcCommand::RPL_WHOWASREAL
|
2023-11-26 16:14:53 -08:00
|
|
|
366, IrcCommand::RPL_ENDOFNAMES, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
361, IrcCommand::RPL_KILLDONE
|
|
|
|
362, IrcCommand::RPL_CLOSING
|
|
|
|
363, IrcCommand::RPL_CLOSEEND
|
2023-11-26 16:14:53 -08:00
|
|
|
364, IrcCommand::RPL_LINKS, 4, 4
|
|
|
|
365, IrcCommand::RPL_ENDOFLINKS, 3, 3
|
|
|
|
367, IrcCommand::RPL_BANLIST, 5, 5
|
|
|
|
368, IrcCommand::RPL_ENDOFBANLIST, 3, 3
|
|
|
|
371, IrcCommand::RPL_INFO, 2, 2
|
|
|
|
372, IrcCommand::RPL_MOTD, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
373, IrcCommand::RPL_INFOSTART
|
2023-11-26 16:14:53 -08:00
|
|
|
374, IrcCommand::RPL_ENDOFINFO, 2, 2
|
|
|
|
375, IrcCommand::RPL_MOTDSTART, 2, 2
|
|
|
|
376, IrcCommand::RPL_ENDOFMOTD, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
378, IrcCommand::RPL_WHOISHOST
|
2023-11-26 16:48:21 -08:00
|
|
|
381, IrcCommand::RPL_YOUREOPER, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
382, IrcCommand::RPL_REHASHING
|
|
|
|
384, IrcCommand::RPL_MYPORTIS
|
|
|
|
385, IrcCommand::RPL_NOTOPERANYMORE
|
|
|
|
386, IrcCommand::RPL_RSACHALLENGE
|
2023-11-26 16:14:53 -08:00
|
|
|
391, IrcCommand::RPL_TIME, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
392, IrcCommand::RPL_USERSSTART
|
|
|
|
393, IrcCommand::RPL_USERS
|
|
|
|
394, IrcCommand::RPL_ENDOFUSERS
|
|
|
|
395, IrcCommand::RPL_NOUSERS
|
|
|
|
396, IrcCommand::RPL_HOSTHIDDEN
|
|
|
|
401, IrcCommand::ERR_NOSUCHNICK, 3, 3
|
2023-11-26 16:14:53 -08:00
|
|
|
402, IrcCommand::ERR_NOSUCHSERVER, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
403, IrcCommand::ERR_NOSUCHCHANNEL
|
|
|
|
404, IrcCommand::ERR_CANNOTSENDTOCHAN
|
|
|
|
405, IrcCommand::ERR_TOOMANYCHANNELS
|
|
|
|
406, IrcCommand::ERR_WASNOSUCHNICK
|
|
|
|
407, IrcCommand::ERR_TOOMANYTARGETS
|
|
|
|
409, IrcCommand::ERR_NOORIGIN
|
|
|
|
410, IrcCommand::ERR_INVALIDCAPCMD
|
|
|
|
411, IrcCommand::ERR_NORECIPIENT
|
|
|
|
412, IrcCommand::ERR_NOTEXTTOSEND
|
|
|
|
413, IrcCommand::ERR_NOTOPLEVEL
|
|
|
|
414, IrcCommand::ERR_WILDTOPLEVEL
|
|
|
|
415, IrcCommand::ERR_MSGNEEDREGGEDNICK
|
|
|
|
416, IrcCommand::ERR_TOOMANYMATCHES
|
|
|
|
421, IrcCommand::ERR_UNKNOWNCOMMAND
|
|
|
|
422, IrcCommand::ERR_NOMOTD, 2, 2
|
|
|
|
423, IrcCommand::ERR_NOADMININFO
|
|
|
|
424, IrcCommand::ERR_FILEERROR
|
|
|
|
431, IrcCommand::ERR_NONICKNAMEGIVEN
|
|
|
|
432, IrcCommand::ERR_ERRONEUSNICKNAME
|
2023-11-26 16:48:21 -08:00
|
|
|
433, IrcCommand::ERR_NICKNAMEINUSE, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
435, IrcCommand::ERR_BANNICKCHANGE
|
|
|
|
436, IrcCommand::ERR_NICKCOLLISION
|
|
|
|
437, IrcCommand::ERR_UNAVAILRESOURCE
|
|
|
|
438, IrcCommand::ERR_NICKTOOFAST
|
|
|
|
440, IrcCommand::ERR_SERVICESDOWN
|
|
|
|
441, IrcCommand::ERR_USERNOTINCHANNEL
|
|
|
|
442, IrcCommand::ERR_NOTONCHANNEL
|
|
|
|
443, IrcCommand::ERR_USERONCHANNEL
|
|
|
|
444, IrcCommand::ERR_NOLOGIN
|
|
|
|
445, IrcCommand::ERR_SUMMONDISABLED
|
|
|
|
446, IrcCommand::ERR_USERSDISABLED
|
|
|
|
451, IrcCommand::ERR_NOTREGISTERED
|
|
|
|
456, IrcCommand::ERR_ACCEPTFULL
|
|
|
|
457, IrcCommand::ERR_ACCEPTEXIST
|
|
|
|
458, IrcCommand::ERR_ACCEPTNOT
|
|
|
|
461, IrcCommand::ERR_NEEDMOREPARAMS
|
|
|
|
462, IrcCommand::ERR_ALREADYREGISTRED
|
|
|
|
463, IrcCommand::ERR_NOPERMFORHOST
|
|
|
|
464, IrcCommand::ERR_PASSWDMISMATCH
|
|
|
|
465, IrcCommand::ERR_YOUREBANNEDCREEP
|
|
|
|
466, IrcCommand::ERR_YOUWILLBEBANNED
|
|
|
|
467, IrcCommand::ERR_KEYSET
|
|
|
|
470, IrcCommand::ERR_LINKCHANNEL
|
|
|
|
471, IrcCommand::ERR_CHANNELISFULL
|
|
|
|
472, IrcCommand::ERR_UNKNOWNMODE
|
|
|
|
473, IrcCommand::ERR_INVITEONLYCHAN
|
|
|
|
474, IrcCommand::ERR_BANNEDFROMCHAN
|
|
|
|
475, IrcCommand::ERR_BADCHANNELKEY
|
|
|
|
476, IrcCommand::ERR_BADCHANMASK
|
|
|
|
477, IrcCommand::ERR_NEEDREGGEDNICK
|
|
|
|
478, IrcCommand::ERR_BANLISTFULL
|
|
|
|
479, IrcCommand::ERR_BADCHANNAME
|
|
|
|
480, IrcCommand::ERR_THROTTLE
|
|
|
|
481, IrcCommand::ERR_NOPRIVILEGES
|
|
|
|
482, IrcCommand::ERR_CHANOPRIVSNEEDED
|
|
|
|
483, IrcCommand::ERR_CANTKILLSERVER
|
|
|
|
484, IrcCommand::ERR_ISCHANSERVICE
|
|
|
|
485, IrcCommand::ERR_BANNEDNICK
|
|
|
|
486, IrcCommand::ERR_NONONREG
|
|
|
|
489, IrcCommand::ERR_VOICENEEDED
|
|
|
|
491, IrcCommand::ERR_NOOPERHOST
|
|
|
|
492, IrcCommand::ERR_CANNOTSENDTOUSER
|
|
|
|
494, IrcCommand::ERR_OWNMODE
|
|
|
|
501, IrcCommand::ERR_UMODEUNKNOWNFLAG
|
2023-11-26 16:48:21 -08:00
|
|
|
502, IrcCommand::ERR_USERSDONTMATCH, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
503, IrcCommand::ERR_GHOSTEDCLIENT
|
|
|
|
504, IrcCommand::ERR_USERNOTONSERV
|
|
|
|
513, IrcCommand::ERR_WRONGPONG
|
|
|
|
517, IrcCommand::ERR_DISABLED
|
|
|
|
524, IrcCommand::ERR_HELPNOTFOUND
|
|
|
|
670, IrcCommand::RPL_STARTTLS
|
2023-11-26 16:14:53 -08:00
|
|
|
671, IrcCommand::RPL_WHOISSECURE, 3, 3
|
2023-11-26 15:14:07 -08:00
|
|
|
691, IrcCommand::ERR_STARTTLS
|
|
|
|
702, IrcCommand::RPL_MODLIST
|
|
|
|
703, IrcCommand::RPL_ENDOFMODLIST
|
|
|
|
704, IrcCommand::RPL_HELPSTART
|
|
|
|
705, IrcCommand::RPL_HELPTXT
|
|
|
|
706, IrcCommand::RPL_ENDOFHELP
|
|
|
|
707, IrcCommand::ERR_TARGCHANGE
|
|
|
|
708, IrcCommand::RPL_ETRACEFULL, 10, 10
|
|
|
|
709, IrcCommand::RPL_ETRACE
|
|
|
|
710, IrcCommand::RPL_KNOCK
|
|
|
|
711, IrcCommand::RPL_KNOCKDLVR
|
|
|
|
712, IrcCommand::ERR_TOOMANYKNOCK
|
|
|
|
713, IrcCommand::ERR_CHANOPEN
|
|
|
|
714, IrcCommand::ERR_KNOCKONCHAN
|
|
|
|
715, IrcCommand::ERR_KNOCKDISABLED
|
|
|
|
716, IrcCommand::ERR_TARGUMODEG
|
|
|
|
717, IrcCommand::RPL_TARGNOTIFY
|
|
|
|
718, IrcCommand::RPL_UMODEGMSG
|
|
|
|
720, IrcCommand::RPL_OMOTDSTART
|
|
|
|
721, IrcCommand::RPL_OMOTD
|
|
|
|
722, IrcCommand::RPL_ENDOFOMOTD
|
|
|
|
723, IrcCommand::ERR_NOPRIVS
|
|
|
|
724, IrcCommand::RPL_TESTMASK
|
|
|
|
725, IrcCommand::RPL_TESTLINE
|
|
|
|
726, IrcCommand::RPL_NOTESTLINE
|
2023-11-26 16:14:53 -08:00
|
|
|
727, IrcCommand::RPL_TESTMASKGECO, 6, 6
|
|
|
|
728, IrcCommand::RPL_QUIETLIST, 6, 6
|
|
|
|
729, IrcCommand::RPL_ENDOFQUIETLIS, 4, 4
|
2023-11-26 15:14:07 -08:00
|
|
|
730, IrcCommand::RPL_MONONLINE
|
|
|
|
731, IrcCommand::RPL_MONOFFLINE
|
|
|
|
732, IrcCommand::RPL_MONLIST
|
2023-11-26 16:14:53 -08:00
|
|
|
733, IrcCommand::RPL_ENDOFMONLIS, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
734, IrcCommand::ERR_MONLISTFULL
|
2023-11-26 16:48:21 -08:00
|
|
|
740, IrcCommand::RPL_RSACHALLENGE2, 2, 2
|
|
|
|
741, IrcCommand::RPL_ENDOFRSACHALLENGE2, 2, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
742, IrcCommand::ERR_MLOCKRESTRICTE
|
|
|
|
743, IrcCommand::ERR_INVALIDBAN
|
|
|
|
744, IrcCommand::ERR_TOPICLOCK
|
|
|
|
750, IrcCommand::RPL_SCANMATCHED
|
|
|
|
751, IrcCommand::RPL_SCANUMODES
|
|
|
|
900, IrcCommand::RPL_LOGGEDIN
|
|
|
|
901, IrcCommand::RPL_LOGGEDOUT
|
|
|
|
902, IrcCommand::ERR_NICKLOCKED
|
|
|
|
903, IrcCommand::RPL_SASLSUCCESS
|
|
|
|
904, IrcCommand::ERR_SASLFAIL
|
|
|
|
905, IrcCommand::ERR_SASLTOOLONG
|
|
|
|
906, IrcCommand::ERR_SASLABORTED
|
|
|
|
907, IrcCommand::ERR_SASLALREADY
|
|
|
|
908, IrcCommand::RPL_SASLMECHS
|
|
|
|
ACCOUNT, IrcCommand::ACCOUNT, 1, 1
|
|
|
|
AUTHENTICATE, IrcCommand::AUTHENTICATE, 1, 1
|
|
|
|
AWAY, IrcCommand::AWAY, 0, 1
|
|
|
|
BATCH, IrcCommand::BATCH
|
|
|
|
BOUNCER, IrcCommand::BOUNCER
|
|
|
|
CAP, IrcCommand::CAP, 1, 15
|
|
|
|
CHGHOST, IrcCommand::CHGHOST, 2, 2
|
|
|
|
ERROR, IrcCommand::ERROR, 1, 1
|
|
|
|
JOIN, IrcCommand::JOIN, 1, 3
|
|
|
|
KICK, IrcCommand::KICK, 3, 3
|
|
|
|
MODE, IrcCommand::MODE, 2, 15
|
|
|
|
NICK, IrcCommand::NICK, 1, 1
|
|
|
|
NOTICE, IrcCommand::NOTICE, 2, 2
|
2023-11-26 16:48:21 -08:00
|
|
|
PART, IrcCommand::PART, 1, 2
|
2023-11-26 15:14:07 -08:00
|
|
|
PING, IrcCommand::PING, 1, 1
|
|
|
|
PRIVMSG, IrcCommand::PRIVMSG, 2, 2
|
|
|
|
QUIT, IrcCommand::QUIT, 1, 1
|
|
|
|
SETNAME, IrcCommand::SETNAME, 1, 1
|
|
|
|
TOPIC, IrcCommand::TOPIC, 2, 2
|