{"id":15047269,"url":"https://github.com/dalexhd/ft_irc","last_synced_at":"2025-04-10T00:50:59.700Z","repository":{"id":37543931,"uuid":"467235552","full_name":"dalexhd/ft_irc","owner":"dalexhd","description":"The goal of this project is to make you write your own IRC server. To do so, you will test your work with a real IRC client. Internet is ruled by solid and standards protocols that allow a strong interaction between every connected computer. It’s always good to know about it.","archived":false,"fork":false,"pushed_at":"2023-04-20T15:38:54.000Z","size":84205,"stargazers_count":6,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T00:50:54.994Z","etag":null,"topics":["cpp","cpp98","irc","irc-server"],"latest_commit_sha":null,"homepage":"https://irc.dalexhd.dev","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dalexhd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-07T19:41:34.000Z","updated_at":"2023-09-28T19:46:08.000Z","dependencies_parsed_at":"2024-09-28T23:40:48.188Z","dependency_job_id":"37ed5841-4004-4680-b8a5-26fe02c3f0fe","html_url":"https://github.com/dalexhd/ft_irc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalexhd%2Fft_irc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalexhd%2Fft_irc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalexhd%2Fft_irc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalexhd%2Fft_irc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dalexhd","download_url":"https://codeload.github.com/dalexhd/ft_irc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137999,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp98","irc","irc-server"],"created_at":"2024-09-24T20:55:56.267Z","updated_at":"2025-04-10T00:50:59.680Z","avatar_url":"https://github.com/dalexhd.png","language":"C++","readme":"\u003cdiv align=\"center\"\u003e\n\n![image](https://i.giphy.com/media/dbtDDSvWErdf2/giphy.webp)\n\n## OUR OWN IRC SERVER\n\n[![aborboll's 42 ft_irc Score](https://badge42.vercel.app/api/v2/cl2uk1olu003009mgf4ilrst7/project/2564130)](https://github.com/JaeSeoKim/badge42)\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/dalexhd/ft_irc?color=blue\u0026label=Last%20commit\u0026logo=git\u0026maxAge=3600)](https://github.com/dalexhd/ft_irc/commits)\n[![GitHub issues](https://img.shields.io/github/issues/dalexhd/ft_irc?label=Issues\u0026color=blue\u0026maxAge=3600)](https://github.com/dalexhd/ft_irc/issues)\n[![GitHub forks](https://img.shields.io/github/forks/dalexhd/ft_irc?label=Forks\u0026color=blue\u0026maxAge=3600)](https://github.com/dalexhd/ft_irc/network)\n\n[![Test](https://github.com/dalexhd/ft_irc/workflows/Test/badge.svg)](https://github.com/dalexhd/ft_irc/actions?query=workflow:Test)\n[![codecov](https://codecov.io/gh/dalexhd/ft_irc/branch/main/graph/badge.svg?token=D8A1FV32VL)](https://codecov.io/gh/dalexhd/ft_irc)\n[![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/dalexhd/ft_irc?label=Code%20size\u0026maxAge=3600)](https://github.com/dalexhd/ft_irc)\n\n\u003c/div\u003e\n\n# USAGE\n## SERVER\n\n## Version used RFC 1459 https://datatracker.ietf.org/doc/html/rfc1459\n\nmake\n\n./ircserv `\u003cport\u003e` `\u003cpassword\u003e`\n\n## CLIENT\n\ntelnet `\u003cserverip\u003e` `\u003cport\u003e`\n          o\nnc `\u003cserverip\u003e` `\u003cport\u003e`\n\n - The ircserver must be tested with Graphical Official Irc clients as limechat, weechat, textualchat\n\n## COMMANDS DOCS\n\nhttps://en.wikipedia.org/wiki/List_of_Internet_Relay_Chat_commands\n\n- **pass** -\u003e Sets a connection password.This command must be sent before the NICK/USER registration combination\n\n      ex \"pass \u003cpassword\u003e\"\n\n- **nick** -\u003e Allows a client to change their IRC nickname\n\n      ex \"/nick \u003cnickname\u003e\"\n\n- **privmsg** -\u003e Sends message to msgtarget, which is usually a user or channel.\n\n      ex: \"/privmsg msgtarget :message\"\n\n- **ping** -\u003e Lets you determine the network distance between your computer and other users\n\n      ex: \"/ping \u003cnickname\u003e\"\n\n- **names** -\u003e Returns a list of who is on the comma-separated list of \u003cchannels\u003e, by channel name.\n\n      ex: \"/names \u003cchannel\u003e\"\n\n- **join** -\u003e Makes the client join the channels in the comma-separated list, specifying the passwords, if needed\n\n      ex: \"/join \u003cchannels\u003e \u003ckeys\u003e\"\n\n- **part** -\u003e Causes a user to leave the channels in the comma-separated list .\n\n      ex: \"/part \u003cchannel\u003e\"\n\n- **topic** -\u003e Allows the client to query or set the channel topic on channel\n\n      ex: \"/topic \u003cchannel\u003e\"\n\n- **list** -\u003e Lists all channels on the server\n\n      ex: \"/list\"\n\n- **invites** -\u003e Invites nickname to the channel channel\n\n      ex: \"/invites \u003cnickname\u003e \u003cchannel\u003e\"\n\n- **kick** -\u003e Forcibly removes client from channel\n\n      ex: \"/kick \u003cclient\u003e \u003cchannel\u003e\"\n\n## [](#message-format)Message Format\n\nAn IRC message is a single line, delimited by a pair of `CR` `('\\r', 0x0D)` and `LF` `('\\n', 0x0A)` characters.\n\n- When reading messages from a stream, read the incoming data into a buffer. Only parse and process a message once you encounter the `\\r\\n` at the end of it. If you encounter an empty message, silently ignore it.\n- When sending messages, ensure that a pair of `\\r\\n` characters follows every single message your software sends out.\n\n---\n\nMessages have this format, as rough ABNF:\n\n      message         ::= ['@' \u003ctags\u003e SPACE] [':' \u003csource\u003e SPACE] \u003ccommand\u003e \u003cparameters\u003e \u003ccrlf\u003e\n      SPACE           ::=  %x20 *( %x20 )   ; space character(s)\n      crlf            ::=  %x0D %x0A        ; \"carriage return\" \"linefeed\"\n\nThe specific parts of an IRC message are:\n\n- **tags**: Optional metadata on a message, starting with `('@', 0x40)`.\n- **source**: Optional note of where the message came from, starting with `(':', 0x3A)`.\n- **command**: The specific command this message represents.\n- **parameters**: If it exists, data relevant to this specific command.\n\nThese message parts, and parameters themselves, are separated by one or more ASCII SPACE characters `(' ', 0x20)`.\n\nMost IRC servers limit messages to 512 bytes in length, including the trailing `CR-LF` characters. Implementations which include [message tags](https://ircv3.net/specs/extensions/message-tags.html) need to allow additional bytes for the **tags** section of a message; clients must allow 8191 additional bytes and servers must allow 4096 additional bytes.\n\n---\n\n## NUMERIC REPLIES\n\nhttps://modern.ircdocs.horse/#numerics\n\nRPL_WELCOME (001)\n\n- Message: \"-client- :Welcome to the -networkname- Network, -nick-[!\u003cuser\u003e@\u003chost\u003e]\"\n\n- Usecase: After client registration\n\nRPL_YOURHOST (002)\n\n- Message: \"-client- :Your host is -servername-, running version -version-\"\n- Usecase: Part of the post-registration greeting\n\nRPL_CREATED (003)\n\n- Message: \"-client- :This server was created -datetime-\"\n- Usecase: Part of the post-registration greeting,\n\nRPL_MYINFO (004)\n\n- Message:\n- Usecase:\n\nRPL_ISUPPORT (005)\n\n- Message:\n- Usecase:\n\nRPL_BOUNCE (010)\n\n- Message:\n- Usecase:\n\nRPL_UMODEIS (221)\n\n- Message:\n- Usecase:\n\n  RPL_LUSERCLIENT (251)\n\n- Message:\n- Usecase:\n\n  RPL_LUSEROP (252)\n\n- Message:\n- Usecase:\n\n  RPL_LUSERUNKNOWN (253)\n\n- Message:\n- Usecase:\n\n  RPL_LUSERCHANNELS (254)\n\n- Message:\n- Usecase:\n\n  RPL_LUSERME (255)\n\n- Message:\n- Usecase:\n\n## ADMIN\n\nRPL_ADMINME (256)\n\n- Message:\n- Usecase:\n\n  RPL_ADMINLOC1 (257)\n\n- Message:\n- Usecase:\n\n  RPL_ADMINLOC2 (258)\n\n- Message:\n- Usecase:\n\n  RPL_ADMINEMAIL (259)\n\n- Message:\n- Usecase:\n\n#\n\nRPL_TRYAGAIN (263)\n\n- Message: \"-client- -command- :Please wait a while and try again.\"\n- Usecase: When a server drops a command without processing it, this numeric MUST be sent to inform the client.\n\n## LUSERS\n\nRPL_LOCALUSERS (265)\n\n- Message:\n- Usecase:\n\n  RPL_GLOBALUSERS (266)\n\n- Message:\n- Usecase:\n\n#\n\nRPL_WHOISCERTFP (276)\n\n- Message:\n- Usecase:\n\n  RPL_NONE (300)\n\n- Message:\n- Usecase:\n\n## AWAY\n\nRPL_AWAY (301)\n\n- Message:\n- Usecase:\n\n  RPL_USERHOST (302)\n\n- Message:\n- Usecase:\n\n  RPL_UNAWAY (305)\n\n- Message:\n- Usecase:\n\n## WHO\n\nRPL_NOWAWAY (306)\n\n- Message:\n- Usecase:\n\n  RPL_WHOREPLY (352)\n\n- Message:\n- Usecase:\n\n  RPL_ENDOFWHO (315)\n\n- Message:\n- Usecase:\n\n  RPL_WHOISREGNICK (307)\n\n- Message:\n- Usecase:\n\n  RPL_WHOISUSER (311)\n\n- Message:\n- Usecase:\n\n  RPL_WHOISSERVER (312)\n\n- Message:\n- Usecase:\n\n  RPL_WHOISOPERATOR (313)\n\n- Message:\n- Usecase:\n\n  RPL_WHOWASUSER (314)\n\n- Message:\n- Usecase:\n\n  RPL_WHOISIDLE (317)\n\n- Message:\n- Usecase:\n\nRPL_ENDOFWHOIS (318)\n\n- Message:\n- Usecase:\n\nRPL_WHOISCHANNELS (319)\n\n- Message:\n- Usecase:\n\nRPL_WHOISSPECIAL (320)\n\n- Message:\n- Usecase:\n\n## LIST\n\nRPL_LISTSTART (321)\n\n- Message: \"-client- Channel :Users Name\"\n- Usecase: this numeric marks the start of a channel list\n\nRPL_LIST (322)\n\n- Message: \"-client- -channel- -client count- :-topic-\"\n- Usecase: Sent as a reply to the LIST command,information about a channel to the client. -channel- is the name of the channel. -client count- is an integer indicating how many clients are joined to that channel. -topic- is the channel’s topic\n\nRPL_LISTEND (323)\n\n- Message: \"-client- :End of /LIST\"\n- Usecase: Sent as a reply to the LIST command, this numeric indicates the end of a LIST response.\n\n#\n\nRPL_CHANNELMODEIS (324)\n\n- Message:\n- Usecase:\n\n  RPL_CREATIONTIME (329)\n\n- Message:\n- Usecase:\n\nRPL_WHOISACCOUNT (330)\n\n- Message:\n- Usecase:\n\nRPL_NOTOPIC (331)\n\n- Message:\n- Usecase:\n\nRPL_TOPIC (332)\n\n- Message:\n- Usecase:\n\nRPL_TOPICWHOTIME (333)\n\n- Message:\n- Usecase:\n\nRPL_WHOISACTUALLY (338)\n\n- Message:\n- Usecase:\n\nRPL_INVITING (341)\n\n- Message:\n- Usecase:\n\n  RPL_INVITELIST (346)\n\n- Message:\n- Usecase:\n\n  RPL_ENDOFINVITELIST (347)\n\n- Message:\n- Usecase:\n\nRPL_EXCEPTLIST (348)\n\n- Message:\n- Usecase:\n\n  RPL_ENDOFEXCEPTLIST (349)\n\n- Message:\n- Usecase:\n\nRPL_VERSION (351)\n\n- Message:\n- Usecase:\n\nRPL_NAMREPLY (353)\n\n- Message:\n- Usecase:\n\n## NAMES\n\nRPL_ENDOFNAMES (366)\n\n- Message: \"-client- -channel- :End of /NAMES list\"\n- Usecase: Sent as a reply to the NAMES command, this numeric specifies the end of a list of channel member names.\n\nRPL_BANLIST (367)\n\n- Message:\n- Usecase:\n\nRPL_ENDOFBANLIST (368)\n\n- Message:\n- Usecase:\n\nRPL_ENDOFWHOWAS (369)\n\n- Message:\n- Usecase:\n\n## INFO\n\nRPL_INFO (371)\n\n- Message: \"-client- :-string-\"\n- Usecase: Sent as a reply to the INFO command, this numeric returns human-readable information describing the server: e.g. its version, list of authors and contributors, and any other miscellaneous information which may be considered to be relevant.\n\nRPL_ENDOFINFO (374)\n\n- Message: \"-client- :End of INFO list\"\n- Usecase: Indicates the end of an INFO response.\n\nRPL_MOTDSTART (375)\n\n- Message:\n- Usecase:\n\nRPL_MOTD (372)\n\n- Message:\n- Usecase:\n\nRPL_ENDOFMOTD (376)\n\n- Message:\n- Usecase:\n\nRPL_WHOISHOST (378)\n\n- Message:\n- Usecase:\n\nRPL_WHOISMODES (379)\n\n- Message:\n- Usecase:\n\nRPL_YOUREOPER (381)\n\n- Message:\n- Usecase:\n\nRPL_REHASHING (382)\n\n- Message:\n- Usecase:\n\nRPL_TIME (391)\n\n- Message:\n- Usecase:\n\n  ERR_UNKNOWNERROR (400)\n\n- Message: \"-client- -command-{ -subcommand-} :-info-\"\n- Usecase: Indicates that the given command/subcommand could not be processed\n\nERR_NOSUCHNICK (401)\n\n- Message: \"-client- -nickname- :No such nick/channel\"\n- Usecase: Indicates that no client can be found for the supplied nickname.\n\nERR_NOSUCHSERVER (402)\n\n- Message: \"-client- -server name- :No such server\"\n- Usecase: Indicates that the given server name does not exist.\n\nERR_NOSUCHCHANNEL (403)\n\n- Message: \"-client- -channel- :No such channel\"\n- Usecase: Indicates that no channel can be found for the supplied channel name.\n\nERR_CANNOTSENDTOCHAN (404)\n\n- Message: \"-client- -channel- :Cannot send to channel\"\n- Usecase: Indicates that the PRIVMSG / NOTICE could not be delivered to -channel-.\n\n  ERR_TOOMANYCHANNELS (405)\n\n- Message: \"-client- -channel- :You have joined too many channels\"\n- Usecase: Indicates that the JOIN command failed because the client has joined their maximum number of channels.\n\nERR_WASNOSUCHNICK (406)\n\n- Message: \"-client- :There was no such nickname\"\n- Usecase: Returned as a reply to WHOWAS to indicate there is no history information for that nickname.\n\nERR_NOORIGIN (409)\n\n- Message: \"-client- :No origin specified\"\n- Usecase: Indicates a PING or PONG message missing the originator parameter which is required by old IRC servers.\n\nERR_INPUTTOOLONG (417)\n\n- Message: \"-client- :Input line was too long\"\n- Usecase: Indicates a given line does not follow the specified size limits (512 bytes for the main section, 4094 or 8191 bytes for the tag section).\n\nERR_UNKNOWNCOMMAND (421)\n\n- Message: \"-client- -command- :Unknown command\"\n- Usecase: Sent to a registered client to indicate that the command they sent isn’t known by the server.\n\nERR_NOMOTD (422)\n\n- Message: \"-client- :MOTD File is missing\"\n- Usecase: Indicates that the Message of the Day file does not exist or could not be found.\n\nERR_ERRONEUSNICKNAME (432)\n\n- Message:\"-client- -nick- :Erroneus nickname\"\n- Usecase: Returned when a NICK command cannot be successfully completed as the desired nickname contains characters that are disallowed by the server.\n\nERR_NICKNAMEINUSE (433)\n\n- Message: \"-client- -nick- :Nickname is already in use\"\n- Usecase: Returned when a NICK command cannot be successfully completed as the desired nickname is already in use\n\nERR_USERNOTINCHANNEL (441)\n\n- Message: \"-client- -nick- -channel- :They aren't on that channel\"\n- Usecase: Returned when a client tries to perform a channel+nick affecting command, when the nick isn’t joined to the channel\n\nERR_NOTONCHANNEL (442)\n\n- Message: \"-client- -channel- :You're not on that channel\"\n- Usecase: Returned when a client tries to perform a channel-affecting command on a channel which the client isn’t a part of.\n\nERR_USERONCHANNEL (443)\n\n- Message: \"-client- -nick- -channel- :is already on channel\"\n- Usecase: Returned when a client tries to invite -nick- to a channel they’re already joined to.\n\nERR_NOTREGISTERED (451)\n\n- Message: \"-client- :You have not registered\"\n- Usecase: Returned when a client command cannot be parsed as they are not yet registered.\n\n  ERR_NEEDMOREPARAMS (461)\n\n- Message: \"-client- -command- :Not enough parameters\"\n- Usecase: Returned when a client command cannot be parsed because not enough parameters were supplied.\n\nERR_ALREADYREGISTERED (462)\n\n- Message: \"-client- :You may not reregister\"\n- Usecase: Returned when a client tries to change a detail that can only be set during registration (such as resending the PASS or USER after registration).\n\nERR_PASSWDMISMATCH (464)\n\n- Message: \"-client- :Password incorrect\"\n- Usecase: Returned to indicate that the connection could not be registered as the password was either incorrect or not supplied.\n\nERR_YOUREBANNEDCREEP (465)\n\n- Message: \"-client- :You are banned from this server.\"\n- Usecase: Returned to indicate that the server has been configured to explicitly deny connections from this client.\n\nERR_CHANNELISFULL (471)\n\n- Message: \"-client- -channel- :Cannot join channel (+l)\"\n- Usecase: Returned to indicate that a JOIN command failed because the client limit mode has been set and the maximum number of users are already joined to the channel.\n\nERR_UNKNOWNMODE (472)\n\n- Message: \"-client- -modechar- :is unknown mode char to me\"\n- Usecase: Indicates that a mode character used by a client is not recognized by the server. The text used in the last param of this message may vary.\n\nERR_INVITEONLYCHAN (473)\n\n- Message: \"-client- -channel- :Cannot join channel (+i)\"\n- Usecase: Returned to indicate that a JOIN command failed because the channel is set to [invite-only] mode and the client has not been invited to the channel or had an invite exemption set for them.\n\nERR_BANNEDFROMCHAN (474)\n\n- Message: \"-client- -channel- :Cannot join channel (+b)\"\n- Usecase: Returned to indicate that a JOIN command failed because the client has been banned from the channel and has not had a ban exemption set for them. The text used in the last param of this message may vary.\n\n  ERR_BADCHANNELKEY (475)\n\n- Message: \"-client- -channel- :Cannot join channel (+k)\"\n- Usecase: Returned to indicate that a JOIN command failed because the channel requires a key and the key was either incorrect or not supplied.\n\nERR_BADCHANMASK (476)\n\n- Message: \"-channel- :Bad Channel Mask\"\n- Usecase: Indicates the supplied channel name is not a valid.This is similar to, but stronger than, ERR_NOSUCHCHANNEL (403), which indicates that the channel does not exist, but that it may be a valid name.\n\nERR_NOPRIVILEGES (481)\n\n- Message: \"-client- :Permission Denied- You're not an IRC operator\"\n- Usecase: Indicates that the command failed because the user is not an IRC operator.\n\nERR_CHANOPRIVSNEEDED (482)\n\n- Message: \"-client- -channel- :You're not channel operator\"\n- Usecase: Indicates that a command failed because the client does not have the appropriate channel privileges.\n\nERR_CANTKILLSERVER (483)\n\n- Message: \"-client- :You cant kill a server!\"\n- Usecase: Indicates that a KILL command failed because the user tried to kill a server.\n\nERR_NOOPERHOST (491)\n\n- Message: \"-client- :No O-lines for your host\"\n- Usecase: Indicates that an OPER command failed because the server has not been configured to allow connections from this client’s host to become an operator.\n\nERR_UMODEUNKNOWNFLAG (501)\n\n- Message: \"-client- :Unknown MODE flag\"\n- Usecase: Indicates that a MODE command affecting a user contained a MODE letter that was not recognized.\n\nERR_USERSDONTMATCH (502)\n\n- Message: \"-client- :Cant change mode for other users\"\n- Usecase: Indicates that a MODE command affecting a user failed because they were trying to set or view modes for other users.\n\nERR_HELPNOTFOUND (524)\n\n- Message: \"-client- -subject- :No help available on this topic\"\n- Usecase: Indicates that a HELP command requested help on a subject the server does not know about.\n\nERR_INVALIDKEY (525)\n\n- Message: \"-client- -target chan- :Key is not well-formed\"\n- Usecase: Indicates the value of a key channel mode change (+k) was rejected.\n\nRPL_STARTTLS (670)\n\n- Message: \"-client- :STARTTLS successful, proceed with TLS handshake\"\n- Usecase: This numeric is used by the IRCv3 tls extension and indicates that the client may begin a TLS handshake.\n\nRPL_WHOISSECURE (671)\n\n- Message:\n- Usecase:\n\nERR_STARTTLS (691)\n\n- Message:\n- Usecase:\n\nERR_INVALIDMODEPARAM (696)\n\n- Message: \"-client- -target chan // user- -mode char- -parameter- :-description-\"\n- Usecase: Indicates that there was a problem with a mode parameter. Replaces various implementation-specific mode-specific numerics.\n\nRPL_HELPSTART (704)\n\n- Message: \"-client- -subject- :-first line of help section-\"\n- Usecase: Indicates the start of a reply to a HELP command.\n\nRPL_HELPTXT (705)\n\n- Message: \"-client- -subject- :-line of help text-\"\n- Usecase: Returns a line of HELP text to the client. Lines MAY be wrapped to a certain line length by the server.\n\nRPL_ENDOFHELP (706)\n\n- Message: \"-client- -subject- :-last line of help text-\"\n- Usecase: Returns the final HELP line to the client.\n\nERR_NOPRIVS (723)\n\n- Message: \"-client- -priv- :Insufficient oper privileges.\"\n- Usecase: Sent by a server to alert an IRC operator that they they do not have the specific operator privilege required by this server/network to perform the command or action they requested.\n\nRPL_LOGGEDIN (900)\n\n- Message: \"-client- -nick-!-user-@-host- -account- :You are now logged in as -username-\"\n- Usecase: This numeric indicates that the client was logged into the specified account\n\nRPL_LOGGEDOUT (901)\n\n- Message: \"-client- -nick-!-user-@-host- :You are now logged out\"\n- Usecase: This numeric indicates that the client was logged out of their account.\n\nERR_NICKLOCKED (902)\n\n- Message: \"-client- :You must use a nick assigned to you\"\n- Usecase:\n\nRPL_SASLSUCCESS (903)\n\n- Message:\n- Usecase:\n\nERR_SASLFAIL (904)\n\n- Message:\n- Usecase:\n\nERR_SASLTOOLONG (905)\n\n- Message:\n- Usecase:\n\nERR_SASLABORTED (906)\n\n- Message:\n- Usecase:\n\nERR_SASLALREADY (907)\n\n- Message:\n- Usecase:\n\nRPL_SASLMECHS (908)\n\n- Message:\n- Usecase:\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalexhd%2Fft_irc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdalexhd%2Fft_irc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalexhd%2Fft_irc/lists"}