2020-02-25 15:51:22 +00:00
|
|
|
package irc
|
2019-08-21 19:07:47 +00:00
|
|
|
|
|
|
|
import log "github.com/sirupsen/logrus"
|
|
|
|
|
|
|
|
type ircServerResponse struct {
|
|
|
|
code uint16
|
|
|
|
symbol string
|
|
|
|
longtext string
|
2020-02-25 15:51:22 +00:00
|
|
|
params *[]string
|
2019-08-21 19:07:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewIrcServerResponse(code uint16, params *[]string) {
|
2020-02-25 15:51:22 +00:00
|
|
|
codes := ircResponseCodes()
|
|
|
|
r := new(ircServerResponse)
|
|
|
|
r.code = code
|
|
|
|
r.symbol = (*codes)[code]
|
|
|
|
r.params = params
|
2019-08-21 19:07:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func ircResponseCodes() *map[uint16]string {
|
|
|
|
responseCodeList := map[uint16]string{
|
|
|
|
1: "RPL_WELCOME",
|
|
|
|
2: "RPL_YOURHOST",
|
|
|
|
3: "RPL_CREATED",
|
|
|
|
4: "RPL_MYINFO",
|
|
|
|
5: "RPL_ISUPPORT",
|
|
|
|
10: "RPL_BOUNCE",
|
|
|
|
15: "RPL_MAP",
|
|
|
|
17: "RPL_MAPEND",
|
|
|
|
18: "RPL_MAPSTART",
|
|
|
|
20: "RPL_HELLO",
|
|
|
|
42: "RPL_YOURID",
|
|
|
|
43: "RPL_SAVENICK",
|
|
|
|
200: "RPL_TRACELINK",
|
|
|
|
201: "RPL_TRACECONNECTING",
|
|
|
|
202: "RPL_TRACEHANDSHAKE",
|
|
|
|
203: "RPL_TRACEUNKNOWN",
|
|
|
|
204: "RPL_TRACEOPERATOR",
|
|
|
|
205: "RPL_TRACEUSER",
|
|
|
|
206: "RPL_TRACESERVER",
|
|
|
|
207: "RPL_TRACESERVICE",
|
|
|
|
208: "RPL_TRACENEWTYPE",
|
|
|
|
209: "RPL_TRACECLASS",
|
|
|
|
211: "RPL_STATSLINKINFO",
|
|
|
|
212: "RPL_STATSCOMMANDS",
|
|
|
|
213: "RPL_STATSCLINE",
|
|
|
|
214: "RPL_STATSNLINE",
|
|
|
|
215: "RPL_STATSILINE",
|
|
|
|
216: "RPL_STATSKLINE",
|
|
|
|
217: "RPL_STATSQLINE",
|
|
|
|
218: "RPL_STATSYLINE",
|
|
|
|
219: "RPL_ENDOFSTATS",
|
|
|
|
221: "RPL_UMODEIS",
|
|
|
|
231: "RPL_SERVICEINFO",
|
|
|
|
232: "RPL_ENDOFSERVICES",
|
|
|
|
233: "RPL_SERVICE",
|
|
|
|
234: "RPL_SERVLIST",
|
|
|
|
235: "RPL_SERVLISTEND",
|
|
|
|
239: "RPL_STATSIAUTH",
|
|
|
|
240: "RPL_STATSVLINE",
|
|
|
|
241: "RPL_STATSLLINE",
|
|
|
|
242: "RPL_STATSUPTIME",
|
|
|
|
243: "RPL_STATSOLINE",
|
|
|
|
244: "RPL_STATSHLINE",
|
|
|
|
245: "RPL_STATSSLINE",
|
|
|
|
246: "RPL_STATSPING",
|
|
|
|
247: "RPL_STATSBLINE",
|
|
|
|
248: "RPL_STATSDEFINE",
|
|
|
|
249: "RPL_STATSDEBUG",
|
|
|
|
250: "RPL_STATSDLINE",
|
|
|
|
251: "RPL_LUSERCLIENT",
|
|
|
|
252: "RPL_LUSEROP",
|
|
|
|
253: "RPL_LUSERUNKNOWN",
|
|
|
|
254: "RPL_LUSERCHANNELS",
|
|
|
|
255: "RPL_LUSERME",
|
|
|
|
256: "RPL_ADMINME",
|
|
|
|
257: "RPL_ADMINLOC1",
|
|
|
|
258: "RPL_ADMINLOC2",
|
|
|
|
259: "RPL_ADMINEMAIL",
|
|
|
|
261: "RPL_TRACELOG",
|
|
|
|
262: "RPL_TRACEEND",
|
|
|
|
263: "RPL_TRYAGAIN",
|
|
|
|
265: "RPL_LOCALUSERS",
|
|
|
|
266: "RPL_GLOBALUSERS",
|
|
|
|
300: "RPL_NONE",
|
|
|
|
301: "RPL_AWAY",
|
|
|
|
302: "RPL_USERHOST",
|
|
|
|
303: "RPL_ISON",
|
|
|
|
304: "RPL_TEXT",
|
|
|
|
305: "RPL_UNAWAY",
|
|
|
|
306: "RPL_NOWAWAY",
|
|
|
|
311: "RPL_WHOISUSER",
|
|
|
|
312: "RPL_WHOISSERVER",
|
|
|
|
313: "RPL_WHOISOPERATOR",
|
|
|
|
314: "RPL_WHOWASUSER",
|
|
|
|
315: "RPL_ENDOFWHO",
|
|
|
|
316: "RPL_WHOISCHANOP",
|
|
|
|
317: "RPL_WHOISIDLE",
|
|
|
|
318: "RPL_ENDOFWHOIS",
|
|
|
|
319: "RPL_WHOISCHANNELS",
|
|
|
|
321: "RPL_LISTSTART",
|
|
|
|
322: "RPL_LIST",
|
|
|
|
323: "RPL_LISTEND",
|
|
|
|
324: "RPL_CHANNELMODEIS",
|
|
|
|
325: "RPL_UNIQOPIS",
|
|
|
|
331: "RPL_NOTOPIC",
|
|
|
|
332: "RPL_TOPIC",
|
|
|
|
333: "RPL_TOPIC_WHO_TIME",
|
|
|
|
341: "RPL_INVITING",
|
|
|
|
342: "RPL_SUMMONING",
|
|
|
|
344: "RPL_REOPLIST",
|
|
|
|
345: "RPL_ENDOFREOPLIST",
|
|
|
|
346: "RPL_INVITELIST",
|
|
|
|
347: "RPL_ENDOFINVITELIST",
|
|
|
|
348: "RPL_EXCEPTLIST",
|
|
|
|
349: "RPL_ENDOFEXCEPTLIST",
|
|
|
|
351: "RPL_VERSION",
|
|
|
|
352: "RPL_WHOREPLY",
|
|
|
|
353: "RPL_NAMREPLY",
|
|
|
|
361: "RPL_KILLDONE",
|
|
|
|
362: "RPL_CLOSING",
|
|
|
|
363: "RPL_CLOSEEND",
|
|
|
|
364: "RPL_LINKS",
|
|
|
|
365: "RPL_ENDOFLINKS",
|
|
|
|
366: "RPL_ENDOFNAMES",
|
|
|
|
367: "RPL_BANLIST",
|
|
|
|
368: "RPL_ENDOFBANLIST",
|
|
|
|
369: "RPL_ENDOFWHOWAS",
|
|
|
|
371: "RPL_INFO",
|
|
|
|
372: "RPL_MOTD",
|
|
|
|
373: "RPL_INFOSTART",
|
|
|
|
374: "RPL_ENDOFINFO",
|
|
|
|
375: "RPL_MOTDSTART",
|
|
|
|
376: "RPL_ENDOFMOTD",
|
|
|
|
381: "RPL_YOUREOPER",
|
|
|
|
382: "RPL_REHASHING",
|
|
|
|
383: "RPL_YOURESERVICE",
|
|
|
|
384: "RPL_MYPORTIS",
|
|
|
|
385: "RPL_NOTOPERANYMORE",
|
|
|
|
391: "RPL_TIME",
|
|
|
|
392: "RPL_USERSSTART",
|
|
|
|
393: "RPL_USERS",
|
|
|
|
394: "RPL_ENDOFUSERS",
|
|
|
|
395: "RPL_NOUSERS",
|
|
|
|
401: "ERR_NOSUCHNICK",
|
|
|
|
402: "ERR_NOSUCHSERVER",
|
|
|
|
403: "ERR_NOSUCHCHANNEL",
|
|
|
|
404: "ERR_CANNOTSENDTOCHAN",
|
|
|
|
405: "ERR_TOOMANYCHANNELS",
|
|
|
|
406: "ERR_WASNOSUCHNICK",
|
|
|
|
407: "ERR_TOOMANYTARGETS",
|
|
|
|
408: "ERR_NOSUCHSERVICE",
|
|
|
|
409: "ERR_NOORIGIN",
|
|
|
|
411: "ERR_NORECIPIENT",
|
|
|
|
412: "ERR_NOTEXTTOSEND",
|
|
|
|
413: "ERR_NOTOPLEVEL",
|
|
|
|
414: "ERR_WILDTOPLEVEL",
|
|
|
|
415: "ERR_BADMASK",
|
|
|
|
416: "ERR_TOOMANYMATCHES",
|
|
|
|
421: "ERR_UNKNOWNCOMMAND",
|
|
|
|
422: "ERR_NOMOTD",
|
|
|
|
423: "ERR_NOADMININFO",
|
|
|
|
424: "ERR_FILEERROR",
|
|
|
|
431: "ERR_NONICKNAMEGIVEN",
|
|
|
|
432: "ERR_ERRONEOUSNICKNAME",
|
|
|
|
433: "ERR_NICKNAMEINUSE",
|
|
|
|
434: "ERR_SERVICENAMEINUSE",
|
|
|
|
435: "ERR_SERVICECONFUSED",
|
|
|
|
436: "ERR_NICKCOLLISION",
|
|
|
|
437: "ERR_UNAVAILRESOURCE",
|
|
|
|
441: "ERR_USERNOTINCHANNEL",
|
|
|
|
442: "ERR_NOTONCHANNEL",
|
|
|
|
443: "ERR_USERONCHANNEL",
|
|
|
|
444: "ERR_NOLOGIN",
|
|
|
|
445: "ERR_SUMMONDISABLED",
|
|
|
|
446: "ERR_USERSDISABLED",
|
|
|
|
451: "ERR_NOTREGISTERED",
|
|
|
|
461: "ERR_NEEDMOREPARAMS",
|
|
|
|
462: "ERR_ALREADYREGISTRED",
|
|
|
|
463: "ERR_NOPERMFORHOST",
|
|
|
|
464: "ERR_PASSWDMISMATCH",
|
|
|
|
465: "ERR_YOUREBANNEDCREEP",
|
|
|
|
466: "ERR_YOUWILLBEBANNED",
|
|
|
|
467: "ERR_KEYSET",
|
|
|
|
471: "ERR_CHANNELISFULL",
|
|
|
|
472: "ERR_UNKNOWNMODE",
|
|
|
|
473: "ERR_INVITEONLYCHAN",
|
|
|
|
474: "ERR_BANNEDFROMCHAN",
|
|
|
|
475: "ERR_BADCHANNELKEY",
|
|
|
|
476: "ERR_BADCHANMASK",
|
|
|
|
477: "ERR_NOCHANMODES",
|
|
|
|
478: "ERR_BANLISTFULL",
|
|
|
|
481: "ERR_NOPRIVILEGES",
|
|
|
|
482: "ERR_CHANOPRIVSNEEDED",
|
|
|
|
483: "ERR_CANTKILLSERVER",
|
|
|
|
484: "ERR_RESTRICTED",
|
|
|
|
485: "ERR_UNIQOPRIVSNEEDED",
|
|
|
|
491: "ERR_NOOPERHOST",
|
|
|
|
492: "ERR_NOSERVICEHOST",
|
|
|
|
499: "ERR_STATSKLINE",
|
|
|
|
501: "ERR_UMODEUNKNOWNFLAG",
|
|
|
|
502: "ERR_USERSDONTMATCH",
|
|
|
|
708: "RPL_ETRACEFULL",
|
|
|
|
759: "RPL_ETRACEEND",
|
|
|
|
}
|
|
|
|
log.Fatalf("%+v", responseCodeList)
|
|
|
|
return &responseCodeList
|
|
|
|
}
|