package girc /* IRCNumToStr takes in a numeric IRC code and returns the relevant girc name. IRCNumToStr accepts a string because that's how we tend to receive the codes. */ //goland:noinspection GoUnusedExportedFunction func IRCNumToStr(code string) string { if _, ok := noTranslate[code]; ok { return code } if result, ok := IRCCodes[code]; ok { return result } return "" } var noTranslate = map[string]uint8{"JOIN": 1, "INVITE": 1, "NOTICE": 1, "CAP": 1, "MODE": 1, "QUIT": 1, "PRIVMSG": 1, "NICK": 1, "FAIL": 1} // IRCCodes is just a map form of our constants for quick lookup purposes. var IRCCodes = map[string]string{ "001": "RPL_WELCOME", "002": "RPL_YOURHOST", "003": "RPL_CREATED", "004": "RPL_MYINFO", "005": "RPL_ISUPPORT", "302": "RPL_USERHOST", "303": "RPL_ISON", "301": "RPL_AWAY", "305": "RPL_UNAWAY", "306": "RPL_NOWAWAY", "311": "RPL_WHOISUSER", "312": "RPL_WHOISSERVER", "313": "RPL_WHOISOPERATOR", "317": "RPL_WHOISIDLE", "318": "RPL_ENDOFWHOIS", "319": "RPL_WHOISCHANNELS", "314": "RPL_WHOWASUSER", "369": "RPL_ENDOFWHOWAS", "321": "RPL_LISTSTART", "322": "RPL_LIST", "323": "RPL_LISTEND", "325": "RPL_UNIQOPIS", "324": "RPL_CHANNELMODEIS", "329": "RPL_CREATIONTIME", "330": "RPL_WHOISAUTHNAME", "331": "RPL_NOTOPIC", "332": "RPL_TOPIC", "341": "RPL_INVITING", "342": "RPL_SUMMONING", "346": "RPL_INVITELIST", "347": "RPL_ENDOFINVITELIST", "348": "RPL_EXCEPTLIST", "349": "RPL_ENDOFEXCEPTLIST", "351": "RPL_VERSION", "352": "RPL_WHOREPLY", "315": "RPL_ENDOFWHO", "353": "RPL_NAMREPLY", "366": "RPL_ENDOFNAMES", "364": "RPL_LINKS", "365": "RPL_ENDOFLINKS", "367": "RPL_BANLIST", "368": "RPL_ENDOFBANLIST", "371": "RPL_INFO", "374": "RPL_ENDOFINFO", "375": "RPL_MOTDSTART", "372": "RPL_MOTD", "376": "RPL_ENDOFMOTD", "381": "RPL_YOUREOPER", "382": "RPL_REHASHING", "383": "RPL_YOURESERVICE", "391": "RPL_TIME", "392": "RPL_USERSSTART", "393": "RPL_USERS", "394": "RPL_ENDOFUSERS", "395": "RPL_NOUSERS", "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", "210": "RPL_TRACERECONNECT", "261": "RPL_TRACELOG", "262": "RPL_TRACEEND", "211": "RPL_STATSLINKINFO", "212": "RPL_STATSCOMMANDS", "219": "RPL_ENDOFSTATS", "242": "RPL_STATSUPTIME", "243": "RPL_STATSOLINE", "221": "RPL_UMODEIS", "234": "RPL_SERVLIST", "235": "RPL_SERVLISTEND", "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", "263": "RPL_TRYAGAIN", "400": "ERR_ALREADYOPER", "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", "417": "ERR_INPUTTOOLONG", "421": "ERR_UNKNOWNCOMMAND", "422": "ERR_NOMOTD", "423": "ERR_NOADMININFO", "424": "ERR_FILEERROR", "431": "ERR_NONICKNAMEGIVEN", "432": "ERR_ERRONEUSNICKNAME", "433": "ERR_NICKNAMEINUSE", "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_UNIQOPPRIVSNEEDED", "491": "ERR_NOOPERHOST", "501": "ERR_UMODEUNKNOWNFLAG", "502": "ERR_USERSDONTMATCH", "900": "RPL_LOGGEDIN", "901": "RPL_LOGGEDOUT", "902": "RPL_NICKLOCKED", "903": "RPL_SASLSUCCESS", "904": "ERR_SASLFAIL", "905": "ERR_SASLTOOLONG", "906": "ERR_SASLABORTED", "907": "ERR_SASLALREADY", "908": "RPL_SASLMECHS", "670": "RPL_STARTTLS", "691": "ERR_STARTTLS", "730": "RPL_MONONLINE", "731": "RPL_MONOFFLINE", "732": "RPL_MONLIST", "733": "RPL_ENDOFMONLIST", "734": "ERR_MONLISTFULL", "213": "RPL_STATSCLINE", "214": "RPL_STATSNLINE", "215": "RPL_STATSILINE", "216": "RPL_STATSKLINE", "217": "RPL_STATSQLINE", "218": "RPL_STATSYLINE", "231": "RPL_SERVICEINFO", "232": "RPL_ENDOFSERVICES", "233": "RPL_SERVICE", "240": "RPL_STATSVLINE", "241": "RPL_STATSLLINE", "244": "RPL_STATSHLINE", "245": "RPL_STATSSLINE", "246": "RPL_STATSPING", "247": "RPL_STATSBLINE", "250": "RPL_STATSDLINE", "300": "RPL_NONE", "316": "RPL_WHOISCHANOP", "361": "RPL_KILLDONE", "362": "RPL_CLOSING", "363": "RPL_CLOSEEND", "373": "RPL_INFOSTART", "384": "RPL_MYPORTIS", "492": "ERR_NOSERVICEHOST", "416": "ERR_TOOMANYMATCHES", "266": "RPL_GLOBALUSERS", "265": "RPL_LOCALUSERS", "333": "RPL_TOPICWHOTIME", "354": "RPL_WHOSPCRPL", "671": "RPL_WHOISTLS", "CLIENT_STATE_UPDATED": "UPDATE_STATE", "CLIENT_GENERAL_UPDATED": "UPDATE_GENERAL", "*": "ALL_EVENTS", "CLIENT_CONNECTED": "CONNECTED", "CLIENT_INIT": "INITIALIZED", "CLIENT_DISCONNECTED": "DISCONNECTED", "CLIENT_CLOSED": "CLOSED", "STS_UPGRADE_INIT": "STS_UPGRADE_INIT", "STS_ERR_FALLBACK": "STS_ERR_FALLBACK", "ACTION": "CTCP_ACTION", "PING": "CTCP_PING", "PONG": "CTCP_PONG", "VERSION": "CTCP_VERSION", "USERINFO": "CTCP_USERINFO", "CLIENTINFO": "CTCP_CLIENTINFO", "SOURCE": "CTCP_SOURCE", "TIME": "CTCP_TIME", "FINGER": "CTCP_FINGER", "ERRMSG": "CTCP_ERRMSG", }