001    /**
002     * Jetrix TetriNET Server
003     * Copyright (C) 2001-2004  Emmanuel Bourg
004     *
005     * This program is free software; you can redistribute it and/or
006     * modify it under the terms of the GNU General Public License
007     * as published by the Free Software Foundation; either version 2
008     * of the License, or (at your option) any later version.
009     *
010     * This program is distributed in the hope that it will be useful,
011     * but WITHOUT ANY WARRANTY; without even the implied warranty of
012     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013     * GNU General Public License for more details.
014     *
015     * You should have received a copy of the GNU General Public License
016     * along with this program; if not, write to the Free Software
017     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
018     */
019    
020    package net.jetrix.protocols;
021    
022    /**
023     * Numeric replies generated by an IRC server in response to a command.
024     *
025     * @since 0.2
026     *
027     * @author Emmanuel Bourg
028     * @version $Revision: 794 $, $Date: 2009-02-17 20:08:39 +0100 (Tue, 17 Feb 2009) $
029     */
030    public interface IRCReply {
031    
032        /**
033         * Used to indicate the nickname parameter supplied to a command is
034         * currently unused.
035         *
036         * <pre>"&lt;nickname&gt; :No such nick/channel"</pre>
037         */
038        public static final int ERR_NOSUCHNICK = 401;
039    
040        /**
041         * Used to indicate the server name given currently doesn't exist.
042         *
043         * <pre>"&lt;server name&gt; :No such server"</pre>
044         */
045        public static final int ERR_NOSUCHSERVER = 402;
046    
047        /**
048         * Used to indicate the given channel name is invalid.
049         *
050         * <pre>"&lt;channel name&gt; :No such channel"</pre>
051         */
052        public static final int ERR_NOSUCHCHANNEL = 403;
053    
054        /**
055         * Sent to a user who is either (a) not on a channel which is mode +n or
056         * (b) not a chanop (or mode +v) on a channel which has mode +m set and is
057         * trying to send a PRIVMSG message to that channel.
058         *
059         * <pre>"&lt;channel name&gt; :Cannot send to channel"</pre>
060         */
061        public static final int ERR_CANNOTSENDTOCHAN = 404;
062    
063        /**
064         * Sent to a user when they have joined the maximum number of allowed
065         * channels and they try to join another channel.
066         *
067         * <pre>"&lt;channel name&gt; :You have joined too many channels"</pre>
068         */
069        public static final int ERR_TOOMANYCHANNELS = 405;
070    
071        /**
072         * Returned by WHOWAS to indicate there is no history information for that
073         * nickname.
074         *
075         * <pre>"&lt;nickname&gt; :There was no such nickname"</pre>
076         */
077        public static final int ERR_WASNOSUCHNICK = 406;
078    
079        /**
080         * Returned to a client which is attempting to send PRIVMSG/NOTICE using
081         * the user@host destination format and for a user@host which has several
082         * occurrences.
083         *
084         * <pre>"&lt;target&gt; :Duplicate recipients. No message delivered"</pre>
085         */
086        public static final int ERR_TOOMANYTARGETS = 407;
087    
088        /**
089         * PING or PONG message missing the originator parameter which is required
090         * since these commands must work without valid prefixes.
091         *
092         * <pre>":No origin specified"</pre>
093         */
094        public static final int ERR_NOORIGIN = 409;
095    
096        /**
097         * <pre>":No recipient given (&lt;command&gt;)"</pre>
098         */
099        public static final int ERR_NORECIPIENT = 411;
100    
101        /**
102         * <pre>":No text to send"</pre>
103         */
104        public static final int ERR_NOTEXTTOSEND = 412;
105    
106        /**
107         * <pre>"&lt;mask&gt; :No toplevel domain specified"</pre>
108         */
109        public static final int ERR_NOTOPLEVEL = 413;
110    
111        /**
112         * 412 - 414 are returned by PRIVMSG to indicate that the message wasn't
113         * delivered for some reason. ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are
114         * errors that are returned when an invalid use of "PRIVMSG $&lt;server&gt;"
115         * or "PRIVMSG #&lt;host&gt;" is attempted.
116         *
117         * <pre>"&lt;mask&gt; :Wildcard in toplevel domain"</pre>
118         */
119        public static final int ERR_WILDTOPLEVEL = 414;
120    
121        /**
122         * Returned to a registered client to indicate that the command sent is
123         * unknown by the server.
124         *
125         * <pre>"&lt;command&gt; :Unknown command"</pre>
126         */
127        public static final int ERR_UNKNOWNCOMMAND = 421;
128    
129        /**
130         * Server's MOTD file could not be opened by the server.
131         *
132         * <pre>":MOTD File is missing"</pre>
133         */
134        public static final int ERR_NOMOTD = 422;
135    
136        /**
137         * Returned by a server in response to an ADMIN message when there is an
138         * error in finding the appropriate information.
139         *
140         * <pre>"&lt;server&gt; :No administrative info available"</pre>
141         */
142        public static final int ERR_NOADMININFO = 423;
143    
144        /**
145         * Generic error message used to report a failed file operation during the
146         * processing of a message.
147         *
148         * <pre>":File error doing &lt;file op&gt; on &lt;file&gt;"</pre>
149         */
150        public static final int ERR_FILEERROR = 424;
151    
152        /**
153         * Returned when a nickname parameter expected for a command and isn't
154         * found.
155         *
156         * <pre>":No nickname given"</pre>
157         */
158        public static final int ERR_NONICKNAMEGIVEN = 431;
159    
160        /**
161         * Returned after receiving a NICK message which contains characters which
162         * do not fall in the defined set. See section x.x.x for details on valid
163         * nicknames.
164         *
165         * <pre>"&lt;nick&gt; :Erroneus nickname"</pre>
166         */
167        public static final int ERR_ERRONEUSNICKNAME = 432;
168    
169        /**
170         * Returned when a NICK message is processed that results in an attempt to
171         * change to a currently existing nickname.
172         *
173         * <pre>"&lt;nick&gt; :Nickname is already in use"</pre>
174         */
175        public static final int ERR_NICKNAMEINUSE = 433;
176    
177        /**
178         * Returned by a server to a client when it detects a nickname collision
179         * (registered of a NICK that already exists by another server).
180         *
181         * <pre>"&lt;nick&gt; :Nickname collision KILL"</pre>
182         */
183        public static final int ERR_NICKCOLLISION = 436;
184    
185        /**
186         * Returned by the server to indicate that the target user of the command
187         * is not on the given channel.
188         *
189         * <pre>"&lt;nick&gt; &lt;channel&gt; :They aren't on that channel"</pre>
190         */
191        public static final int ERR_USERNOTINCHANNEL = 441;
192    
193        /**
194         * Returned by the server whenever a client tries to perform a channel
195         * effecting command for which the client isn't a member.
196         *
197         * <pre>"&lt;channel&gt; :You're not on that channel"</pre>
198         */
199        public static final int ERR_NOTONCHANNEL = 442;
200    
201        /**
202         * Returned when a client tries to invite a user to a channel they are
203         * already on.
204         *
205         * <pre>"&lt;user&gt; &lt;channel&gt; :is already on channel"</pre>
206         */
207        public static final int ERR_USERONCHANNEL = 443;
208    
209        /**
210         * Returned by the summon after a SUMMON command for a user was unable to
211         * be performed since they were not logged in.
212         *
213         * <pre>"&lt;user&gt; :User not logged in"</pre>
214         */
215        public static final int ERR_NOLOGIN = 444;
216    
217        /**
218         * Returned as a response to the SUMMON command. Must be returned by any
219         * server which does not implement it.
220         *
221         * <pre>":SUMMON has been disabled"</pre>
222         */
223        public static final int ERR_SUMMONDISABLED = 445;
224    
225        /**
226         * Returned as a response to the USERS command. Must be returned by any
227         * server which does not implement it.
228         *
229         * <pre>":USERS has been disabled"</pre>
230         */
231        public static final int ERR_USERSDISABLED = 446;
232    
233        /**
234         * Returned by the server to indicate that the client must be registered
235         * before the server will allow it to be parsed in detail.
236         *
237         * <pre>":You have not registered"</pre>
238         */
239        public static final int ERR_NOTREGISTERED = 451;
240    
241        /**
242         * Returned by the server by numerous commands to indicate to the client
243         * that it didn't supply enough parameters.
244         *
245         * <pre>"&lt;command&gt; :Not enough parameters"</pre>
246         */
247        public static final int ERR_NEEDMOREPARAMS = 461;
248    
249        /**
250         * Returned by the server to any link which tries to change part of the
251         * registered details (such as password or user details from second USER
252         * message).
253         *
254         * <pre>":You may not reregister"</pre>
255         */
256        public static final int ERR_ALREADYREGISTRED = 462;
257    
258        /**
259         * Returned to a client which attempts to register with a server which does
260         * not been setup to allow connections from the host the attempted
261         * connection is tried.
262         *
263         * <pre>":Your host isn't among the privileged"</pre>
264         */
265        public static final int ERR_NOPERMFORHOST = 463;
266    
267        /**
268         * Returned to indicate a failed attempt at registering a connection for
269         * which a password was required and was either not given or incorrect.
270         *
271         * <pre>":Password incorrect"</pre>
272         */
273        public static final int ERR_PASSWDMISMATCH = 464;
274    
275        /**
276         * Returned after an attempt to connect and register yourself with a server
277         * which has been setup to explicitly deny connections to you.
278         *
279         * <pre>":You are banned from this server"</pre>
280         */
281        public static final int ERR_YOUREBANNEDCREEP = 465;
282    
283        /**
284         * <pre>"&lt;channel&gt; :Channel key already set"</pre>
285         */
286        public static final int ERR_KEYSET = 467;
287    
288        /**
289         * <pre>"&lt;channel&gt; :Cannot join channel (+l)"</pre>
290         */
291        public static final int ERR_CHANNELISFULL = 471;
292    
293        /**
294         * <pre>"&lt;char&gt; :is unknown mode char to me"</pre>
295         */
296        public static final int ERR_UNKNOWNMODE = 472;
297    
298        /**
299         * <pre>"&lt;channel&gt; :Cannot join channel (+i)"</pre>
300         */
301        public static final int ERR_INVITEONLYCHAN = 473;
302    
303        /**
304         * <pre>"&lt;channel&gt; :Cannot join channel (+b)"</pre>
305         */
306        public static final int ERR_BANNEDFROMCHAN = 474;
307    
308        /**
309         * <pre>"&lt;channel&gt; :Cannot join channel (+k)"</pre>
310         */
311        public static final int ERR_BADCHANNELKEY = 475;
312    
313        /**
314         * Any command requiring operator privileges to operate must return this
315         * error to indicate the attempt was unsuccessful.
316         *
317         * <pre>":Permission Denied- You're not an IRC operator"</pre>
318         */
319        public static final int ERR_NOPRIVILEGES = 481;
320    
321        /**
322         * Any command requiring 'chanop' privileges (such as MODE messages) must
323         * return this error if the client making the attempt is not a chanop on
324         * the specified channel.
325         *
326         * <pre>"&lt;channel&gt; :You're not channel operator"</pre>
327         */
328        public static final int ERR_CHANOPRIVSNEEDED = 482;
329    
330        /**
331         * Any attempts to use the KILL command on a server are to be refused and
332         * this error returned directly to the client.
333         *
334         * <pre>":You cant kill a server!"</pre>
335         */
336        public static final int ERR_CANTKILLSERVER = 483;
337    
338        /**
339         * If a client sends an OPER message and the server has not been configured
340         * to allow connections from the client's host as an operator, this error
341         * must be returned.
342         *
343         * <pre>":No O-lines for your host"</pre>
344         */
345        public static final int ERR_NOOPERHOST = 491;
346    
347        /**
348         * Returned by the server to indicate that a MODE message was sent with
349         * a nickname parameter and that the a mode flag sent was not recognized.
350         *
351         * <pre>":Unknown MODE flag"</pre>
352         */
353        public static final int ERR_UMODEUNKNOWNFLAG = 501;
354    
355        /**
356         * Error sent to any user trying to view or change the user mode for
357         * a user other than themselves.
358         *
359         * <pre>":Cant change mode for other users"</pre>
360         */
361        public static final int ERR_USERSDONTMATCH = 502;
362    
363        /**
364         * Dummy reply number. Not used.
365         */
366        public static final int RPL_NONE = 300;
367    
368        /**
369         * Reply format used by USERHOST to list replies to the query list. The
370         * reply string is composed as follows:
371         *
372         * <pre>&lt;reply&gt; ::= &lt;nick&gt;['*'] '=' &lt;'+'|'-'&gt;&lt;hostname&gt;</pre>
373         *
374         * The '*' indicates whether the client has registered as an Operator.
375         * The '-' or '+' characters represent whether the client has set an AWAY
376         * message or not respectively.
377         *
378         * <pre>":[&lt;reply&gt;{&lt;space&gt;&lt;reply&gt;}]"</pre>
379         */
380        public static final int RPL_USERHOST = 302;
381    
382        /**
383         * Reply format used by ISON to list replies to the query list.
384         *
385         * <pre>":[&lt;nick&gt; {&lt;space&gt;&lt;nick&gt;}]"</pre>
386         */
387        public static final int RPL_ISON = 303;
388    
389        /**
390         * <pre>"&lt;nick&gt; :&lt;away message&gt;"</pre>
391         */
392        public static final int RPL_AWAY = 301;
393    
394        /**
395         * <pre>":You are no longer marked as being away"</pre>
396         */
397        public static final int RPL_UNAWAY = 305;
398    
399        /**
400         * These replies are used with the AWAY command (if allowed). RPL_AWAY is
401         * sent to any client sending a PRIVMSG to a client which is away.
402         * RPL_AWAY is only sent by the server to which the client is connected.
403         * Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the client removes and
404         * sets an AWAY message.
405         *
406         * <pre>":You have been marked as being away"</pre>
407         */
408        public static final int RPL_NOWAWAY = 306;
409    
410        /**
411         * <pre>"&lt;nick&gt; &lt;user&gt; &lt;host&gt; * :&lt;real name&gt;"</pre>
412         */
413        public static final int RPL_WHOISUSER = 311;
414    
415        /**
416         * <pre>"&lt;nick&gt; &lt;server&gt; :&lt;server info&gt;"</pre>
417         */
418        public static final int RPL_WHOISSERVER = 312;
419    
420        /**
421         * <pre>"&lt;nick&gt; :is an IRC operator"</pre>
422         */
423        public static final int RPL_WHOISOPERATOR = 313;
424    
425        /**
426         * <pre>"&lt;nick&gt; &lt;integer&gt; :seconds idle"</pre>
427         */
428        public static final int RPL_WHOISIDLE = 317;
429    
430        /**
431         * <pre>"&lt;nick&gt; :End of /WHOIS list"</pre>
432         */
433        public static final int RPL_ENDOFWHOIS = 318;
434    
435        /**
436         * Replies 311 - 313, 317 - 319 are all replies generated in response to a
437         * WHOIS message. Given that there are enough parameters present, the
438         * answering server must either formulate a reply out of the above numerics
439         * (if the query nick is found) or return an error reply. The '*' in
440         * RPL_WHOISUSER is there as the literal character and not as a wild card.
441         * For each reply set, only RPL_WHOISCHANNELS may appear more than once
442         * (for long lists of channel names). The '@' and '+' characters next to
443         * the channel name indicate whether a client is a channel operator or has
444         * been granted permission to speak on a moderated channel.
445         * The RPL_ENDOFWHOIS reply is used to mark the end of processing a WHOIS
446         * message.
447         *
448         * <pre>"&lt;nick&gt; :{[@|+]&lt;channel&gt;&lt;space&gt;}"</pre>
449         */
450        public static final int RPL_WHOISCHANNELS = 319;
451    
452        /**
453         * <pre>"&lt;nick&gt; &lt;user&gt; &lt;host&gt; * :&lt;real name&gt;"</pre>
454         */
455        public static final int RPL_WHOWASUSER = 314;
456    
457        /**
458         * When replying to a WHOWAS message, a server must use the replies
459         * RPL_WHOWASUSER, RPL_WHOISSERVER or ERR_WASNOSUCHNICK for each nickname
460         * in the presented list. At the end of all reply batches, there must be
461         * RPL_ENDOFWHOWAS (even if there was only one reply and it was an error).
462         *
463         * <pre>"&lt;nick&gt; :End of WHOWAS"</pre>
464         */
465        public static final int RPL_ENDOFWHOWAS = 369;
466    
467        /**
468         * <pre>"Channel :Users Name"</pre>
469         */
470        public static final int RPL_LISTSTART = 321;
471    
472        /**
473         * <pre>"&lt;channel&gt; &lt;# visible&gt; :&lt;topic&gt;"</pre>
474         */
475        public static final int RPL_LIST = 322;
476    
477        /**
478         * Replies RPL_LISTSTART, RPL_LIST, RPL_LISTEND mark the start, actual
479         * replies with data and end of the server's response to a LIST command. If
480         * there are no channels available to return, only the start and end reply
481         * must be sent.
482         *
483         * <pre>":End of /LIST"</pre>
484         */
485        public static final int RPL_LISTEND = 323;
486    
487        /**
488         * <pre>"&lt;channel&gt; &lt;mode&gt; &lt;mode params&gt;"</pre>
489         */
490        public static final int RPL_CHANNELMODEIS = 324;
491    
492        /**
493         * <pre>"&lt;channel&gt; :No topic is set"</pre>
494         */
495        public static final int RPL_NOTOPIC = 331;
496    
497        /**
498         * When sending a TOPIC message to determine the channel topic, one of two
499         * replies is sent. If the topic is set, RPL_TOPIC is sent back else
500         * RPL_NOTOPIC.
501         *
502         * <pre>"&lt;channel&gt; :&lt;topic&gt;"</pre>
503         */
504        public static final int RPL_TOPIC = 332;
505    
506        /**
507         * Returned by the server to indicate that the attempted INVITE message was
508         * successful and is being passed onto the end client.
509         *
510         * <pre>"&lt;channel&gt; &lt;nick&gt;"</pre>
511         */
512        public static final int RPL_INVITING = 341;
513    
514        /**
515         * Returned by a server answering a SUMMON message to indicate that it is
516         * summoning that user.
517         *
518         * <pre>"&lt;user&gt; :Summoning user to IRC"</pre>
519         */
520        public static final int RPL_SUMMONING = 342;
521    
522        /**
523         * Reply by the server showing its version details. The &lt;version&gt; is
524         * the version of the software being used (including any patchlevel
525         * revisions) and the &lt;debuglevel&gt; is used to indicate if the server
526         * is running in "debug mode". The "comments" field may contain any
527         * comments about the version or further version details.
528         *
529         * <pre>"&lt;version&gt;.&lt;debuglevel&gt; &lt;server&gt; :&lt;comments&gt;"</pre>
530         */
531        public static final int RPL_VERSION = 351;
532    
533        /**
534         * <pre>"&lt;channel&gt; &lt;user&gt; &lt;host&gt; &lt;server&gt; &lt;nick&gt; &lt;H|G&gt;[*][@|+] :&lt;hopcount&gt; &lt;real name&gt;"</pre>
535         */
536        public static final int RPL_WHOREPLY = 352;
537    
538        /**
539         * The RPL_WHOREPLY and RPL_ENDOFWHO pair are used to answer a WHO message.
540         * The RPL_WHOREPLY is only sent if there is an appropriate match to the
541         * WHO query. If there is a list of parameters supplied with a WHO message,
542         * a RPL_ENDOFWHO must be sent after processing each list item with
543         * &lt;name&gt; being the item.
544         *
545         * <pre>"&lt;name&gt; :End of /WHO list"</pre>
546         */
547        public static final int RPL_ENDOFWHO = 315;
548    
549        /**
550         * <pre>"&lt;channel&gt; :[[@|+]&lt;nick&gt; [[@|+]&lt;nick&gt; [...]]]"</pre>
551         */
552        public static final int RPL_NAMREPLY = 353;
553    
554        /**
555         * To reply to a NAMES message, a reply pair consisting of RPL_NAMREPLY and
556         * RPL_ENDOFNAMES is sent by the server back to the client. If there is no
557         * channel found as in the query, then only RPL_ENDOFNAMES is returned. The
558         * exception to this is when a NAMES message is sent with no parameters and
559         * all visible channels and contents are sent back in a series of
560         * RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark the end.
561         *
562         * <pre>"&lt;channel&gt; :End of /NAMES list"</pre>
563         */
564        public static final int RPL_ENDOFNAMES = 366;
565    
566        /**
567         * <pre>"&lt;mask&gt; &lt;server&gt; :&lt;hopcount&gt; &lt;server info&gt;"</pre>
568         */
569        public static final int RPL_LINKS = 364;
570    
571        /**
572         * In replying to the LINKS message, a server must send replies back using
573         * the RPL_LINKS numeric and mark the end of the list using an
574         * RPL_ENDOFLINKS reply.v
575         *
576         * <pre>"&lt;mask&gt; :End of /LINKS list"</pre>
577         */
578        public static final int RPL_ENDOFLINKS = 365;
579    
580        /**
581         * <pre>"&lt;channel&gt; &lt;banid&gt;"</pre>
582         */
583        public static final int RPL_BANLIST = 367;
584    
585        /**
586         * When listing the active 'bans' for a given channel, a server is required
587         * to send the list back using the RPL_BANLIST and RPL_ENDOFBANLIST
588         * messages. A separate RPL_BANLIST is sent for each active banid. After
589         * the banids have been listed (or if none present) a RPL_ENDOFBANLIST must
590         * be sent.
591         *
592         * <pre>"&lt;channel&gt; :End of channel ban list"</pre>
593         */
594        public static final int RPL_ENDOFBANLIST = 368;
595    
596        /**
597         * <pre>":&lt;string&gt;"</pre>
598         */
599        public static final int RPL_INFO = 371;
600    
601        /**
602         * A server responding to an INFO message is required to send all its
603         * 'info' in a series of RPL_INFO messages with a RPL_ENDOFINFO reply to
604         * indicate the end of the replies.
605         *
606         * <pre>":End of /INFO list"</pre>
607         */
608        public static final int RPL_ENDOFINFO = 374;
609    
610        /**
611         * <pre>":- &lt;server&gt; Message of the day - "</pre>
612         */
613        public static final int RPL_MOTDSTART = 375;
614    
615        /**
616         * <pre>":- &lt;text&gt;"</pre>
617         */
618        public static final int RPL_MOTD = 372;
619    
620        /**
621         * When responding to the MOTD message and the MOTD file is found, the file
622         * is displayed line by line, with each line no longer than 80 characters,
623         * using RPL_MOTD format replies. These should be surrounded by a
624         * RPL_MOTDSTART (before the RPL_MOTDs) and an RPL_ENDOFMOTD (after).
625         *
626         * <pre>":End of /MOTD command"</pre>
627         */
628        public static final int RPL_ENDOFMOTD = 376;
629    
630        /**
631         * RPL_YOUREOPER is sent back to a client which has just successfully
632         * issued an OPER message and gained operator status.
633         *
634         * <pre>":You are now an IRC operator"</pre>
635         */
636        public static final int RPL_YOUREOPER = 381;
637    
638        /**
639         * If the REHASH option is used and an operator sends a REHASH message,
640         * an RPL_REHASHING is sent back to the operator.
641         *
642         * <pre>"&lt;config file&gt; :Rehashing"</pre>
643         */
644        public static final int RPL_REHASHING = 382;
645    
646        /**
647         * When replying to the TIME message, a server must send the reply using
648         * the RPL_TIME format above. The string showing the time need only contain
649         * the correct day and time there. There is no further requirement for the
650         * time string.
651         *
652         * <pre>"&lt;server&gt; :&lt;string showing server's local time&gt;"</pre>
653         */
654        public static final int RPL_TIME = 391;
655    
656        /**
657         * <pre>":UserID Terminal Host"</pre>
658         */
659        public static final int RPL_USERSSTART = 392;
660    
661        /**
662         * <pre>":%-8s %-9s %-8s"</pre>
663         */
664        public static final int RPL_USERS = 393;
665    
666        /**
667         * <pre>":End of users"</pre>
668         */
669        public static final int RPL_ENDOFUSERS = 394;
670    
671        /**
672         * If the USERS message is handled by a server, the replies RPL_USERSTART,
673         * RPL_USERS, RPL_ENDOFUSERS and RPL_NOUSERS are used. RPL_USERSSTART must
674         * be sent first, following by either a sequence of RPL_USERS or a single
675         * RPL_NOUSER. Following this is RPL_ENDOFUSERS.
676         *
677         * <pre>":Nobody logged in"</pre>
678         */
679        public static final int RPL_NOUSERS = 395;
680    
681        /**
682         * <pre>"Link &lt;version & debug level&gt; &lt;destination&gt; &lt;next server&gt;"</pre>
683         */
684        public static final int RPL_TRACELINK = 200;
685    
686        /**
687         * <pre>"Try. &lt;class&gt; &lt;server&gt;"</pre>
688         */
689        public static final int RPL_TRACECONNECTING = 201;
690    
691        /**
692         * <pre>"H.S. &lt;class&gt; &lt;server&gt;"</pre>
693         */
694        public static final int RPL_TRACEHANDSHAKE = 202;
695    
696        /**
697         * <pre>"???? &lt;class&gt; [&lt;client IP address in dot form&gt;]"</pre>
698         */
699        public static final int RPL_TRACEUNKNOWN = 203;
700    
701        /**
702         * <pre>"Oper &lt;class&gt; &lt;nick&gt;"</pre>
703         */
704        public static final int RPL_TRACEOPERATOR = 204;
705    
706        /**
707         * <pre>"User &lt;class&gt; &lt;nick&gt;"</pre>
708         */
709        public static final int RPL_TRACEUSER = 205;
710    
711        /**
712         * <pre>"Serv &lt;class&gt; &lt;int&gt;S &lt;int&gt;C &lt;server&gt; &lt;nick!user|*!*&gt;@&lt;host|server&gt;"</pre>
713         */
714        public static final int RPL_TRACESERVER = 206;
715    
716        /**
717         * <pre>"&lt;newtype&gt; 0 &lt;client name&gt;"</pre>
718         */
719        public static final int RPL_TRACENEWTYPE = 208;
720    
721        /**
722         * The RPL_TRACE* are all returned by the server in response to the TRACE
723         * message. How many are returned is dependent on the the TRACE message
724         * and whether it was sent by an operator or not. There is no predefined
725         * order for which occurs first. Replies RPL_TRACEUNKNOWN,
726         * RPL_TRACECONNECTING and RPL_TRACEHANDSHAKE are all used for connections
727         * which have not been fully established and are either unknown, still
728         * attempting to connect or in the process of completing the 'server
729         * handshake'. RPL_TRACELINK is sent by any server which handles a TRACE
730         * message and has to pass it on to another server. The list of
731         * RPL_TRACELINKs sent in response to a TRACE command traversing the IRC
732         * network should reflect the actual connectivity of the servers themselves
733         * along that path. RPL_TRACENEWTYPE is to be used for any connection which
734         * does not fit in the other categories but is being displayed anyway.
735         *
736         * <pre>"File &lt;logfile&gt; &lt;debug level&gt;"</pre>
737         */
738        public static final int RPL_TRACELOG = 261;
739    
740        /**
741         * <pre>"&lt;linkname&gt; &lt;sendq&gt; &lt;sent messages&gt; &lt;sent bytes&gt; &lt;received messages&gt; &lt;received bytes&gt; &lt;time open&gt;"</pre>
742         */
743        public static final int RPL_STATSLINKINFO = 211;
744    
745        /**
746         * <pre>"&lt;command&gt; &lt;count&gt;"</pre>
747         */
748        public static final int RPL_STATSCOMMANDS = 212;
749    
750        /**
751         * <pre>"C &lt;host&gt; * &lt;name&gt; &lt;port&gt; &lt;class&gt;"</pre>
752         */
753        public static final int RPL_STATSCLINE = 213;
754    
755        /**
756         * <pre>"N &lt;host&gt; * &lt;name&gt; &lt;port&gt; &lt;class&gt;"</pre>
757         */
758        public static final int RPL_STATSNLINE = 214;
759    
760        /**
761         * <pre>"I &lt;host&gt; * &lt;host&gt; &lt;port&gt; &lt;class&gt;"</pre>
762         */
763        public static final int RPL_STATSILINE = 215;
764    
765        /**
766         * <pre>"K &lt;host&gt; * &lt;username&gt; &lt;port&gt; &lt;class&gt;"</pre>
767         */
768        public static final int RPL_STATSKLINE = 216;
769    
770        /**
771         * <pre>"Y &lt;class&gt; &lt;ping frequency&gt; &lt;connect frequency&gt; &lt;max sendq&gt;"</pre>
772         */
773        public static final int RPL_STATSYLINE = 218;
774    
775        /**
776         * <pre>"&lt;stats letter&gt; :End of /STATS report"</pre>
777         */
778        public static final int RPL_ENDOFSTATS = 219;
779    
780        /**
781         * <pre>"L &lt;hostmask&gt; * &lt;servername&gt; &lt;maxdepth&gt;"</pre>
782         */
783        public static final int RPL_STATSLLINE = 241;
784    
785        /**
786         * <pre>":Server Up %d days %d:%02d:%02d"</pre>
787         */
788        public static final int RPL_STATSUPTIME = 242;
789    
790        /**
791         * <pre>"O &lt;hostmask&gt; * &lt;name&gt;"</pre>
792         */
793        public static final int RPL_STATSOLINE = 243;
794    
795        /**
796         * <pre>"H &lt;hostmask&gt; * &lt;servername&gt;"</pre>
797         */
798        public static final int RPL_STATSHLINE = 244;
799    
800        /**
801         * To answer a query about a client's own mode, RPL_UMODEIS is sent back.
802         * <pre>"&lt;user mode string&gt;"</pre>
803         */
804        public static final int RPL_UMODEIS = 221;
805    
806        /**
807         * <pre>":There are &lt;integer&gt; users and &lt;integer&gt; invisible on &lt;integer&gt; servers"</pre>
808         */
809        public static final int RPL_LUSERCLIENT = 251;
810    
811        /**
812         * <pre>"&lt;integer&gt; :operator(s) online"</pre>
813         */
814        public static final int RPL_LUSEROP = 252;
815    
816        /**
817         * <pre>"&lt;integer&gt; :unknown connection(s)"</pre>
818         */
819        public static final int RPL_LUSERUNKNOWN = 253;
820    
821        /**
822         * <pre>"&lt;integer&gt; :channels formed"</pre>
823         */
824        public static final int RPL_LUSERCHANNELS = 254;
825    
826        /**
827         * In processing an LUSERS message, the server sends a set of replies from
828         * RPL_LUSERCLIENT, RPL_LUSEROP, RPL_USERUNKNOWN, RPL_LUSERCHANNELS and
829         * RPL_LUSERME. When replying, a server must send back RPL_LUSERCLIENT and
830         * RPL_LUSERME. The other replies are only sent back if a non-zero count is
831         * found for them.
832         *
833         * <pre>":I have &lt;integer&gt; clients and &lt;integer&gt; servers"</pre>
834         */
835        public static final int RPL_LUSERME = 255;
836    
837        /**
838         * <pre>"&lt;server&gt; :Administrative info"</pre>
839         */
840        public static final int RPL_ADMINME = 256;
841    
842        /**
843         * <pre>":&lt;admin info&gt;"</pre>
844         */
845        public static final int RPL_ADMINLOC1 = 257;
846    
847        /**
848         * <pre>":&lt;admin info&gt;"</pre>
849         */
850        public static final int RPL_ADMINLOC2 = 258;
851    
852        /**
853         * When replying to an ADMIN message, a server is expected to use replies
854         * RLP_ADMINME through to RPL_ADMINEMAIL and provide a text message with
855         * each. For RPL_ADMINLOC1 a description of what city, state and country
856         * the server is in is expected, followed by details of the university and
857         * department (RPL_ADMINLOC2) and finally the administrative contact for
858         * the server (an email address here is required) in RPL_ADMINEMAIL.
859         *
860         * <pre>":&lt;admin info&gt;"</pre>
861         */
862        public static final int RPL_ADMINEMAIL = 259;
863    
864    }