File Coverage

blib/lib/POE/Component/Server/IRC/Help.pm
Criterion Covered Total %
statement 19 78 24.3
branch 3 4 75.0
condition 1 2 50.0
subroutine 6 64 9.3
pod 2 2 100.0
total 31 150 20.6


line stmt bran cond sub pod time code
1             package POE::Component::Server::IRC::Help;
2             our $AUTHORITY = 'cpan:BINGOS';
3             $POE::Component::Server::IRC::Help::VERSION = '1.62';
4 2     2   17 use strict;
  2         4  
  2         80  
5 2     2   11 use warnings;
  2         5  
  2         2893  
6              
7             sub new {
8 2     2 1 8 my $package = shift;
9 2         13 return bless [], $package;
10             }
11              
12             sub topic {
13 4     4 1 8 my $self = shift;
14 4   50     16 my $topic = shift || return;
15 4         8 my $lines = [];
16              
17 4         12 $topic = lc $topic;
18 4         9 my $method = '_' . $topic;
19 4 100       8 return unless eval { $self->can($method) };
  4         40  
20 3         14 push @$lines, $_ for split m!\n!, $self->$method;
21 3 50       31 return @$lines if wantarray;
22 0         0 return $lines;
23             }
24              
25             sub _accept {
26             return << 'EOT'
27             ACCEPT [parameter]
28              
29             ACCEPT allows you to control who can send you a NOTICE or PRIVMSG
30             while you have user mode +g enabled.
31              
32             For +g: /QUOTE ACCEPT -- Add a permitted mask
33             /QUOTE ACCEPT - -- Remove a permitted mask
34             /QUOTE ACCEPT * -- List the present permitted masks
35             /QUOTE ACCEPT -- List the present permitted masks
36             EOT
37 1     1   14 }
38              
39             sub _admin {
40             return << 'EOT'
41             ADMIN [servername/nickname]
42              
43             With no arguments, ADMIN shows the information that was set by the
44             administrator of the server. This information can take any form that
45             will fit in three lines of text but is usually a list of contacts
46             for the persons that run the server.
47              
48             With a second argument, the administrative information for the
49             specified server is displayed.
50              
51             See also: stats
52             EOT
53 0     0   0 }
54              
55             sub _away {
56             return << 'EOT'
57             AWAY :[MSG]
58              
59             Without an argument, it will set you back. With an argument,
60             it will set you as AWAY with the specified message.
61             EOT
62 0     0   0 }
63              
64             sub _close {
65             return << 'EOT'
66             CLOSE
67              
68             Close any connections from clients or servers who have
69             not fully registered yet.
70              
71             - Requires Oper Priv: close
72             EOT
73 0     0   0 }
74              
75             sub _cmode {
76             return << 'EOT'
77             MODE <+|-> [parameters]
78              
79             =-=-=-=-=-=-=-=-=-=-=
80             CHANNELMODES
81             =-=-=-=-=-=-=-=-=-=-=
82              
83             MODE - DESCRIPTION
84             ------------------------------------------------------------------------
85              
86             NO PARAMETERS:
87             --------------
88              
89             +c - 'No control codes'. Prevent users from sending messages containing
90             control codes to the channel
91              
92             +n - 'No external messages'. This will prevent any user who
93             isn't in the channel from sending messages to the channel.
94              
95             +t - 'Ops Topic'. This will prevent any user who isn't opped,
96             or half-opped (+o/+h) from setting a channel topic.
97              
98             +s - 'Secret'. This will prevent the channel from being shown
99             in a /whois, and in the channel list.
100              
101             +p - 'Paranoia'. Controls whether halfops may invite users
102             into a channel or whether they may kick other members of a
103             channel.
104              
105             +m - 'Moderated'. This will prevent any user who isn't opped,
106             half-opped or voiced (+o/+h/+v) from talking in the channel.
107              
108             +i - 'Invite only'. This will prevent anyone from joining your
109             channel who hasn't received an /invite or whose host isn't in
110             the +I list.
111              
112             +r - 'Registered'. Channel has been registered with ChanServ.
113             Can be set only by servers and services.
114              
115             +u - 'Hide bmasks'. Hides +b/+e/+I mode changes and lists to everyone
116             except channel ops, and half-ops (+o/+h).
117              
118             +C - 'No CTCPs'. Prevent users from sending CTCPs to the channel.
119              
120             +L - 'Large ban list'. Channel can make use of the extended ban list
121             limit. Can be set only by irc-operators, servers and services.
122              
123             +M - 'Modreg'. Unregistered/unidentified clients cannot send text to
124             the channel
125              
126             +N - 'No nick changes'. This will prevent any user who isn't opped or
127             half-opped (+o/+h) from changing their nick while in the channel.
128              
129             +O - 'IRCOps only'. This will prevent anyone who hasn't obtained
130             irc-operator status from joining your channel. Can be set only
131             by irc-operators, servers and services.
132              
133             +R - 'Registered only'. Only registered clients may join a channel
134             with that mode set
135              
136             +S - 'SSL only'. This will prevent anyone who isn't securely connected
137             via SSL/TLS from joining your channel.
138              
139             +T - 'No Notices'. This will prevent any user who isn't opped,
140             half-opped or voiced (+o/+h/+v) from sending channel notices.
141              
142              
143             WITH PARAMETERS:
144             ----------------
145              
146             +k - 'Key'. This will require users joining to know the key,
147             they must then use /join #channel KEY
148              
149             PARAMS: /mode #channel +k key
150              
151             +l - 'Limit'. This will prevent more than LIMIT number of people
152             in the channel at any time.
153              
154             PARAMS: /mode #channel +l limit
155              
156             +v - 'Voice'. This will allow a user to talk in a moderated (+m)
157             channel. Shown by the +nick flag.
158              
159             PARAMS: /mode #channel +vvvv nick1 nick2 nick3 nick4
160              
161             +h - 'Half-op'. This will allow a user to set all of the above
162             modes, (and some more below..), whilst stopping the user
163             from doing harm to the channel. Users who are +h CANNOT
164             kick opped (+o) users, or set modes +h/-h/+o/-o.
165              
166             They can perform all other modes, and can kick regular users.
167              
168             PARAMS: /mode #channel +hhhh nick1 nick2 nick3 nick4
169              
170             +o - 'Op'. This gives the user full control over the channel.
171             An opped user may op other users, set any mode, and
172             remove ops from whoever they want.
173              
174             PARAMS: /mode #channel +oooo nick1 nick2 nick3 nick4
175              
176             +b - 'Ban'. This will prevent a user from entering the channel,
177             based on a nick!ident@host match.
178              
179             PARAMS: /mode #channel +bbbb n!u@h1b n!u@h2b n!u@h3b n!u@h4
180              
181             +e - 'Exempt'. This will allow a user to join a channel even if
182             they are banned (+b), based on a nick!ident@host match.
183              
184             PARAMS: /mode #channel +eeee n!u@h1b n!u@h2b n!u@h3b n!u@h4
185              
186             +I - 'Invite Exempt'. This will allow a user to join an
187             invite-only (+i) channel, based on a nick!user@host match.
188              
189             PARAMS: /mode #channel +IIII n!u@h1b n!u@h2b n!u@h3b n!u@h4
190             EOT
191 0     0   0 }
192              
193             sub _connect {
194             return << 'EOT'
195             CONNECT [port] [server_B]
196              
197             When [server_B] is used, CONNECT asks [server_B] to
198             connect to .
199              
200             The [port] must be specified with [server_B], this is
201             usually 6667. To use the default port in the connect
202             block, you can use 0 as the port.
203              
204             When [server_B] is not used, CONNECT tries to connect
205             your server to .
206              
207             When [port] is used, the connection will be attempted
208             to [port].
209             When [port] is not used, 6667 is used as a default,
210             unless the port is specified in the conf file.
211              
212             - Requires Oper Priv: connect
213             - Requires Oper Priv: connect:remote for servers not connected to you
214             EOT
215 0     0   0 }
216              
217             sub _die {
218             return << 'EOT'
219             DIE
220              
221             Terminates the IRC server.
222              
223             - Requires Oper Priv: die
224             EOT
225 0     0   0 }
226              
227             sub _dline {
228             return << 'EOT'
229             DLINE
230              
231            
232              
233             Adds a DLINE which will deny any connections from the
234             IP address of the banned client. The banned client will
235             receive a message saying he/she is banned with reason [reason]
236              
237             In order to use rather than , must
238             be on your server.
239              
240             - Requires Oper Priv: dline
241             EOT
242 0     0   0 }
243              
244             sub _etrace {
245             return << 'EOT'
246             ETRACE [nickname mask]
247              
248             The ETRACE command will display a list of locally connected users
249             in the following format:
250              
251             User/Oper class nickname username host ip gecos
252              
253             You can optionally give a parameter with nickname mask to limit
254             the output. Wildcards are allowed.
255             EOT
256 0     0   0 }
257              
258             sub _hash {
259             return << 'EOT'
260             HASH
261              
262             Shows the hash statistics.
263             EOT
264 0     0   0 }
265              
266             sub _help {
267             return << 'EOT'
268             HELP [topic]
269              
270             HELP displays the contents of the help
271             file for topic requested. If no topic is
272             requested, it will perform the equivalent
273             to HELP index.
274             EOT
275 0     0   0 }
276              
277             sub _index {
278             return << 'EOT'
279             Available HELP topics:
280              
281             ACCEPT ADMIN AWAY CLOSE
282             CMODE CONNECT DIE DLINE
283             ETRACE HASH HELP INFO
284             INVITE ISON JOIN KICK
285             KILL KLINE KNOCK LINKS
286             LIST LOCOPS LUSERS MAP
287             MODULE MOTD NAMES NICK
288             NOTICE OPER PART
289             PASS PING PONG POST
290             PRIVMSG QUIT REHASH RESTART
291             RESV SET SQUIT STATS
292             TIME TOPIC TRACE UMODE
293             UNDLINE UNKLINE UNRESV UNXLINE
294             USER USERHOST VERSION WALLOPS
295             WHO WHOIS WHOWAS XLINE
296             EOT
297 2     2   31 }
298              
299             sub _info {
300             return << 'EOT'
301             INFO [servername/nickname]
302              
303             INFO displays the copyright, list of authors and contributors
304             to ircd, and the server configuration (as defined in setup.h,
305             defaults.h, and ircd.conf).
306             EOT
307 0     0     }
308              
309             sub _invite {
310             return << 'EOT'
311             INVITE [ ]
312              
313             INVITE sends a notice to the user that you have
314             asked him/her to come to the specified channel.
315             If used without parameters, it displays a list
316             of channels you're invited to.
317             EOT
318 0     0     }
319              
320             sub _ison {
321             return << 'EOT'
322             ISON [nick_B] :[nick_C] [nick_D]
323              
324             ISON will return a list of users who are present
325             on the network from the list that was passed in.
326              
327             This command is rarely used directly.
328             EOT
329 0     0     }
330              
331             sub _join {
332             return << 'EOT'
333             JOIN <#channel1[,#channel2,#channel3...]> [{,}]
334              
335             The JOIN command allows you to enter a public chat area known as
336             a channel. You can join more than one channel at a time,
337             separating their names with commas (',').
338              
339             If the channel has a key set, the second argument must be
340             given to enter. This allows channels to be password protected.
341              
342             See also: part, list
343             EOT
344 0     0     }
345              
346             sub _kick {
347             return << 'EOT'
348             KICK :[reason]
349              
350             The KICK command will remove the specified user
351             from the specified channel, using the optional
352             reason. If reason is not specified, nickname
353             of the user issuing the KICK will be used as reason.
354              
355             You must be a channel operator or half-op to use this command.
356             EOT
357 0     0     }
358              
359             sub _kill {
360             return << 'EOT'
361             KILL :[reason]
362              
363             Disconnects user from the IRC server he/she
364             is connected to with reason [reason].
365              
366             - Requires Oper Priv: kill
367             - Requires Oper Priv: kill:remote for users not on your IRC server
368             EOT
369 0     0     }
370              
371             sub _kline {
372             return << 'EOT'
373             KLINE [time] :[reason]
374              
375             [time] if present, gives number of minutes for KLINE
376              
377             Adds a KLINE which will ban the specified user from
378             using that server. The banned client will receive a
379             message saying he/she is banned with reason [reason]
380              
381             KLINE user@ip.ip.ip.ip :[reason]
382             will kline the user at the unresolved ip.
383             ip.ip.ip.ip can be in CIDR form i.e. 192.168.0.0/24
384             or 192.168.0.* (which is converted to CIDR form internally)
385              
386             For a temporary KLINE, length of kline is given in
387             minutes as the first parameter [time] i.e.
388             KLINE 10 :cool off for 10 minutes
389              
390             KLINE ON irc.server :[reason]
391             will kline the user on irc.server if irc.server accepts
392             remote klines.
393              
394             - Requires Oper Priv: kline
395             EOT
396 0     0     }
397              
398             sub _knock {
399             return << 'EOT'
400             KNOCK
401              
402             KNOCK requests access to a channel that
403             for some reason is not open.
404              
405             KNOCK cannot be used if you are banned, the
406             channel is +p, or it is open.
407             EOT
408 0     0     }
409              
410             sub _links {
411             return << 'EOT'
412             LINKS [mask] [servername/nickname]
413              
414             LINKS shows a list of all servers linked to the host server.
415              
416             With a mask parameter, LINKS will just show servers matching
417             that parameter. With the remote server parameter, LINKS will
418             request the LINKS data from the remote server, matching the
419             mask given.
420              
421             The information provided by the LINKS command can be helpful
422             for determining the overall shape of the network in addition to
423             its size.
424              
425             NOTE: the links command employs an intensive process to generate
426             its output, so sparing use is recommended.
427              
428             See also: connect map squit
429             EOT
430 0     0     }
431              
432             sub _list {
433             return << 'EOT'
434             LIST [options]
435              
436             Without any arguments, LIST will give an entire list of all
437             channels which are not set as secret (+s). The list will be in
438             the form:
439              
440             <#channel> :[modes] [topic]
441              
442             If you want to use a specific filter, you can pass one or more
443             options separated by commas (','). Recognized options are:
444             *mask* List channels matching *mask*
445             !*mask* List channels NOT matching *mask*
446             >num Show only channels which contain more than users
447             users
448             C>num Display channels created within last minutes
449             C minutes ago
450             T>num Limit matches to those channels whose topics are older
451             than minutes
452             T
453             changed within last minutes
454             T:mask Limit matches to those channels whose topics match the
455             given mask
456              
457             To stop a running LIST request, use /LIST command again.
458              
459             See also: join
460             EOT
461 0     0     }
462              
463             sub _locops {
464             return << 'EOT'
465             LOCOPS :
466              
467             Sends a LOCOPS message of to all
468             opers on local server who are umode +l
469              
470             - Requires Oper Priv: locops
471             EOT
472 0     0     }
473              
474             sub _lusers {
475             return << 'EOT'
476             LUSERS [mask] [servername/nickname]
477              
478             LUSERS will display client count statistics
479             for the specified mask, or all users if a
480             mask was not specified. If a remote server
481             is specified, it will request the information
482             from that server.
483             EOT
484 0     0     }
485              
486             sub _map {
487             return << 'EOT'
488             MAP
489              
490             Shows the network map.
491             EOT
492 0     0     }
493              
494             sub _module {
495             return << 'EOT'
496             MODULE
497              
498            
499             LIST - List the modules that are currently loaded into the
500             ircd, along with their address and version.
501             When a match string is provided, LIST only prints
502             modules with names matching the match string.
503              
504             LOAD - Loads a module into the ircd.
505             The optional path can be an absolute path
506             from / or from the IRCD_PREFIX
507             (ie modules/autoload/m_users.la)
508              
509             UNLOAD - Unload a module from the ircd.
510             Use just the module name, the path is not needed.
511             When a module is unloaded, all commands associated
512             with it are unloaded as well.
513              
514             RELOAD - Reloads all modules.
515             All modules are unloaded, then those in modules/autoload
516             are loaded. If "*" has been specified as module name,
517             all modules will be reloaded.
518              
519             - Requires Oper Priv: module
520             EOT
521 0     0     }
522              
523             sub _motd {
524             return << 'EOT'
525             MOTD [servername/nickname]
526              
527             MOTD will display the message of the day for the
528             server name specified, or the local server if there
529             was no parameter.
530             EOT
531 0     0     }
532              
533             sub _names {
534             return << 'EOT'
535             NAMES
536              
537             Displays nicks on a specific channel, also respecting the +i flag of
538             each client. If the channel specified is a channel that the issuing
539             client is currently in, all nicks are listed in similar fashion to
540             when the user first joins a channel.
541              
542             See also: join
543             EOT
544 0     0     }
545              
546             sub _nick {
547             return << 'EOT'
548             NICK
549              
550             When first connected to the IRC server, NICK is required to
551             set the client's nickname.
552              
553             NICK will also change the client's nickname once a connection
554             has been established.
555             EOT
556 0     0     }
557              
558             sub _notice {
559             return << 'EOT'
560             NOTICE :message
561              
562             NOTICE will send a notice message to the
563             user or channel specified.
564              
565             NOTICE supports the following prefixes for sending
566             messages to specific clients in a channel:
567              
568             @ - channel operators only
569             % - channel operators and half-ops
570             + - operators, half-ops, and voiced users
571              
572             Two other targets are permitted:
573              
574             $$servermask - Send a message to a server or set of
575             servers
576             $#hostmask - Send a message to users matching the
577             hostmask specified.
578              
579             These two are operator only.
580              
581             The nick can be extended to fit into the following
582             syntax:
583              
584             username[%hostname]@servername
585              
586             This syntax (without the hostname) is used to securely
587             send a message to a service or a bot.
588             EOT
589 0     0     }
590              
591             sub _oper {
592             return << 'EOT'
593             OPER
594              
595             The OPER command requires two arguments to be given. The first
596             argument is the name of the operator as specified in the
597             configuration file. The second argument is the password for
598             the operator matching the name and host.
599             EOT
600 0     0     }
601              
602             sub _part {
603             return << 'EOT'
604             PART <#channel1[,#channel2,#channel3...]> :[part message]
605              
606             PART requires at least a channel argument to be given. It will
607             exit the client from the specified channel.
608             You can part more than one channel at a time,
609             separating their names with commas (',').
610              
611             An optional part message may be given to be displayed to the
612             channel.
613              
614             See also: join
615             EOT
616 0     0     }
617              
618             sub _pass {
619             return << 'EOT'
620             PASS
621              
622             PASS is used during registration to access
623             a password protected auth {} block.
624              
625             PASS is also used during server registration.
626             EOT
627 0     0     }
628              
629             sub _ping {
630             return << 'EOT'
631             PING :
632              
633             PING will request a PONG from the target. If a
634             user or operator issues this command, the source
635             will always be turned into the nick that issued
636             the PING.
637             EOT
638 0     0     }
639              
640             sub _pong {
641             return << 'EOT'
642             PONG :
643              
644             PONG is the response to a PING command. The
645             source client is the user or server that issued
646             the command, and the pinged client is the
647             user or server that received the PING.
648             EOT
649 0     0     }
650              
651             sub _post {
652             return << 'EOT'
653             POST
654              
655             The POST command is used to help protect against
656             insecure HTTP proxies. Any proxy that sends a POST
657             command during registration will be exited.
658             EOT
659 0     0     }
660              
661             sub _privmsg {
662             return << 'EOT'
663             PRIVMSG :message
664              
665             PRIVMSG will send a standard message to the
666             user or channel specified.
667              
668             PRIVMSG supports the following prefixes for sending
669             messages to specific clients in a channel:
670              
671             @ - channel operators only
672             % - channel operators and half-ops
673             + - operators, half-ops, and voiced users
674              
675             Two other targets are permitted:
676              
677             $$servermask - Send a message to a server or set of
678             servers
679             $#hostmask - Send a message to users matching the
680             hostmask specified.
681              
682             These two are operator only.
683              
684             The nick can be extended to fit into the following
685             syntax:
686              
687             username[%hostname]@servername
688              
689             This syntax (without the hostname) is used to securely
690             send a message to a service or a bot.
691             EOT
692 0     0     }
693              
694             sub _quit {
695             return << 'EOT'
696             QUIT :[quit message]
697              
698             QUIT sends a message to the IRC server letting it know you would
699             like to disconnect. The quit message will be displayed to the
700             users in the channels you were in when you are disconnected.
701             EOT
702 0     0     }
703              
704             sub _rehash {
705             return << 'EOT'
706             REHASH
707              
708            
709             CONF - Re-read the server configuration file(s)
710             DNS - Re-read the /etc/resolv.conf file
711             MOTD - Re-read MOTD file(s)
712              
713             To REHASH on remote servers:
714             REHASH
715              
716             - Requires Oper Priv: rehash
717             - Requires Oper Priv: rehash:remote for REHASH on remote servers
718             EOT
719 0     0     }
720              
721             sub _restart {
722             return << 'EOT'
723             RESTART
724              
725             Restarts the IRC server.
726              
727             - Requires Oper Priv: restart
728             EOT
729 0     0     }
730              
731             sub _resv {
732             return << 'EOT'
733             RESV :
734              
735             -- RESV a channel or nick
736             Will create a resv for the given channel/nick, stopping
737             local users from joining the channel, or using the
738             nick. Will not affect remote clients.
739              
740             If the oper is an admin, they may create a wildcard
741             resv, for example: clones*
742              
743             - Requires Oper Priv: resv
744             EOT
745 0     0     }
746              
747             sub _set {
748             return << 'EOT'
749             SET
750              
751            
752             AUTOCONN - Sets auto-connect on or off for a particular
753             server
754             AUTOCONNALL - Sets auto-connect on or off for all servers
755             FLOODCOUNT - The number of messages allowed before
756             throttling a user due to flooding.
757             Note that this variable is used for both
758             channels and clients.
759             FLOODTIME - The time, in seconds, of FLOODCOUNT.
760             JFLOODCOUNT - Sets the number of joins in JFLOODTIME to
761             count as flooding. Use 0 to disable.
762             JFLOODTIME - The amount of time in seconds in JFLOODCOUNT to consider
763             as join flooding. Use 0 to disable.
764             MAX - Sets the number of max connections
765             to . (This number cannot exceed
766             HARD_FDLIMIT in defaults.h)
767             SPAMNUM - Sets how many join/parts to channels
768             constitutes a possible spambot.
769             SPAMTIME - Below this time on a channel
770             counts as a join/part as above.
771              
772             - Requires Oper Priv: set
773             EOT
774 0     0     }
775              
776             sub _squit {
777             return << 'EOT'
778             SQUIT :[reason]
779              
780             Splits away from your side of the net with [reason].
781              
782             - Requires Oper Priv: squit
783             - Requires Oper Priv: squit:remote for servers not connected to you
784             EOT
785 0     0     }
786              
787             sub _stats {
788             return << 'EOT'
789             STATS [server|nick]
790              
791             Queries server [server] (or your own server if no
792             server parameter is given) for info corresponding to
793             .
794              
795             (X = Admin only.)
796             LETTER (* = Oper only.)
797             ------ (^ = Can be configured to be oper only.)
798             X A - Shows the DNS servers in use
799             * c - Shows configured connect {} blocks
800             * d - Shows temporary D lines
801             * D - Shows permanent D lines
802             * e - Shows exemptions to D lines
803             X E - Shows active timers/events
804             X f - Shows file descriptors
805             * H - Shows configured hub/leaf entries
806             ^ i - Shows configured auth {} blocks
807             ^ K - Shows permanent K lines (or matched permanent klines)
808             ^ k - Shows temporary K lines (or matched temporary klines)
809             * L - Shows IP and generic info about [nick]
810             * l - Shows hostname and generic info about [nick]
811             m - Shows commands and their usage
812             ^ o - Shows configured operator {} blocks
813             ^ P - Shows configured listen {} blocks
814             p - Shows opers connected and their idle times
815             * q - Shows resv'd nicks and channels
816             * s - Shows configured service {} blocks
817             * T - Shows configured motd {} blocks
818             * t - Shows generic server stats
819             * U - Shows configured shared {} and cluster {} blocks
820             ^ u - Shows server uptime
821             * v - Shows connected servers and their idle times
822             * x - Shows gecos bans
823             * y - Shows configured class {} blocks
824             * z - Shows memory stats
825             * ? - Shows connected servers and sendq info about them
826             EOT
827 0     0     }
828              
829             sub _time {
830             return << 'EOT'
831             TIME [servername/nickname]
832              
833             The TIME command will return the server's local date and time.
834              
835             If an argument is supplied, the time for the server specified
836             will be returned.
837             EOT
838 0     0     }
839              
840             sub _topic {
841             return << 'EOT'
842             TOPIC <#channel> :[new topic]
843              
844             With only a channel argument, TOPIC shows the current topic of
845             the specified channel.
846              
847             With a second argument, it changes the topic on that channel to
848             . If the channel is +t, only chanops may change the
849             topic.
850              
851             See also: cmode
852             EOT
853 0     0     }
854              
855             sub _trace {
856             return << 'EOT'
857             TRACE [server | nick]
858              
859             With no argument, TRACE gives a list of all clients connected
860             to the local server, both users and operators.
861              
862             With one argument which is a server, TRACE displays the path
863             to the specified server, and all clients on that server.
864              
865             With one argument which is a client, TRACE displays the
866             path to that client, and that client's information.
867             EOT
868 0     0     }
869              
870             sub _umode {
871             return << 'EOT'
872             MODE <+|->
873              
874             User modes: (* designates that the umode is oper only)
875              
876             USER MODE DESCRIPTION
877             -----------------------------------------------------------------
878             * o - Designates this client is an IRC Operator.
879             Use the OPER command to attain this.
880             i - Designates this client 'invisible'.
881             w - Can see server wallops.
882             W - User is connected using a webirc gateway.
883             * l - Can see oper locops (local wallops).
884             * c - Can see client connections and exits.
885             * u - Can see unauthorized client connections.
886             * j - Can see 'rejected' client notices.
887             * k - Can see server kill messages.
888             * f - Can see 'auth {} block is full' notices.
889             * F - Can see remote client connection/quit notices.
890             * y - Can see stats/links/admin requests to name a few.
891             * d - Can see server debug messages.
892             * n - Can see client nick changes.
893             p - Hides channel list in WHOIS.
894             q - Hides idle and signon time in WHOIS.
895             r - User has been registered and identified for its nick.
896             Can be set only by servers and services.
897             R - Only registered clients may message you.
898             s - Can see generic server messages and oper kills.
899             S - Client is connected via SSL/TLS.
900             * e - Can see new server introduction and split messages.
901             * b - Can see possible bot/join flood warnings.
902             * a - Is marked as a server admin in stats o/p.
903             D - "Deaf": don't receive channel messages.
904             G - "Soft Caller ID": block private messages from people not on
905             any common channels with you (unless they are accepted).
906             g - "Caller ID" mode: only allow accepted clients to message you.
907             * H - IRC operator status is hidden to other users.
908             EOT
909 0     0     }
910              
911             sub _undline {
912             return << 'EOT'
913             UNDLINE
914              
915             Will attempt to undline the given
916             If the dline is conf based, the dline will not be removed.
917              
918             UNDLINE ON irc.server
919              
920             Will undline the given on irc.server if irc.server accepts
921             remote undlines. If the dline is conf based, the dline will
922             not be removed.
923              
924             - Requires Oper Priv: undline
925             EOT
926 0     0     }
927              
928             sub _unkline {
929             return << 'EOT'
930             UNKLINE
931              
932             Will attempt to unkline the given
933             If the kline is conf based, the kline will not be removed.
934              
935             UNKLINE ON irc.server
936              
937             Will unkline the user on irc.server if irc.server accepts
938             remote unklines. If the kline is conf based, the kline will
939             not be removed.
940              
941             - Requires Oper Priv: unkline
942             EOT
943 0     0     }
944              
945             sub _unresv {
946             return << 'EOT'
947             UNRESV
948              
949             -- Remove a RESV on a channel or nick
950             Will attempt to remove the resv for the given
951             channel/nick. If the resv is conf based, the resv
952             will not be removed.
953              
954             UNRESV ON irc.server
955             will unresv the on irc.server if irc.server
956             accepts remote unresvs. If the resv is conf based, the resv
957             will not be removed.
958              
959             - Requires Oper Priv: unresv
960             EOT
961 0     0     }
962              
963             sub _unxline {
964             return << 'EOT'
965             UNXLINE
966              
967             Removes an XLINE
968              
969             UNXLINE ON irc.server
970             will unxline the gecos on irc.server if irc.server accepts
971             remote unxlines. If the xline is conf based, the xline
972             will not be removed.
973              
974             - Requires Oper Priv: unxline
975             EOT
976 0     0     }
977              
978             sub _user {
979             return << 'EOT'
980             USER :
981              
982             USER is used during registration to set your gecos
983             and to set your username if the server cannot get
984             a valid ident response. The second and third fields
985             are not used, but there must be something in them.
986             The reason is backwards compatibility
987             EOT
988 0     0     }
989              
990             sub _userhost {
991             return << 'EOT'
992             USERHOST
993              
994             USERHOST displays the username, hostname,
995             operator status, and presence of valid ident of
996             the specified nickname.
997              
998             If you use USERHOST on yourself, the hostname
999             is replaced with the IP you are connecting from.
1000             This is needed to provide DCC support for spoofed
1001             hostnames.
1002             EOT
1003 0     0     }
1004              
1005             sub _version {
1006             return << 'EOT'
1007             VERSION [servername/nickname]
1008              
1009             VERSION will display the server version of the specified
1010             server, or the local server if there was no parameter.
1011             EOT
1012 0     0     }
1013              
1014             sub _wallops {
1015             return << 'EOT'
1016             WALLOPS :
1017              
1018             Sends a WALLOPS message of to all opers
1019             who are umode +z.
1020              
1021             Server sent WALLOPS go to all opers who are umode +w.
1022              
1023             - Requires Oper Priv: wallops
1024             EOT
1025 0     0     }
1026              
1027             sub _who {
1028             return << 'EOT'
1029             WHO <#channel|user>
1030              
1031             The WHO command displays information about a user,
1032             such as their GECOS information, their user@host,
1033             whether they are an IRC operator or not, etc.
1034             A sample WHO result from a command issued like
1035             "WHO pokey" may look something like this:
1036              
1037             #lamers pokey H pokey@ppp.newbies.net :0 Jim Jones
1038              
1039             The first field indicates the last channel the user
1040             has joined. The second is the user's nickname.
1041             The third field describes the status information about
1042             the user. The possible combinations for this field
1043             are listed below:
1044              
1045             H - The user is not away.
1046             G - The user is set away.
1047             r - The user is using a registered nickname.
1048             * - The user is an IRC operator.
1049             @ - The user is a channel op in the channel listed in the first field.
1050             + - The user is voiced in the channel listed.
1051             % - The user is a half-op in the channel listed.
1052              
1053             The next field contains the username@host of the user.
1054             The final field displays the number of server hops and
1055             the user's GECOS information.
1056              
1057             This command may be executed on a channel, such as
1058             "WHO #lamers" The output will consist of WHO
1059             listings for each user on the channel.
1060              
1061             This command may also be used in conjunction with wildcards
1062             such as * and ?.
1063              
1064             See also: whois, userhost
1065             EOT
1066 0     0     }
1067              
1068             sub _whois {
1069             return << 'EOT'
1070             WHOIS [remoteserver|nick] nick
1071              
1072             WHOIS will display detailed user information for
1073             the specified nick. If the first parameter is
1074             specified, WHOIS will display information from
1075             the specified server, or the server that the
1076             user is on. This is how to remotely see
1077             idle time and away status.
1078             EOT
1079 0     0     }
1080              
1081             sub _whowas {
1082             return << 'EOT'
1083             WHOWAS [count] [nick|server]
1084              
1085             WHOWAS will show you brief information from the last time
1086             the specified nick was connected or changed nickname.
1087             Depending on the number of times they have connected,
1088             there may be more than one listing for the specified nick.
1089             You can limit how many of those listings will be shown
1090             with the count parameter.
1091              
1092             Specifying nick or server as an additional parameter forwards
1093             the query to that server.
1094              
1095             The WHOWAS data will expire after time.
1096             EOT
1097 0     0     }
1098              
1099             sub _xline {
1100             return << 'EOT'
1101             XLINE [time] :[reason]
1102              
1103             [time] if present, gives number of minutes for XLINE
1104              
1105             Adds a XLINE which will ban the specified gecos from
1106             that server. The banned client will receive a message
1107             saying he/she is banned with reason [reason]
1108              
1109             XLINE [time] ON irc.server :[reason]
1110             will xline the gecos on irc.server if irc.server accepts
1111             remote xlines.
1112              
1113             - Requires Oper Priv: xline
1114             EOT
1115 0     0     }
1116              
1117             'Help! I need somebody!';
1118              
1119             =encoding utf8
1120              
1121             =head1 NAME
1122              
1123             POE::Component::Server::IRC::Help - Help text for POE::Component::Server::IRC
1124              
1125             =head1 DESCRIPTION
1126              
1127             POE::Component::Server::IRC::Help is a helper module for
1128             L which contains all the help files for
1129             the C command.
1130              
1131             =head1 CONSTRUCTOR
1132              
1133             =head2 new
1134              
1135             Creates a C object.
1136              
1137             =head1 METHODS
1138              
1139             =head2 topic
1140              
1141             Takes a help topic. Returns C if there was an error or the topic
1142             does not exist. Returns in list context the lines of topic text or in
1143             scalar context an C of lines of topic text.
1144              
1145             =head1 AUTHOR
1146              
1147             Chris 'BinGOs' Williams
1148              
1149             =head1 LICENSE
1150              
1151             Copyright C<(c)> Chris Williams
1152              
1153             This module may be used, modified, and distributed under the same terms as
1154             Perl itself. Please see the license that came with your Perl distribution
1155             for details.
1156              
1157             =head1 SEE ALSO
1158              
1159             L
1160              
1161             =cut