File Coverage

blib/lib/POE/Component/IRC/Plugin/IRCDHelp.pm
Criterion Covered Total %
statement 5 7 71.4
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 8 10 80.0


line stmt bran cond sub pod time code
1             package POE::Component::IRC::Plugin::IRCDHelp;
2             BEGIN {
3 1     1   24768 $POE::Component::IRC::Plugin::IRCDHelp::AUTHORITY = 'cpan:SCILLEY';
4             }
5             {
6             $POE::Component::IRC::Plugin::VERSION = '0.01';
7             }
8            
9 1     1   10 use warnings;
  1         2  
  1         35  
10 1     1   483 use POE::Component::IRC::Plugin qw( :ALL );
  0            
  0            
11            
12             sub PCI_register {
13             my ( $self, $irc ) = @_;
14            
15             $irc->plugin_register( $self, 'SERVER', qw( public ) );
16            
17             return 1;
18             }
19            
20             sub PCI_unregister {
21             my ( $self, $irc ) = @_;
22            
23             return 1;
24             }
25            
26             sub new {
27            
28             my $class = shift;
29             my $self = {};
30             return bless $self, $class;
31            
32             }
33            
34             sub _default {
35             my ($self, $irc, $event) = splice @_, 0, 3;
36            
37             print "Default called for $event\n";
38            
39             # Return an exit code
40             return PCI_EAT_NONE;
41             }
42            
43             # Someone asked for help in a chan, return list.
44             # Either this isnt loading or something is wrong here
45             # When giving the command !help, nothing gets printed to the channel
46             sub S_public {
47             my ($self, $irc) = splice @_, 0, 2;
48            
49             # Parameters are passed as scalar-refs including arrayrefs.
50             my $nick = ( split /!/, ${ $_[0] } )[0];
51             my $channel = ${ $_[1] }->[0];
52             my $msg = ${ $_[2] };
53            
54             if (my ($in) = $msg =~ /^!help/) {
55             $in =~ tr[a-zA-Z][n-za-mN-ZA-M];
56            
57             # Print the contents to the channel
58             $irc->yield( privmsg => $channel => "Hello $nick, Welcome to Help");
59             $irc->yield( privmsg => $channel => "Type !NickServ to get assistance with the Nick Services");
60             $irc->yield( privmsg => $channel => "Type !ChanServ to get assistance with the Channel Services");
61             $irc->yield( privmsg => $channel => "Type !MemoServ to get assistance with the Memo Services");
62             $irc->yield( privmsg => $channel => "Type !ChangeNick to get assistance with Changing Your Nick");
63             }
64            
65             if (my ($in) = $msg =~ /^!NickServ/) {
66             $in =~ tr[a-zA-Z][n-za-mN-ZA-M];
67            
68             # Print the contents to the channel
69             $irc->yield( privmsg => $channel => "Using Nick Services");
70             $irc->yield( privmsg => $channel => "Please type /msg NickServ HELP");
71             $irc->yield( privmsg => $channel => "The Nick Service will send you all of it\'s help options");
72             }
73            
74             if (my ($in) = $msg =~ /^!ChanServ/) {
75             $in =~ tr[a-zA-Z][n-za-mN-ZA-M];
76            
77             # Print the contents to the channel
78             $irc->yield( privmsg => $channel => "Using Channel Services");
79             $irc->yield( privmsg => $channel => "Please type /msg ChanServ HELP");
80             $irc->yield( privmsg => $channel => "The Channel Service will send you all of it\'s help options");
81             }
82            
83             if (my ($in) = $msg =~ /^!MemoServ/) {
84             $in =~ tr[a-zA-Z][n-za-mN-ZA-M];
85            
86             # Print the contents to the channel
87             $irc->yield( privmsg => $channel => "Using Memo Services");
88             $irc->yield( privmsg => $channel => "Please type /msg MemoServ HELP");
89             $irc->yield( privmsg => $channel => "The Memo Service will send you all of it\'s help options");
90             }
91            
92             if (my ($in) = $msg =~ /^!ChangeNick/) {
93             $in =~ tr[a-zA-Z][n-za-mN-ZA-M];
94            
95             # Print the contents to the channel
96             $irc->yield( privmsg => $channel => "Changing your Nick");
97             $irc->yield( privmsg => $channel => "$nick, Changing your Nick is very simple");
98             $irc->yield( privmsg => $channel => "just type /nick yournewnick");
99             $irc->yield( privmsg => $channel => "EXAMPLE: I want to change my nick to something else");
100             $irc->yield( privmsg => $channel => "I would simply type /nick ServerBot thus using ServerBot as my new nick");
101             $irc->yield( privmsg => $channel => "That is all there is to it.");
102            
103             }
104             else {
105             $irc->yield( privmsg => $channel => "$nick, I am sorry, I do not understand that command, please type !help");
106            
107             # We don't want other plugins to process this
108             return PCI_EAT_PLUGIN;
109             }
110            
111             # Default action is to allow other plugins to process it.
112             return PCI_EAT_NONE;
113             }
114            
115             1;
116            
117             __END__