* @copyright 2008-2010 Phergie Development Team (http://phergie.org) * @license http://phergie.org/license New BSD License * @link http://pear.phergie.org/package/Phergie */ /** * Event originating from the server in response to an event sent by the * current client. * * @category Phergie * @package Phergie * @author Phergie Development Team * @license http://phergie.org/license New BSD License * @link http://pear.phergie.org/package/Phergie * @link http://www.irchelp.org/irchelp/rfc/chapter6.html */ class Phergie_Event_Response extends Phergie_Event_Abstract { /** * No such nick/channel * * Used to indicate the nickname parameter supplied to a command is currently * unused. */ const ERR_NOSUCHNICK = '401'; /** * No such server * * Used to indicate the server name given currently doesn't exist. */ const ERR_NOSUCHSERVER = '402'; /** * No such channel * * Used to indicate the given channel name is invalid. */ const ERR_NOSUCHCHANNEL = '403'; /** * Cannot send to channel * * Sent to a user who is either (a) not on a channel which is mode +n or (b) not * a chanop (or mode +v) on a channel which has mode +m set and is trying to send * a PRIVMSG message to that channel. */ const ERR_CANNOTSENDTOCHAN = '404'; /** * You have joined too many channels * * Sent to a user when they have joined the maximum number of allowed channels * and they try to join another channel. */ const ERR_TOOMANYCHANNELS = '405'; /** * There was no such nickname * * Returned by WHOWAS to indicate there is no history information for that * nickname. */ const ERR_WASNOSUCHNICK = '406'; /** * Duplicate recipients. No message delivered * * Returned to a client which is attempting to send PRIVMSG/NOTICE using the * user@host destination format and for a user@host which has several * occurrences. */ const ERR_TOOMANYTARGETS = '407'; /** * No origin specified * * PING or PONG message missing the originator parameter which is required since * these commands must work without valid prefixes. */ const ERR_NOORIGIN = '409'; /** * No recipient given () */ const ERR_NORECIPIENT = '411'; /** * No text to send */ const ERR_NOTEXTTOSEND = '412'; /** * No toplevel domain specified */ const ERR_NOTOPLEVEL = '413'; /** * Wildcard in toplevel domain * * 412 - 414 are returned by PRIVMSG to indicate that the message wasn't * delivered for some reason. ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that * are returned when an invalid use of "PRIVMSG $" or "PRIVMSG #" * is attempted. */ const ERR_WILDTOPLEVEL = '414'; /** * Unknown command * * Returned to a registered client to indicate that the command sent is unknown * by the server. */ const ERR_UNKNOWNCOMMAND = '421'; /** * MOTD File is missing * * Server's MOTD file could not be opened by the server. */ const ERR_NOMOTD = '422'; /** * No administrative info available * * Returned by a server in response to an ADMIN message when there is an error in * finding the appropriate information. */ const ERR_NOADMININFO = '423'; /** * File error doing on * * Generic error message used to report a failed file operation during the * processing of a message. */ const ERR_FILEERROR = '424'; /** * No nickname given * * Returned when a nickname parameter expected for a command and isn't found. */ const ERR_NONICKNAMEGIVEN = '431'; /** * Erroneus nickname * * Returned after receiving a NICK message which contains characters which do not * fall in the defined set. See section x.x.x for details on valid nicknames. */ const ERR_ERRONEUSNICKNAME = '432'; /** * Nickname is already in use * * Returned when a NICK message is processed that results in an attempt to change * to a currently existing nickname. */ const ERR_NICKNAMEINUSE = '433'; /** * Nickname collision KILL * * Returned by a server to a client when it detects a nickname collision * (registered of a NICK that already exists by another server). */ const ERR_NICKCOLLISION = '436'; /** * They aren't on that channel * * Returned by the server to indicate that the target user of the command is not * on the given channel. */ const ERR_USERNOTINCHANNEL = '441'; /** * You're not on that channel * * Returned by the server whenever a client tries to perform a channel effecting * command for which the client isn't a member. */ const ERR_NOTONCHANNEL = '442'; /** * is already on channel * * Returned when a client tries to invite a user to a channel they are already * on. */ const ERR_USERONCHANNEL = '443'; /** * User not logged in * * Returned by the summon after a SUMMON command for a user was unable to be * performed since they were not logged in. */ const ERR_NOLOGIN = '444'; /** * SUMMON has been disabled * * Returned as a response to the SUMMON command. Must be returned by any server * which does not implement it. */ const ERR_SUMMONDISABLED = '445'; /** * USERS has been disabled * * Returned as a response to the USERS command. Must be returned by any server * which does not implement it. */ const ERR_USERSDISABLED = '446'; /** * You have not registered * * Returned by the server to indicate that the client must be registered before * the server will allow it to be parsed in detail. */ const ERR_NOTREGISTERED = '451'; /** * Not enough parameters * * Returned by the server by numerous commands to indicate to the client that it * didn't supply enough parameters. */ const ERR_NEEDMOREPARAMS = '461'; /** * You may not reregister * * Returned by the server to any link which tries to change part of the * registered details (such as password or user details from second USER * message). */ const ERR_ALREADYREGISTRED = '462'; /** * Your host isn't among the privileged * * Returned to a client which attempts to register with a server which does not * been setup to allow connections from the host the attempted connection is * tried. */ const ERR_NOPERMFORHOST = '463'; /** * Password incorrect * * Returned to indicate a failed attempt at registering a connection for which a * password was required and was either not given or incorrect. */ const ERR_PASSWDMISMATCH = '464'; /** * You are banned from this server * * Returned after an attempt to connect and register yourself with a server which * has been setup to explicitly deny connections to you. */ const ERR_YOUREBANNEDCREEP = '465'; /** * Channel key already set */ const ERR_KEYSET = '467'; /** * Cannot join channel (+l) */ const ERR_CHANNELISFULL = '471'; /** * is unknown mode char to me */ const ERR_UNKNOWNMODE = '472'; /** * Cannot join channel (+i) */ const ERR_INVITEONLYCHAN = '473'; /** * Cannot join channel (+b) */ const ERR_BANNEDFROMCHAN = '474'; /** * Cannot join channel (+k) */ const ERR_BADCHANNELKEY = '475'; /** * Permission Denied- You're not an IRC operator * * Any command requiring operator privileges to operate must return this error to * indicate the attempt was unsuccessful. */ const ERR_NOPRIVILEGES = '481'; /** * You're not channel operator * * Any command requiring 'chanop' privileges (such as MODE messages) must return * this error if the client making the attempt is not a chanop on the specified * channel. */ const ERR_CHANOPRIVSNEEDED = '482'; /** * You cant kill a server! * * Any attempts to use the KILL command on a server are to be refused and this * error returned directly to the client. */ const ERR_CANTKILLSERVER = '483'; /** * No O-lines for your host * * If a client sends an OPER message and the server has not been configured to * allow connections from the client's host as an operator, this error must be * returned. */ const ERR_NOOPERHOST = '491'; /** * Unknown MODE flag * * Returned by the server to indicate that a MODE message was sent with a * nickname parameter and that the a mode flag sent was not recognized. */ const ERR_UMODEUNKNOWNFLAG = '501'; /** * Cant change mode for other users * * Error sent to any user trying to view or change the user mode for a user other * than themselves. */ const ERR_USERSDONTMATCH = '502'; /** * Dummy reply number. Not used. */ const RPL_NONE = '300'; /** * [{}] * * Reply format used by USERHOST to list replies to the query list. The reply * string is composed as follows = ['*'] '=' <'+'|'-'> * The '*' indicates whether the client has registered as an Operator. The '-' or * '+' characters represent whether the client has set an AWAY message or not * respectively. */ const RPL_USERHOST = '302'; /** * [ {}] * * Reply format used by ISON to list replies to the query list. */ const RPL_ISON = '303'; /** * */ const RPL_AWAY = '301'; /** * You are no longer marked as being away */ const RPL_UNAWAY = '305'; /** * You have been marked as being away * * These replies are used with the AWAY command (if allowed). RPL_AWAY is sent to * any client sending a PRIVMSG to a client which is away. RPL_AWAY is only sent * by the server to which the client is connected. Replies RPL_UNAWAY and * RPL_NOWAWAY are sent when the client removes and sets an AWAY message. */ const RPL_NOWAWAY = '306'; /** * * */ const RPL_WHOISUSER = '311'; /** * */ const RPL_WHOISSERVER = '312'; /** * is an IRC operator */ const RPL_WHOISOPERATOR = '313'; /** * seconds idle */ const RPL_WHOISIDLE = '317'; /** * End of /WHOIS list */ const RPL_ENDOFWHOIS = '318'; /** * {[@|+]} * * Replies 311 - 313, 317 - 319 are all replies generated in response to a WHOIS * message. Given that there are enough parameters present, the answering server * must either formulate a reply out of the above numerics (if the query nick is * found) or return an error reply. The '*' in RPL_WHOISUSER is there as the * literal character and not as a wild card. For each reply set, only * RPL_WHOISCHANNELS may appear more than once (for long lists of channel names). * The '@' and '+' characters next to the channel name indicate whether a client * is a channel operator or has been granted permission to speak on a moderated * channel. The RPL_ENDOFWHOIS reply is used to mark the end of processing a * WHOIS message. */ const RPL_WHOISCHANNELS = '319'; /** * * */ const RPL_WHOWASUSER = '314'; /** * End of WHOWAS * * When replying to a WHOWAS message, a server must use the replies * RPL_WHOWASUSER, RPL_WHOISSERVER or ERR_WASNOSUCHNICK for each nickname in the * presented list. At the end of all reply batches, there must be RPL_ENDOFWHOWAS * (even if there was only one reply and it was an error). */ const RPL_ENDOFWHOWAS = '369'; /** * Channel Users Name */ const RPL_LISTSTART = '321'; /** * <# visible> */ const RPL_LIST = '322'; /** * End of /LIST * * Replies RPL_LISTSTART, RPL_LIST, RPL_LISTEND mark the start, actual replies * with data and end of the server's response to a LIST command. If there are no * channels available to return, only the start and end reply must be sent. */ const RPL_LISTEND = '323'; /** * */ const RPL_CHANNELMODEIS = '324'; /** * No topic is set */ const RPL_NOTOPIC = '331'; /** * * * When sending a TOPIC message to determine the channel topic, one of two * replies is sent. If the topic is set, RPL_TOPIC is sent back else RPL_NOTOPIC. */ const RPL_TOPIC = '332'; /** * * * Returned by the server to indicate that the attempted INVITE message was * successful and is being passed onto the end client. */ const RPL_INVITING = '341'; /** * Summoning user to IRC * * Returned by a server answering a SUMMON message to indicate that it is * summoning that user. */ const RPL_SUMMONING = '342'; /** * . * * Reply by the server showing its version details. The is the version * of the software being used (including any patchlevel revisions) and the * is used to indicate if the server is running in "debug mode". The * "comments" field may contain any comments about the version or further version * details. */ const RPL_VERSION = '351'; /** * [*][@|+] */ const RPL_WHOREPLY = '352'; /** * End of /WHO list * * The RPL_WHOREPLY and RPL_ENDOFWHO pair are used to answer a WHO message. The * RPL_WHOREPLY is only sent if there is an appropriate match to the WHO query. * If there is a list of parameters supplied with a WHO message, a RPL_ENDOFWHO * must be sent after processing each list item with being the item. */ const RPL_ENDOFWHO = '315'; /** * [[@|+] [[@|+] [...]]] */ const RPL_NAMREPLY = '353'; /** * End of /NAMES list * * To reply to a NAMES message, a reply pair consisting of RPL_NAMREPLY and * RPL_ENDOFNAMES is sent by the server back to the client. If there is no * channel found as in the query, then only RPL_ENDOFNAMES is returned. The * exception to this is when a NAMES message is sent with no parameters and all * visible channels and contents are sent back in a series of RPL_NAMEREPLY * messages with a RPL_ENDOFNAMES to mark the end. */ const RPL_ENDOFNAMES = '366'; /** * */ const RPL_LINKS = '364'; /** * End of /LINKS list * * In replying to the LINKS message, a server must send replies back using the * RPL_LINKS numeric and mark the end of the list using an RPL_ENDOFLINKS reply.v */ const RPL_ENDOFLINKS = '365'; /** * */ const RPL_BANLIST = '367'; /** * End of channel ban list * * When listing the active 'bans' for a given channel, a server is required to * send the list back using the RPL_BANLIST and RPL_ENDOFBANLIST messages. A * separate RPL_BANLIST is sent for each active banid. After the banids have been * listed (or if none present) a RPL_ENDOFBANLIST must be sent. */ const RPL_ENDOFBANLIST = '368'; /** * */ const RPL_INFO = '371'; /** * End of /INFO list * * A server responding to an INFO message is required to send all its 'info' in a * series of RPL_INFO messages with a RPL_ENDOFINFO reply to indicate the end of * the replies. */ const RPL_ENDOFINFO = '374'; /** * - Message of the day - */ const RPL_MOTDSTART = '375'; /** * - */ const RPL_MOTD = '372'; /** * End of /MOTD command * * When responding to the MOTD message and the MOTD file is found, the file is * displayed line by line, with each line no longer than 80 characters, using * RPL_MOTD format replies. These should be surrounded by a RPL_MOTDSTART (before * the RPL_MOTDs) and an RPL_ENDOFMOTD (after). */ const RPL_ENDOFMOTD = '376'; /** * You are now an IRC operator * * RPL_YOUREOPER is sent back to a client which has just successfully issued an * OPER message and gained operator status. */ const RPL_YOUREOPER = '381'; /** * Rehashing * * If the REHASH option is used and an operator sends a REHASH message, an * RPL_REHASHING is sent back to the operator. */ const RPL_REHASHING = '382'; /** * * * When replying to the TIME message, a server must send the reply using the * RPL_TIME format above. The string showing the time need only contain the * correct day and time there. There is no further requirement for the time * string. */ const RPL_TIME = '391'; /** * UserID Terminal Host */ const RPL_USERSSTART = '392'; /** * %-8s %-9s %-8s */ const RPL_USERS = '393'; /** * End of users */ const RPL_ENDOFUSERS = '394'; /** * Nobody logged in * * If the USERS message is handled by a server, the replies RPL_USERSTART, * RPL_USERS, RPL_ENDOFUSERS and RPL_NOUSERS are used. RPL_USERSSTART must be * sent first, following by either a sequence of RPL_USERS or a single * RPL_NOUSER. Following this is RPL_ENDOFUSERS. */ const RPL_NOUSERS = '395'; /** * Link */ const RPL_TRACELINK = '200'; /** * Try. */ const RPL_TRACECONNECTING = '201'; /** * H.S. */ const RPL_TRACEHANDSHAKE = '202'; /** * ???? [] */ const RPL_TRACEUNKNOWN = '203'; /** * Oper */ const RPL_TRACEOPERATOR = '204'; /** * User */ const RPL_TRACEUSER = '205'; /** * Serv S C @ */ const RPL_TRACESERVER = '206'; /** * 0 */ const RPL_TRACENEWTYPE = '208'; /** * File * * The RPL_TRACE* are all returned by the server in response to the TRACE * message. How many are returned is dependent on the the TRACE message and * whether it was sent by an operator or not. There is no predefined order for * which occurs first. Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and * RPL_TRACEHANDSHAKE are all used for connections which have not been fully * established and are either unknown, still attempting to connect or in the * process of completing the 'server handshake'. RPL_TRACELINK is sent by any * server which handles a TRACE message and has to pass it on to another server. * The list of RPL_TRACELINKs sent in response to a TRACE command traversing the * IRC network should reflect the actual connectivity of the servers themselves * along that path. RPL_TRACENEWTYPE is to be used for any connection which does * not fit in the other categories but is being displayed anyway. */ const RPL_TRACELOG = '261'; /** *