summaryrefslogtreecommitdiffstats
path: root/modules/services.pl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/services.pl')
-rw-r--r--modules/services.pl44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/services.pl b/modules/services.pl
new file mode 100644
index 0000000..d110b60
--- /dev/null
+++ b/modules/services.pl
@@ -0,0 +1,44 @@
+use warnings;
+use strict;
+
+sub doServices {
+ my ($conn, $event) = @_;
+ if ($event->{from} eq 'NickServ!NickServ@services.')
+ {
+ print "NickServ: $event->{args}->[0]\n";
+ if ( $event->{args}->[0] eq 'This nickname is owned by someone else' )
+ {
+ $conn->privmsg( 'NickServ', "identify $::pass" );
+ }
+ elsif ( $event->{args}->[0] eq 'Password accepted - you are now recognized' )
+ {
+ $conn->join($_) foreach ( @{$::settings->{autojoins}} );
+ }
+ elsif ($event->{args}->[0] =~ /has been killed$/ )
+ {
+ $conn->nick( $::settings->{nick} );
+ }
+ elsif ($event->{args}->[0] =~ /Password Incorrect/ )
+ {
+ $conn->join($_) foreach ( @{$::settings->{autojoins}} );
+ }
+ }
+ elsif ($event->{from} eq 'ChanServ!ChanServ@services.')
+ {
+ print "ChanServ: $event->{args}->[0] \n";
+ if ($event->{args}->[0] =~ /You are already opped on \[.(.*).\]/)
+ {
+ doQueue($conn, $1);
+ }
+ elsif ( $event->{args}->[0] =~ /^All.*bans matching.*have been cleared on(.*)/)
+ {
+ $conn->join($1);
+ }
+ }
+}
+
+sub Services::killsub {
+ undef &doServices;
+}
+
+return 1;