Classes
Protocols
Constants
Functions
Macros
Types
Variables

### Classes

IRCObject
LineObject
NetApplication
TCPConnecting
TCPPort
TCPSystem
TCPTransport

### Protocols

<NetObject>
<NetPort>
<NetTransport>
<RunLoopEvents>
<TCPConnecting>

### Constants

### Functions

ExtractIRCHost
ExtractIRCNick
SeparateIRCNickAndHost

### Macros

### Types

RunLoopEventType

### Variables

ERR_ALREADYREGISTRED
ERR_BADCHANMASK
ERR_BADCHANNELKEY
ERR_BADMASK
ERR_BANLISTFULL
ERR_BANNEDFROMCHAN
ERR_CANNOTSENDTOCHAN
ERR_CANTKILLSERVER
ERR_CHANNELISFULL
ERR_CHANOPRIVSNEEDED
ERR_ERRONEUSNICKNAME
ERR_FILEERROR
ERR_INVITEONLYCHAN
ERR_KEYSET
ERR_NEEDMOREPARAMS
ERR_NICKCOLLISION
ERR_NICKNAMEINUSE
ERR_NOADMININFO
ERR_NOCHANMODES
ERR_NOLOGIN
ERR_NOMOTD
ERR_NONICKNAMEGIVEN
ERR_NOOPERHOST
ERR_NOORIGIN
ERR_NOPERMFORHOST
ERR_NOPRIVILEGES
ERR_NORECIPIENT
ERR_NOSERVICEHOST
ERR_NOSUCHCHANNEL
ERR_NOSUCHNICK
ERR_NOSUCHSERVER
ERR_NOSUCHSERVICE
ERR_NOTEXTTOSEND
ERR_NOTONCHANNEL
ERR_NOTOPLEVEL
ERR_NOTREGISTERED
ERR_PASSWDMISMATCH
ERR_RESTRICTED
ERR_SUMMONDISABLED
ERR_TOOMANYCHANNELS
ERR_TOOMANYTARGETS
ERR_UMODEUNKNOWNFLAG
ERR_UNAVAILRESOURCE
ERR_UNIQOPPRIVSNEEDED
ERR_UNKNOWNCOMMAND
ERR_UNKNOWNMODE
ERR_USERNOTINCHANNEL
ERR_USERONCHANNEL
ERR_USERSDISABLED
ERR_USERSDONTMATCH
ERR_WASNOSUCHNICK
ERR_WILDTOPLEVEL
ERR_YOUREBANNEDCREEP
ERR_YOUWILLBEBANNED
FatalNetException
IRCException
NetException
NetclassesErrorAborted
NetclassesErrorBadAddress
NetclassesErrorTimeout
RPL_ADMINEMAIL
RPL_ADMINLOC1
RPL_ADMINLOC2
RPL_ADMINME
RPL_AWAY
RPL_BANLIST
RPL_BOUNCE
RPL_CHANNELMODEIS
RPL_CLOSEEND
RPL_CLOSING
RPL_CREATED
RPL_ENDOFBANLIST
RPL_ENDOFEXCEPTLIST
RPL_ENDOFINFO
RPL_ENDOFINVITELIST
RPL_ENDOFLINKS
RPL_ENDOFMOTD
RPL_ENDOFNAMES
RPL_ENDOFSERVICES
RPL_ENDOFSTATS
RPL_ENDOFUSERS
RPL_ENDOFWHO
RPL_ENDOFWHOIS
RPL_ENDOFWHOWAS
RPL_EXCEPTLIST
RPL_INFO
RPL_INFOSTART
RPL_INVITELIST
RPL_INVITING
RPL_ISON
RPL_ISUPPORT
RPL_KILLDONE
RPL_LINKS
RPL_LIST
RPL_LISTEND
RPL_LISTSTART
RPL_LUSERCHANNELS
RPL_LUSERCLIENT
RPL_LUSERME
RPL_LUSEROP
RPL_LUSERUNKNOWN
RPL_MOTD
RPL_MOTDSTART
RPL_MYINFO
RPL_MYPORTIS
RPL_NAMREPLY
RPL_NONE
RPL_NOTOPIC
RPL_NOUSERS
RPL_NOWAWAY
RPL_REHASHING
RPL_SERVICE
RPL_SERVICEINFO
RPL_SERVLIST
RPL_SERVLISTEND
RPL_STATSBLINE
RPL_STATSCLINE
RPL_STATSCOMMANDS
RPL_STATSDLINE
RPL_STATSHLINE
RPL_STATSILINE
RPL_STATSKLINE
RPL_STATSLINKINFO
RPL_STATSLLINE
RPL_STATSNLINE
RPL_STATSOLINE
RPL_STATSPING
RPL_STATSQLINE
RPL_STATSSLINE
RPL_STATSUPTIME
RPL_STATSVLINE
RPL_STATSYLINE
RPL_SUMMONING
RPL_TIME
RPL_TOPIC
RPL_TRACECLASS
RPL_TRACECONNECTING
RPL_TRACEEND
RPL_TRACEHANDSHAKE
RPL_TRACELINK
RPL_TRACELOG
RPL_TRACENEWTYPE
RPL_TRACEOPERATOR
RPL_TRACERECONNECT
RPL_TRACESERVER
RPL_TRACESERVICE
RPL_TRACEUNKNOWN
RPL_TRACEUSER
RPL_TRYAGAIN
RPL_UMODEIS
RPL_UNAWAY
RPL_UNIQOPIS
RPL_USERHOST
RPL_USERS
RPL_USERSSTART
RPL_VERSION
RPL_WELCOME
RPL_WHOISCHANNELS
RPL_WHOISCHANOP
RPL_WHOISIDLE
RPL_WHOISOPERATOR
RPL_WHOISSERVER
RPL_WHOISUSER
RPL_WHOREPLY
RPL_WHOWASUSER
RPL_YOUREOPER
RPL_YOURESERVICE
RPL_YOURHOST

Up

# IRCObject reference

### Authors

Andrew Ruder (`aeruder@ksu.edu`)

Version: Revision 1

Date: November 8, 2003

Copyright: (C) Andrew Ruder

### Contents -

1. Software documentation for the IRCObject class
2. Software documentation for the IRCObject(Callbacks) category
3. Software documentation for the IRCObject(LowLevel) category
4. Software documentation for the NSString(IRCAddition) category
5. IRCObject variables
6. IRCObject functions

# Software documentation for the IRCObject class

## IRCObject : LineObject

> Declared in:
>   IRCObject.h

IRCObject handles all aspects of an IRC connection. In almost all cases, you will want to override this class and implement just the callback methods specified in IRCObject(Callbacks) to handle everything.

A lot of arguments may not contain spaces. The general procedure on processing these arguments is that the method will cut the string off at the first space and use the part of the string before the space and fail only if that string is still invalid. Try to avoid passing strings with spaces as the arguments to the methods that warn not to.

Instance Variables

### Method summary

- -CTCPReplyReceived:withArgument:to:from:
- -CTCPRequestReceived:withArgument:to:from:
- -actionReceived:to:from:
- -channelJoined:from:
- -channelParted:withMessage:from:
- -couldNotRegister:
- -errorReceived:
- -invitedTo:from:
- -messageReceived:to:from:
- -modeChanged:on:withParams:from:
- -newNickNeededWhileRegistering
- -nickChangedTo:from:
- -noticeReceived:to:from:
- -numericCommandReceived:withParams:from:
- -pingReceivedWithArgument:from:
- -pongReceivedWithArgument:from:
- -quitIRCWithMessage:from:
- -registeredWithServer
- -topicChangedTo:in:from:
- -userKicked:outOf:for:from:
- -wallopsReceived:from:
- -lineReceived:
- -writeString:,...
- -areUsersOn:
- -becomeOperatorWithName:withPassword:
- -caseInsensitiveCompare:to:
- -changeNick:
- -connected
- -encoding
- -encodingForTarget:
- -errorString
- -initWithNickname:withUserName:withRealName:withPassword:
- -invite:to:
- -joinChannel:withPassword:
- -kick:offOf:for:
- -kill:withComment:
- -listChannel:onServer:
- -listWho:onlyOperators:
- -lowercasingSelector
- -nick
- -partChannel:withMessage:
- -password
- -quitWithMessage:
- -realName
- -removeEncodingForTarget:
- -requestAdministratorOnServer:
- -requestInfoOnServer:
- -requestMOTDOnServer:
- -requestNamesOnChannel:
- -requestServerLink:from:
- -requestServerRehash
- -requestServerRestart
- -requestServerShutdown
- -requestServerStats:for:
- -requestServerToConnect:to:onPort:
- -requestSizeInformationFromServer:andForwardTo:
- -requestTimeOnServer:
- -requestTraceOnServer:
- -requestUserInfoOnServer:
- -requestVersionOfServer:
- -sendAction:to:
- -sendCTCPReply:withArgument:to:
- -sendCTCPRequest:withArgument:to:
- -sendMessage:to:
- -sendNotice:to:
- -sendPingWithArgument:
- -sendPongWithArgument:
- -sendWallops:
- -setAwayWithMessage:
- -setEncoding:
- -setEncoding:forTarget:
- -setLowercasingSelector:
- -setMode:on:withParams:
- -setNick:
- -setPassword:
- -setRealName:
- -setTopicForChannel:to:
- -setUserName:
- -targetsWithEncodings
- -userName
- -whois:onServer:
- -whowas:onServer:withNumberEntries:

### areUsersOn:

- (id) areUsersOn: (NSString*)userList;
Requests information on the precense of certain nicknames listed in userList on the network. userList is a space separated list of users. For each user that is present, its name will be added to the reply through the numeric message RPL_ISON. See RFC 1459 for more information on the ISON message.

### becomeOperatorWithName: withPassword:

- (id) becomeOperatorWithName: (NSString*)aName withPassword: (NSString*)aPassword;
This method attempts to become an IRC operator with name aName and password aPassword. Neither may contain spaces. This is a totally different concept than channel operators since it refers to operators of the server as a whole. Please see RFC 1459 for more information on the OPER command.

### caseInsensitiveCompare: to:

- (NSComparisonResult) caseInsensitiveCompare: (NSString*)aString1 to: (NSString*)aString2;
Use the lowercasingSelector to compare two strings. Returns a NSComparisonResult (NSOrderedAscending, NSOrderedSame or NSOrderedDescending)

### changeNick:

- (id) changeNick: (NSString*)aNick;
Sets the nickname to the aNick. This method is quite similar to -setNick: but this will also actually send the nick change request to the server if connected, and will only affect the nickname stored by the object (which is returned with -nick) if the the name change was successful or the object is not yet registered/connected. Please see RFC 1459 for more information on the NICK command.

### connected

- (BOOL) connected;
Returns `YES` when the IRC object is fully connected and registered with the IRC server. Returns `NO` if the connection has not made or this connection has not fully registered with the server.

### encoding

- (NSStringEncoding) encoding;
Returns the encoding currently being used by the connection.

### encodingForTarget:

- (NSStringEncoding) encodingForTarget: (NSString*)aTarget;
Return the encoding for aTarget.

### errorString

- (NSString*) errorString;
Returns a string that describes the last error that happened.

### initWithNickname: withUserName: withRealName: withPassword:

- (id) initWithNickname: (NSString*)aNickname withUserName: (NSString*)aUser withRealName: (NSString*)aRealName withPassword: (NSString*)aPassword;
This is a designated initialiser for the class.
Initializes the IRCObject and retains the arguments for the next connection. Uses -setNick: , -setUserName: , -setRealName: , and -setPassword: to save the arguments.

### invite: to:

- (id) invite: (NSString*)aPerson to: (NSString*)aChannel;
This message will invite aPerson to the channel specified by aChannel. Neither may contain spaces and both are required. Please refer to RFC 1459 concerning the INVITE command for additional information.

### joinChannel: withPassword:

- (id) joinChannel: (NSString*)aChannel withPassword: (NSString*)aPassword;
Joins the channel aChannel with an optional password of aPassword. Neither may contain spaces, and both may be comma separated for multiple channels/passwords. If there is one or more passwords, it should match the number of channels specified by aChannel. Please see RFC 1459 for more information on the JOIN command.

### kick: offOf: for:

- (id) kick: (NSString*)aPerson offOf: (NSString*)aChannel for: (NSString*)aReason;
Kicks the user aPerson off of the channel aChannel for the reason specified in aReason. aReason may contain spaces and is optional. If omitted the server will most likely supply a default message. aPerson and aChannel are required and may not contain spaces. Please see the KICK command for additional information in RFC 1459.

### kill: withComment:

- (id) kill: (NSString*)aPerson withComment: (NSString*)aComment;
Used to kill the connection to aPerson with a possible comment aComment. This is often used by servers when duplicate nicknames are found and may be available to the IRC operators. aComment is optional and aPerson may not contain spaces. Please see RFC 1459 for additional information on the KILL command.

### listChannel: onServer:

- (id) listChannel: (NSString*)aChannel onServer: (NSString*)aServer;
Lists channel information about the channel specified by aChannel on the server aServer. aChannel may be a comma separated list and may not contain spaces. aServer is optional. If aChannel is omitted, then all channels on the server will be listed. Please refer to RFC 1459 for additional information on the LIST command.

### listWho: onlyOperators:

- (id) listWho: (NSString*)aMask onlyOperators: (BOOL)operators;
Requests a list of users with a matching mask aMask against their username and/or host. This can optionally be done just against the IRC operators. The mask aMask is optional and may not contain spaces. Please see RFC 1459 for more information regarding the WHO message.

### lowercasingSelector

- (SEL) lowercasingSelector;
Return the lowercasing selector. See -setLowercasingSelector: for more information on the use of this lowercasing selector.

### nick

- (NSString*) nick;
Returns the nickname that this object will use on connecting next time.

### partChannel: withMessage:

- (id) partChannel: (NSString*)aChannel withMessage: (NSString*)aMessage;
Leaves the channel aChannel with the optional message aMessage. aMessage may contain spaces, and aChannel may not. aChannel may also be a comma separated list of channels. Please see RFC 1459 for more information on the PART command.

### password

- (NSString*) password;
Returns the password that will be used upon the next connection to a IRC server.

### quitWithMessage:

- (id) quitWithMessage: (NSString*)aMessage;
Quits IRC with an optional message. aMessage can have spaces. If aMessage is `nil` or zero-length, the server will often provide its own message. Please see RFC 1459 for more information on the QUIT command.

### realName

- (NSString*) realName;
Returns the real name that will be used upon the next connection.

### removeEncodingForTarget:

- (void) removeEncodingForTarget: (NSString*)aTarget;
Remove the encoding for aTarget.

### requestAdministratorOnServer:

- (id) requestAdministratorOnServer: (NSString*)aServer;
Request the name of the administrator on the optional server aServer. aServer may not contain spaces. Please see RFC 1459 for more information on the ADMIN command.

### requestInfoOnServer:

- (id) requestInfoOnServer: (NSString*)aServer;
Requests information on a server aServer. aServer is optional and may not contain spaces. Please see RFC 1459 for more information on the INFO command.

### requestMOTDOnServer:

- (id) requestMOTDOnServer: (NSString*)aServer;
Requests the Message-Of-The-Day from server aServer. aServer is optional and may not contain spaces if present. The message of the day is returned through the RPL_MOTD numeric command.

### requestNamesOnChannel:

- (id) requestNamesOnChannel: (NSString*)aChannel;
Requests the names on a channel aChannel. If aChannel is not specified, all users in all channels will be returned. The information will be returned via a RPL_NAMREPLY numeric message. See the RFC 1459 for more information on the NAMES command.

### requestServerLink: from:

- (id) requestServerLink: (NSString*)aLink from: (NSString*)aServer;
Used to list servers connected to optional aServer with an optional mask aLink. Neither may contain spaces. See the RFC 1459 for more information on the LINKS command.

### requestServerRehash

- (id) requestServerRehash;
Used to request that the current server reread its configuration files. Please see RFC 1459 for more information on the REHASH command.

### requestServerRestart

- (id) requestServerRestart;
Requests a restart of a server. Please see RFC 1459 for additional information on the RESTART command.

### requestServerShutdown

- (id) requestServerShutdown;
Used to request a shutdown of a server. Please see RFC 1459 for additional information on the DIE command.

### requestServerStats: for:

- (id) requestServerStats: (NSString*)aServer for: (NSString*)query;
Returns a series of statistics from aServer. Specific queries can be made with the optional query argument. Neither may contain spaces and both are optional. See RFC 1459 for more information on the STATS message

### requestServerToConnect: to: onPort:

- (id) requestServerToConnect: (NSString*)aServer to: (NSString*)connectServer onPort: (NSString*)aPort;
Requests that aServer connects to connectServer on port aPort. aServer and aPort are optional and none may contain spaces. See RFC 1459 for more information on the CONNECT command.

### requestSizeInformationFromServer: andForwardTo:

- (id) requestSizeInformationFromServer: (NSString*)aServer andForwardTo: (NSString*)anotherServer;
Requests size information from an optional aServer and optionally forwards it to anotherServer. See RFC 1459 for more information on the LUSERS command

### requestTimeOnServer:

- (id) requestTimeOnServer: (NSString*)aServer;
Requests the local time from the optional server aServer. aServer may not contain spaces. See RFC 1459 for more information on the TIME command.

### requestTraceOnServer:

- (id) requestTraceOnServer: (NSString*)aServer;
This message will request the route to a specific server from a client. aServer is optional and may not contain spaces; please see RFC 1459 for more information on the TRACE command.

### requestUserInfoOnServer:

- (id) requestUserInfoOnServer: (NSString*)aServer;
Requests a list of users logged into aServer. aServer is optional and may contain spaces. Please see RFC 1459 for additional information on the USERS message.

### requestVersionOfServer:

- (id) requestVersionOfServer: (NSString*)aServer;
Queries the version of optional aServer. Please see RFC 1459 for more information on the VERSION command.

### sendAction: to:

- (id) sendAction: (NSString*)anAction to: (NSString*)aReceiver;
Sends an action anAction to the receiver aReceiver. This is similar to a message but will often be displayed such as:
<nick> <anAction>
and can be used effectively to display things that you are doing rather than saying. anAction may contain spaces.

### sendCTCPReply: withArgument: to:

- (id) sendCTCPReply: (NSString*)aCTCP withArgument: (NSString*)args to: (NSString*)aPerson;
Sends a CTCP aCTCP reply to aPerson with the argument args. args may contain spaces and is optional while the rest may not. This method should be used to respond to a CTCP message sent by another client. See -sendCTCPRequest:withArgument:to:

### sendCTCPRequest: withArgument: to:

- (id) sendCTCPRequest: (NSString*)aCTCP withArgument: (NSString*)args to: (NSString*)aPerson;
Sends a CTCP aCTCP request to aPerson with an optional argument args. args may contain a space while the rest may not. This should be used to request CTCP information from another client and never for responding. See -sendCTCPReply:withArgument:to:

### sendMessage: to:

- (id) sendMessage: (NSString*)aMessage to: (NSString*)aReceiver;
Sends a message aMessage to aReceiver. aReceiver may be a nickname or a channel name. aMessage may contain spaces. This is used to carry out the basic communication over IRC. Please see RFC 1459 for more information on the PRIVMSG message.

### sendNotice: to:

- (id) sendNotice: (NSString*)aNotice to: (NSString*)aReceiver;
Sends a notice aNotice to aReceiver. aReceiver may not contain a space. This is generally not used except for system messages and should rarely be used by a regular client. Please see RFC 1459 for more information on the NOTICE command.

### sendPingWithArgument:

- (id) sendPingWithArgument: (NSString*)aString;
Requests a PONG message from the server. The argument aString is essential but may contain spaces. The server will respond immediately with a PONG message with the same argument. This commnd is rarely needed by a client, but is sent out often by servers to ensure connectivity of clients. Please see RFC 1459 for more information on the PING command.

### sendPongWithArgument:

- (id) sendPongWithArgument: (NSString*)aString;
Used to respond to a PING message. The argument sent with the PING message should be the argument specified by aString. aString is required and may contain spaces. See RFC 1459 for more informtion regarding the PONG command.

### sendWallops:

- (id) sendWallops: (NSString*)aMessage;
Sends a message to all operators currently online. The actual implementation may vary from server to server in regards to who can send and receive it. aMessage is the message to be sent and may contain spaces. Please see RFC 1459 for more information regarding the WALLOPS command.

### setAwayWithMessage:

- (id) setAwayWithMessage: (NSString*)aMessage;
Sets status to away with the message aMessage. While away, if a user should send you a message, aMessage will be returned to them to explain your absence. aMessage may contain spaces. If omitted, the user is marked as being present. Please refer to the AWAY command in RFC 1459 for additional information.

### setEncoding:

- (id) setEncoding: (NSStringEncoding)aEncoding;
Sets the encoding that will be used for incoming as well as outgoing messages. aEncoding should be an 8-bit encoding for a typical IRC server. Uses the system default by default.

### setEncoding: forTarget:

- (id) setEncoding: (NSStringEncoding)aEncoding forTarget: (NSString*)aTarget;
Sets the encoding that will be used for incoming as well as outgoing messages to a specific target. aEncoding should be an 8-bit encoding for a typical IRC server. Uses the encoding set with setEncoding: by default.

### setLowercasingSelector:

- (id) setLowercasingSelector: (SEL)aSelector;
Set the lowercasing selector. This is the selector that is called on a NSString to get the lowercase form. Used to determine if two nicknames are equivalent. Generally aSelector would be either @selector(lowercaseString) or @selector(lowercaseIRCString). By default, this is lowercaseIRCString but will be autodetected from the server if possible. It will be reset to lowercaseIRCString upon reconnection.

### setMode: on: withParams:

- (id) setMode: (NSString*)aMode on: (NSString*)anObject withParams: (NSArray*)aList;
Used to query or set the mode on anObject to the mode specified by aMode. Flags can be added by adding a '+' to the aMode string or removed by adding a '-' to the aMode string. These flags may optionally have arguments specified in aList and may be applied to the object specified by anObject. Examples:

     aMode: @"+i" anObject: @"#gnustep" withParams: nil
       sets the channel "#gnustep" to invite only.
     aMode: @"+o" anObject: @"#gnustep" withParams: (@"aeruder")
       makes aeruder a channel operator of #gnustep

Many servers have differing implementations of these modes and may have various modes available to users. None of the arguments may contain spaces. Please refer to RFC 1459 for additional information on the MODE message.

### setNick:

- (id) setNick: (NSString*)aNickname;
Sets the nickname that this object will attempt to use upon a connection. Do not use this to change the nickname once the object is connected, this is only used when it is actually connecting. This method returns `nil` if aNickname is invalid and will set the error string accordingly. aNickname is invalid if it contains a space or is zero-length.

### setPassword:

- (id) setPassword: (NSString*)aPass;
Sets the password that will be used upon connecting to the IRC server. aPass can be `nil` or zero-length, in which case no password shall be used. aPass may not contain a space. Will return `nil` and set the error string if this fails.

### setRealName:

- (id) setRealName: (NSString*)aRealName;
Sets the real name that will be passed to the IRC server on the next connection. If aRealName is `nil` or zero-length, the name "John Doe" shall be used. This method will always succeed.

### setTopicForChannel: to:

- (id) setTopicForChannel: (NSString*)aChannel to: (NSString*)aTopic;
Sets the topic for channel aChannel to aTopic. If the aTopic is omitted, the topic for aChannel will be returned through the RPL_TOPIC numeric message. aChannel may not contain spaces. Please refer to the TOPIC command in RFC 1459 for more information.

### setUserName:

- (id) setUserName: (NSString*)aUser;
Sets the user name that this object will give to the server upon the next connection. If aUser is invalid, it will use the user name of "netclasses". aUser should not contain spaces. This method will always succeed.

### targetsWithEncodings

- (NSArray*) targetsWithEncodings;
Return all targets with a specific encoding.

### userName

- (NSString*) userName;
Returns the user name that will be used upon the next connection.

### whois: onServer:

- (id) whois: (NSString*)aPerson onServer: (NSString*)aServer;
Requests information on a user aPerson. aPerson may also be a comma separated list for additional users. aServer is optional and neither argument may contain spaces. Refer to RFC 1459 for additional information on the WHOIS command.

### whowas: onServer: withNumberEntries:

- (id) whowas: (NSString*)aPerson onServer: (NSString*)aServer withNumberEntries: (NSString*)aNumber;
Requests information on a user aPerson that is no longer connected to the server aServer. A possible maximum number of entries aNumber may be displayed. All arguments may not contain spaces and aServer and aNumber are optional. Please refer to RFC 1459 for more information regarding the WHOWAS message.

## Instance Variables for IRCObject Class

### connected

@protected BOOL connected;
Description forthcoming.

### defaultEncoding

@protected NSStringEncoding defaultEncoding;
Description forthcoming.

### errorString

@protected NSString* errorString;
Description forthcoming.

### lowercasingSelector

@protected SEL lowercasingSelector;
Description forthcoming.

### nick

@protected NSString* nick;
Description forthcoming.

### password

@protected NSString* password;
Description forthcoming.

### realName

@protected NSString* realName;
Description forthcoming.

### targetToEncoding

@protected NSMapTable* targetToEncoding;
Description forthcoming.

### targetToOriginalTarget

@protected NSMutableDictionary* targetToOriginalTarget;
Description forthcoming.

### userName

@protected NSString* userName;
Description forthcoming.

# Software documentation for the IRCObject(Callbacks) category

## IRCObject(Callbacks)

> Declared in:
>   IRCObject.h

This category represents all the callback methods in IRCObject. You can override these with a subclass. All of them do not do anything especially important by default, so feel free to not call the default implementation. On any method ending with an argument like 'from: (NSString *)aString', aString could be in the format of nickname!host. Please see the documentation for ExtractIRCNick() , ExtractIRCHost() , and SeparateIRCNickAndHost() for more information.

### Method summary

- -CTCPReplyReceived:withArgument:to:from:
- -CTCPRequestReceived:withArgument:to:from:
- -actionReceived:to:from:
- -channelJoined:from:
- -channelParted:withMessage:from:
- -couldNotRegister:
- -errorReceived:
- -invitedTo:from:
- -messageReceived:to:from:
- -modeChanged:on:withParams:from:
- -newNickNeededWhileRegistering
- -nickChangedTo:from:
- -noticeReceived:to:from:
- -numericCommandReceived:withParams:from:
- -pingReceivedWithArgument:from:
- -pongReceivedWithArgument:from:
- -quitIRCWithMessage:from:
- -registeredWithServer
- -topicChangedTo:in:from:
- -userKicked:outOf:for:from:
- -wallopsReceived:from:

### CTCPReplyReceived: withArgument: to: from:

- (id) CTCPReplyReceived: (NSString*)aCTCP withArgument: (NSString*)anArgument to: (NSString*)aReceiver from: (NSString*)aPerson;
Called when a CTCP reply has been received. The CTCP reply type is stored in aCTCP with its argument in anArgument. The actual location that the CTCP reply was sent is stored in aReceiver and the person who sent it is stored in aPerson.

### CTCPRequestReceived: withArgument: to: from:

- (id) CTCPRequestReceived: (NSString*)aCTCP withArgument: (NSString*)anArgument to: (NSString*)aReceiver from: (NSString*)aPerson;
Called when a CTCP request has been received. The CTCP request type is stored in aCTCP (could be such things as DCC, PING, VERSION, etc.) and the argument is stored in anArgument. The actual location that the CTCP request is sent is stored in aReceiver and the person who sent it is stored in aPerson.

### actionReceived: to: from:

- (id) actionReceived: (NSString*)anAction to: (NSString*)aReceiver from: (NSString*)aSender;
Called when an action has been received. The action is stored in anAction and the sender is stored in aSender. The person or channel that the action is addressed to is stored in aReceiver.

### channelJoined: from:

- (id) channelJoined: (NSString*)aChannel from: (NSString*)aJoiner;
Called when someone joins a channel. The channel is stored in aChannel and the person who joined is stored in aJoiner.

### channelParted: withMessage: from:

- (id) channelParted: (NSString*)aChannel withMessage: (NSString*)aMessage from: (NSString*)aParter;
Called when someone leaves a channel. The channel is stored in aChannel and the person who left is stored in aParter. The parting message will be stored in aMessage.

### couldNotRegister:

- (id) couldNotRegister: (NSString*)aReason;
This method will be called if a connection cannot register for whatever reason. This reason will be outlined in aReason, but the best way to track the reason is to watch the numeric commands being received in the -numericCommandReceived:withParams:from: method.

### errorReceived:

- (id) errorReceived: (NSString*)anError;
Called when an IRC error has occurred. This is a message sent by the server and its argument is stored in anError. Typically you will be disconnected after receiving one of these.

### invitedTo: from:

- (id) invitedTo: (NSString*)aChannel from: (NSString*)anInviter;
Called when the client has been invited to another channel aChannel by anInviter .

### messageReceived: to: from:

- (id) messageReceived: (NSString*)aMessage to: (NSString*)aReceiver from: (NSString*)aSender;
Called when a message aMessage is received from aSender. The person or channel that the message is addressed to is stored in aReceiver.

### modeChanged: on: withParams: from:

- (id) modeChanged: (NSString*)aMode on: (NSString*)anObject withParams: (NSArray*)paramList from: (NSString*)aPerson;
Called when the mode has been changed on anObject. The actual mode change is stored in aMode and the parameters are stored in paramList. The person who changed the mode is stored in aPerson. Consult RFC 1459 for further information.

### newNickNeededWhileRegistering

- (id) newNickNeededWhileRegistering;
Called when a new nickname was needed while registering because the other one was either invalid or already taken. Without overriding this, this method will simply try adding a underscore onto it until it gets in. This method can be overridden to do other nickname-changing schemes. The new nickname should be directly set with -changeNick:

### nickChangedTo: from:

- (id) nickChangedTo: (NSString*)newName from: (NSString*)aPerson;
Called when someone changes his/her nickname. The new nickname is stored in newName and the old name will be stored in aPerson.

### noticeReceived: to: from:

- (id) noticeReceived: (NSString*)aNotice to: (NSString*)aReceiver from: (NSString*)aSender;
Called when a notice aNotice is received from aSender. The person or channel that the notice is addressed to is stored in aReceiver.

### numericCommandReceived: withParams: from:

- (id) numericCommandReceived: (NSString*)aCommand withParams: (NSArray*)paramList from: (NSString*)aSender;
Called when a numeric command has been received. These are 3 digit numerical messages stored in aCommand with a number of parameters stored in paramList. The sender, almost always the server, is stored in aSender. These are often used for replies to requests such as user lists and channel lists and other times they are used for errors.

### pingReceivedWithArgument: from:

- (id) pingReceivedWithArgument: (NSString*)anArgument from: (NSString*)aSender;
Called when a ping is received. These pings are generally sent by the server. The correct method of handling these would be to respond to them with -sendPongWithArgument: using anArgument as the argument. The server that sent the ping is stored in aSender.

### pongReceivedWithArgument: from:

- (id) pongReceivedWithArgument: (NSString*)anArgument from: (NSString*)aSender;
Called when a pong is received. These are generally in answer to a ping sent with -sendPingWithArgument: The argument anArgument is generally the same as the argument sent with the ping. aSender is the server that sent out the pong.

### quitIRCWithMessage: from:

- (id) quitIRCWithMessage: (NSString*)aMessage from: (NSString*)aQuitter;
Called when someone quits IRC. Their parting message will be stored in aMessage and the person who quit will be stored in aQuitter.

### registeredWithServer

- (id) registeredWithServer;
This method will be called when the connection is fully registered with the server. At this point it is safe to start joining channels and carrying out other typical IRC functions.

### topicChangedTo: in: from:

- (id) topicChangedTo: (NSString*)aTopic in: (NSString*)aChannel from: (NSString*)aPerson;
Called when the topic is changed in a channel aChannel to aTopic by aPerson.

### userKicked: outOf: for: from:

- (id) userKicked: (NSString*)aPerson outOf: (NSString*)aChannel for: (NSString*)aReason from: (NSString*)aKicker;
Called when a user has been kicked out of a channel. The person's nickname is stored in aPerson and the channel he/she was kicked out of is in aChannel. aReason is the kicker-supplied reason for the removal. aKicker is the person who did the kicking. This will not be accompanied by a -channelParted:withMessage:from: message, so it is safe to assume they are no longer part of the channel after receiving this method.

### wallopsReceived: from:

- (id) wallopsReceived: (NSString*)aMessage from: (NSString*)aSender;
Called when a Wallops has been received. The message is stored in aMessage and the person who sent it is stored in aSender.

# Software documentation for the IRCObject(LowLevel) category

## IRCObject(LowLevel)

> Declared in:
>   IRCObject.h

This is the lowlevel interface to IRCObject. One method is a callback for when the object receives a raw message from the connection, the other is a method used to write raw messages across the connection

### Method summary

- -lineReceived:
- -writeString:,...

### lineReceived:

- (id) lineReceived: (NSData*)aLine;
Handles an incoming line of text from the IRC server by parsing it and doing the appropriate actions as well as calling any needed callbacks. See [LineObject -lineReceived:] for more information.

### writeString: ,...

- (id) writeString: (NSString*)format,...;
Writes a formatted string to the connection. This string will not pass through any of the callbacks.

# Software documentation for the NSString(IRCAddition) category

## NSString(IRCAddition)

> Declared in:
>   IRCObject.h

Additions of NSString that are used to upper/lower case strings taking into account that on many servers {}|^ are lowercase forms of []\~. Try not to depend on this fact, some servers nowadays are drifting away from this idea and will treat them as different characters entirely.

### Method summary

- -lowercaseIRCString
- -lowercaseStrictRFC1459IRCString
- -uppercaseIRCString
- -uppercaseStrictRFC1459IRCString

### lowercaseIRCString

- (NSString*) lowercaseIRCString;
Returns a lowercased string (and converts any of []\~ characters found to {}|^ respectively).

### lowercaseStrictRFC1459IRCString

- (NSString*) lowercaseStrictRFC1459IRCString;
Returns a lowercased string (and converts any of []\ characters found to {}| respectively). The original RFC 1459 forgot to include these and thus this method is included.

### uppercaseIRCString

- (NSString*) uppercaseIRCString;
Returns an uppercased string (and converts any of {}|^ characters found to []\~ respectively).

### uppercaseStrictRFC1459IRCString

- (NSString*) uppercaseStrictRFC1459IRCString;
Returns a uppercased string (and converts any of {}| characters found to []\ respectively). The original RFC 1459 forgot to include these and thus this method is included.

# IRCObject variables

### ERR_ALREADYREGISTRED

NSString* ERR_ALREADYREGISTRED;
462 - Please see RFC 1459 for additional information.

### ERR_BADCHANMASK

NSString* ERR_BADCHANMASK;
476 - Please see RFC 1459 for additional information.

### ERR_BADCHANNELKEY

NSString* ERR_BADCHANNELKEY;
475 - Please see RFC 1459 for additional information.

### ERR_BADMASK

NSString* ERR_BADMASK;
415 - Please see RFC 1459 for additional information.

### ERR_BANLISTFULL

NSString* ERR_BANLISTFULL;
478 - Please see RFC 1459 for additional information.

### ERR_BANNEDFROMCHAN

NSString* ERR_BANNEDFROMCHAN;
474 - Please see RFC 1459 for additional information.

### ERR_CANNOTSENDTOCHAN

NSString* ERR_CANNOTSENDTOCHAN;
404 - Please see RFC 1459 for additional information.

### ERR_CANTKILLSERVER

NSString* ERR_CANTKILLSERVER;
483 - Please see RFC 1459 for additional information.

### ERR_CHANNELISFULL

NSString* ERR_CHANNELISFULL;
471 - Please see RFC 1459 for additional information.

### ERR_CHANOPRIVSNEEDED

NSString* ERR_CHANOPRIVSNEEDED;
482 - Please see RFC 1459 for additional information.

### ERR_ERRONEUSNICKNAME

NSString* ERR_ERRONEUSNICKNAME;
432 - Please see RFC 1459 for additional information.

### ERR_FILEERROR

NSString* ERR_FILEERROR;
424 - Please see RFC 1459 for additional information.

### ERR_INVITEONLYCHAN

NSString* ERR_INVITEONLYCHAN;
473 - Please see RFC 1459 for additional information.

### ERR_KEYSET

NSString* ERR_KEYSET;
467 - Please see RFC 1459 for additional information.

### ERR_NEEDMOREPARAMS

NSString* ERR_NEEDMOREPARAMS;
461 - Please see RFC 1459 for additional information.

### ERR_NICKCOLLISION

NSString* ERR_NICKCOLLISION;
436 - Please see RFC 1459 for additional information.

### ERR_NICKNAMEINUSE

NSString* ERR_NICKNAMEINUSE;
433 - Please see RFC 1459 for additional information.

### ERR_NOADMININFO

NSString* ERR_NOADMININFO;
423 - Please see RFC 1459 for additional information.

### ERR_NOCHANMODES

NSString* ERR_NOCHANMODES;
477 - Please see RFC 1459 for additional information.

### ERR_NOLOGIN

NSString* ERR_NOLOGIN;
444 - Please see RFC 1459 for additional information.

### ERR_NOMOTD

NSString* ERR_NOMOTD;
422 - Please see RFC 1459 for additional information.

### ERR_NONICKNAMEGIVEN

NSString* ERR_NONICKNAMEGIVEN;
431 - Please see RFC 1459 for additional information.

### ERR_NOOPERHOST

NSString* ERR_NOOPERHOST;
491 - Please see RFC 1459 for additional information.

### ERR_NOORIGIN

NSString* ERR_NOORIGIN;
409 - Please see RFC 1459 for additional information.

### ERR_NOPERMFORHOST

NSString* ERR_NOPERMFORHOST;
463 - Please see RFC 1459 for additional information.

### ERR_NOPRIVILEGES

NSString* ERR_NOPRIVILEGES;
481 - Please see RFC 1459 for additional information.

### ERR_NORECIPIENT

NSString* ERR_NORECIPIENT;
411 - Please see RFC 1459 for additional information.

### ERR_NOSERVICEHOST

NSString* ERR_NOSERVICEHOST;
492 - Please see RFC 1459 for additional information.

### ERR_NOSUCHCHANNEL

NSString* ERR_NOSUCHCHANNEL;
403 - Please see RFC 1459 for additional information.

### ERR_NOSUCHNICK

NSString* ERR_NOSUCHNICK;
401 - Please see RFC 1459 for additional information.

### ERR_NOSUCHSERVER

NSString* ERR_NOSUCHSERVER;
402 - Please see RFC 1459 for additional information.

### ERR_NOSUCHSERVICE

NSString* ERR_NOSUCHSERVICE;
408 - Please see RFC 1459 for additional information.

### ERR_NOTEXTTOSEND

NSString* ERR_NOTEXTTOSEND;
412 - Please see RFC 1459 for additional information.

### ERR_NOTONCHANNEL

NSString* ERR_NOTONCHANNEL;
442 - Please see RFC 1459 for additional information.

### ERR_NOTOPLEVEL

NSString* ERR_NOTOPLEVEL;
413 - Please see RFC 1459 for additional information.

### ERR_NOTREGISTERED

NSString* ERR_NOTREGISTERED;
451 - Please see RFC 1459 for additional information.

### ERR_PASSWDMISMATCH

NSString* ERR_PASSWDMISMATCH;
464 - Please see RFC 1459 for additional information.

### ERR_RESTRICTED

NSString* ERR_RESTRICTED;
484 - Please see RFC 1459 for additional information.

### ERR_SUMMONDISABLED

NSString* ERR_SUMMONDISABLED;
445 - Please see RFC 1459 for additional information.

### ERR_TOOMANYCHANNELS

NSString* ERR_TOOMANYCHANNELS;
405 - Please see RFC 1459 for additional information.

### ERR_TOOMANYTARGETS

NSString* ERR_TOOMANYTARGETS;
407 - Please see RFC 1459 for additional information.

### ERR_UMODEUNKNOWNFLAG

NSString* ERR_UMODEUNKNOWNFLAG;
501 - Please see RFC 1459 for additional information.

### ERR_UNAVAILRESOURCE

NSString* ERR_UNAVAILRESOURCE;
437 - Please see RFC 1459 for additional information.

### ERR_UNIQOPPRIVSNEEDED

NSString* ERR_UNIQOPPRIVSNEEDED;
485 - Please see RFC 1459 for additional information.

### ERR_UNKNOWNCOMMAND

NSString* ERR_UNKNOWNCOMMAND;
421 - Please see RFC 1459 for additional information.

### ERR_UNKNOWNMODE

NSString* ERR_UNKNOWNMODE;
472 - Please see RFC 1459 for additional information.

### ERR_USERNOTINCHANNEL

NSString* ERR_USERNOTINCHANNEL;
441 - Please see RFC 1459 for additional information.

### ERR_USERONCHANNEL

NSString* ERR_USERONCHANNEL;
443 - Please see RFC 1459 for additional information.

### ERR_USERSDISABLED

NSString* ERR_USERSDISABLED;
446 - Please see RFC 1459 for additional information.

### ERR_USERSDONTMATCH

NSString* ERR_USERSDONTMATCH;
502 - Please see RFC 1459 for additional information.

### ERR_WASNOSUCHNICK

NSString* ERR_WASNOSUCHNICK;
406 - Please see RFC 1459 for additional information.

### ERR_WILDTOPLEVEL

NSString* ERR_WILDTOPLEVEL;
414 - Please see RFC 1459 for additional information.

### ERR_YOUREBANNEDCREEP

NSString* ERR_YOUREBANNEDCREEP;
465 - Please see RFC 1459 for additional information.

### ERR_YOUWILLBEBANNED

NSString* ERR_YOUWILLBEBANNED;
466 - Please see RFC 1459 for additional information.

### IRCException

NSString* IRCException;
Description forthcoming.

### RPL_ADMINEMAIL

NSString* RPL_ADMINEMAIL;
259 - Please see RFC 1459 for additional information.

### RPL_ADMINLOC1

NSString* RPL_ADMINLOC1;
257 - Please see RFC 1459 for additional information.

### RPL_ADMINLOC2

NSString* RPL_ADMINLOC2;
258 - Please see RFC 1459 for additional information.

### RPL_ADMINME

NSString* RPL_ADMINME;
256 - Please see RFC 1459 for additional information.

### RPL_AWAY

NSString* RPL_AWAY;
301 - Please see RFC 1459 for additional information.

### RPL_BANLIST

NSString* RPL_BANLIST;
367 - Please see RFC 1459 for additional information.

### RPL_BOUNCE

NSString* RPL_BOUNCE;
005 - Please see RFC 1459 for additional information.

### RPL_CHANNELMODEIS

NSString* RPL_CHANNELMODEIS;
324 - Please see RFC 1459 for additional information.

### RPL_CLOSEEND

NSString* RPL_CLOSEEND;
363 - Please see RFC 1459 for additional information.

### RPL_CLOSING

NSString* RPL_CLOSING;
262 - Please see RFC 1459 for additional information.

### RPL_CREATED

NSString* RPL_CREATED;
003 - Please see RFC 1459 for additional information.

### RPL_ENDOFBANLIST

NSString* RPL_ENDOFBANLIST;
368 - Please see RFC 1459 for additional information.

### RPL_ENDOFEXCEPTLIST

NSString* RPL_ENDOFEXCEPTLIST;
349 - Please see RFC 1459 for additional information.

### RPL_ENDOFINFO

NSString* RPL_ENDOFINFO;
374 - Please see RFC 1459 for additional information.

### RPL_ENDOFINVITELIST

NSString* RPL_ENDOFINVITELIST;
347 - Please see RFC 1459 for additional information.

### RPL_ENDOFLINKS

NSString* RPL_ENDOFLINKS;
365 - Please see RFC 1459 for additional information.

### RPL_ENDOFMOTD

NSString* RPL_ENDOFMOTD;
376 - Please see RFC 1459 for additional information.

### RPL_ENDOFNAMES

NSString* RPL_ENDOFNAMES;
366 - Please see RFC 1459 for additional information.

### RPL_ENDOFSERVICES

NSString* RPL_ENDOFSERVICES;
232 - Please see RFC 1459 for additional information.

### RPL_ENDOFSTATS

NSString* RPL_ENDOFSTATS;
219 - Please see RFC 1459 for additional information.

### RPL_ENDOFUSERS

NSString* RPL_ENDOFUSERS;
394 - Please see RFC 1459 for additional information.

### RPL_ENDOFWHO

NSString* RPL_ENDOFWHO;
315 - Please see RFC 1459 for additional information.

### RPL_ENDOFWHOIS

NSString* RPL_ENDOFWHOIS;
318 - Please see RFC 1459 for additional information.

### RPL_ENDOFWHOWAS

NSString* RPL_ENDOFWHOWAS;
369 - Please see RFC 1459 for additional information.

### RPL_EXCEPTLIST

NSString* RPL_EXCEPTLIST;
348 - Please see RFC 1459 for additional information.

### RPL_INFO

NSString* RPL_INFO;
371 - Please see RFC 1459 for additional information.

### RPL_INFOSTART

NSString* RPL_INFOSTART;
373 - Please see RFC 1459 for additional information.

### RPL_INVITELIST

NSString* RPL_INVITELIST;
346 - Please see RFC 1459 for additional information.

### RPL_INVITING

NSString* RPL_INVITING;
341 - Please see RFC 1459 for additional information.

### RPL_ISON

NSString* RPL_ISON;
303 - Please see RFC 1459 for additional information.

### RPL_ISUPPORT

NSString* RPL_ISUPPORT;
005 - Please see RFC 1459 for additional information.

### RPL_KILLDONE

NSString* RPL_KILLDONE;
361 - Please see RFC 1459 for additional information.

### RPL_LINKS

NSString* RPL_LINKS;
364 - Please see RFC 1459 for additional information.

### RPL_LIST

NSString* RPL_LIST;
322 - Please see RFC 1459 for additional information.

### RPL_LISTEND

NSString* RPL_LISTEND;
323 - Please see RFC 1459 for additional information.

### RPL_LISTSTART

NSString* RPL_LISTSTART;
321 - Please see RFC 1459 for additional information.

### RPL_LUSERCHANNELS

NSString* RPL_LUSERCHANNELS;
254 - Please see RFC 1459 for additional information.

### RPL_LUSERCLIENT

NSString* RPL_LUSERCLIENT;
251 - Please see RFC 1459 for additional information.

### RPL_LUSERME

NSString* RPL_LUSERME;
255 - Please see RFC 1459 for additional information.

### RPL_LUSEROP

NSString* RPL_LUSEROP;
252 - Please see RFC 1459 for additional information.

### RPL_LUSERUNKNOWN

NSString* RPL_LUSERUNKNOWN;
253 - Please see RFC 1459 for additional information.

### RPL_MOTD

NSString* RPL_MOTD;
372 - Please see RFC 1459 for additional information.

### RPL_MOTDSTART

NSString* RPL_MOTDSTART;
375 - Please see RFC 1459 for additional information.

### RPL_MYINFO

NSString* RPL_MYINFO;
004 - Please see RFC 1459 for additional information.

### RPL_MYPORTIS

NSString* RPL_MYPORTIS;
384 - Please see RFC 1459 for additional information.

### RPL_NAMREPLY

NSString* RPL_NAMREPLY;
353 - Please see RFC 1459 for additional information.

### RPL_NONE

NSString* RPL_NONE;
300 - Please see RFC 1459 for additional information.

### RPL_NOTOPIC

NSString* RPL_NOTOPIC;
331 - Please see RFC 1459 for additional information.

### RPL_NOUSERS

NSString* RPL_NOUSERS;
395 - Please see RFC 1459 for additional information.

### RPL_NOWAWAY

NSString* RPL_NOWAWAY;
306 - Please see RFC 1459 for additional information.

### RPL_REHASHING

NSString* RPL_REHASHING;
382 - Please see RFC 1459 for additional information.

### RPL_SERVICE

NSString* RPL_SERVICE;
233 - Please see RFC 1459 for additional information.

### RPL_SERVICEINFO

NSString* RPL_SERVICEINFO;
231 - Please see RFC 1459 for additional information.

### RPL_SERVLIST

NSString* RPL_SERVLIST;
234 - Please see RFC 1459 for additional information.

### RPL_SERVLISTEND

NSString* RPL_SERVLISTEND;
235 - Please see RFC 1459 for additional information.

### RPL_STATSBLINE

NSString* RPL_STATSBLINE;
247 - Please see RFC 1459 for additional information.

### RPL_STATSCLINE

NSString* RPL_STATSCLINE;
213 - Please see RFC 1459 for additional information.

### RPL_STATSCOMMANDS

NSString* RPL_STATSCOMMANDS;
212 - Please see RFC 1459 for additional information.

### RPL_STATSDLINE

NSString* RPL_STATSDLINE;
250 - Please see RFC 1459 for additional information.

### RPL_STATSHLINE

NSString* RPL_STATSHLINE;
244 - Please see RFC 1459 for additional information.

### RPL_STATSILINE

NSString* RPL_STATSILINE;
215 - Please see RFC 1459 for additional information.

### RPL_STATSKLINE

NSString* RPL_STATSKLINE;
216 - Please see RFC 1459 for additional information.

### RPL_STATSLINKINFO

NSString* RPL_STATSLINKINFO;
211 - Please see RFC 1459 for additional information.

### RPL_STATSLLINE

NSString* RPL_STATSLLINE;
241 - Please see RFC 1459 for additional information.

### RPL_STATSNLINE

NSString* RPL_STATSNLINE;
214 - Please see RFC 1459 for additional information.

### RPL_STATSOLINE

NSString* RPL_STATSOLINE;
243 - Please see RFC 1459 for additional information.

### RPL_STATSPING

NSString* RPL_STATSPING;
246 - Please see RFC 1459 for additional information.

### RPL_STATSQLINE

NSString* RPL_STATSQLINE;
217 - Please see RFC 1459 for additional information.

### RPL_STATSSLINE

NSString* RPL_STATSSLINE;
245 - Please see RFC 1459 for additional information.

### RPL_STATSUPTIME

NSString* RPL_STATSUPTIME;
242 - Please see RFC 1459 for additional information.

### RPL_STATSVLINE

NSString* RPL_STATSVLINE;
240 - Please see RFC 1459 for additional information.

### RPL_STATSYLINE

NSString* RPL_STATSYLINE;
218 - Please see RFC 1459 for additional information.

### RPL_SUMMONING

NSString* RPL_SUMMONING;
342 - Please see RFC 1459 for additional information.

### RPL_TIME

NSString* RPL_TIME;
391 - Please see RFC 1459 for additional information.

### RPL_TOPIC

NSString* RPL_TOPIC;
332 - Please see RFC 1459 for additional information.

### RPL_TRACECLASS

NSString* RPL_TRACECLASS;
209 - Please see RFC 1459 for additional information.

### RPL_TRACECONNECTING

NSString* RPL_TRACECONNECTING;
201 - Please see RFC 1459 for additional information.

### RPL_TRACEEND

NSString* RPL_TRACEEND;
262 - Please see RFC 1459 for additional information.

### RPL_TRACEHANDSHAKE

NSString* RPL_TRACEHANDSHAKE;
202 - Please see RFC 1459 for additional information.

### RPL_TRACELINK

NSString* RPL_TRACELINK;
200 - Please see RFC 1459 for additional information.

### RPL_TRACELOG

NSString* RPL_TRACELOG;
261 - Please see RFC 1459 for additional information.

### RPL_TRACENEWTYPE

NSString* RPL_TRACENEWTYPE;
208 - Please see RFC 1459 for additional information.

### RPL_TRACEOPERATOR

NSString* RPL_TRACEOPERATOR;
204 - Please see RFC 1459 for additional information.

### RPL_TRACERECONNECT

NSString* RPL_TRACERECONNECT;
210 - Please see RFC 1459 for additional information.

### RPL_TRACESERVER

NSString* RPL_TRACESERVER;
206 - Please see RFC 1459 for additional information.

### RPL_TRACESERVICE

NSString* RPL_TRACESERVICE;
207 - Please see RFC 1459 for additional information.

### RPL_TRACEUNKNOWN

NSString* RPL_TRACEUNKNOWN;
203 - Please see RFC 1459 for additional information.

### RPL_TRACEUSER

NSString* RPL_TRACEUSER;
205 - Please see RFC 1459 for additional information.

### RPL_TRYAGAIN

NSString* RPL_TRYAGAIN;
263 - Please see RFC 1459 for additional information.

### RPL_UMODEIS

NSString* RPL_UMODEIS;
221 - Please see RFC 1459 for additional information.

### RPL_UNAWAY

NSString* RPL_UNAWAY;
305 - Please see RFC 1459 for additional information.

### RPL_UNIQOPIS

NSString* RPL_UNIQOPIS;
325 - Please see RFC 1459 for additional information.

### RPL_USERHOST

NSString* RPL_USERHOST;
302 - Please see RFC 1459 for additional information.

### RPL_USERS

NSString* RPL_USERS;
393 - Please see RFC 1459 for additional information.

### RPL_USERSSTART

NSString* RPL_USERSSTART;
392 - Please see RFC 1459 for additional information.

### RPL_VERSION

NSString* RPL_VERSION;
351 - Please see RFC 1459 for additional information.

### RPL_WELCOME

NSString* RPL_WELCOME;
001 - Please see RFC 1459 for additional information.

### RPL_WHOISCHANNELS

NSString* RPL_WHOISCHANNELS;
319 - Please see RFC 1459 for additional information.

### RPL_WHOISCHANOP

NSString* RPL_WHOISCHANOP;
316 - Please see RFC 1459 for additional information.

### RPL_WHOISIDLE

NSString* RPL_WHOISIDLE;
317 - Please see RFC 1459 for additional information.

### RPL_WHOISOPERATOR

NSString* RPL_WHOISOPERATOR;
313 - Please see RFC 1459 for additional information.

### RPL_WHOISSERVER

NSString* RPL_WHOISSERVER;
312 - Please see RFC 1459 for additional information.

### RPL_WHOISUSER

NSString* RPL_WHOISUSER;
311 - Please see RFC 1459 for additional information.

### RPL_WHOREPLY

NSString* RPL_WHOREPLY;
352 - Please see RFC 1459 for additional information.

### RPL_WHOWASUSER

NSString* RPL_WHOWASUSER;
314 - Please see RFC 1459 for additional information.

### RPL_YOUREOPER

NSString* RPL_YOUREOPER;
381 - Please see RFC 1459 for additional information.

### RPL_YOURESERVICE

NSString* RPL_YOURESERVICE;
383 - Please see RFC 1459 for additional information.

### RPL_YOURHOST

NSString* RPL_YOURHOST;
002 - Please see RFC 1459 for additional information.

# IRCObject functions

### ExtractIRCHost

NSString* ExtractIRCHost(NSString* prefix);
Returns the host portion of a prefix. On any argument after from: in the class reference, the name could be in the format nickname!host. Returns `nil` if the prefix is not in the correct format.

### ExtractIRCNick

NSString* ExtractIRCNick(NSString* prefix);
Returns the nickname portion of a prefix. On any argument after from: in the class reference, the name could be in the format of nickname!host. Will always return a valid string.

### SeparateIRCNickAndHost

NSArray* SeparateIRCNickAndHost(NSString* prefix);
Returns an array of the nickname/host of a prefix. In the case that the array has only one object, it will be the nickname. In the case that it has two, it will be [nickname, host]. The object will always be at least one object long and never more than two.

Up