]> git.donarmstrong.com Git - infobot.git/blobdiff - src/IRC/Irc.pl
notfound uses @query now; removed origQuery
[infobot.git] / src / IRC / Irc.pl
index f3775984bca4e72da832a62fdd1835000ffefd7e..d2bc6fae87752903c7713a0c4ed7c8557a7ca40c 100644 (file)
@@ -271,9 +271,11 @@ sub performReply {
        }
        &msg($who, $reply);
     } elsif ($msgType eq 'chat') {
-       &DEBUG("pR: chat: reply => '$reply'.");
-       &DEBUG("pR: chat: sock => '$dcc{'CHAT'}{$nick}'.");
-       &DEBUG("pR: chat: sock => '$dcc{'CHAT'}{$who}'.");
+       if (!exists $dcc{'CHAT'}{$who}) {
+           &WARN("pSR: dcc{'CHAT'}{$who} does not exist.");
+           return;
+       }
+       $conn->privmsg($dcc{'CHAT'}{$who}, $reply);
     } else {
        &ERROR("PR: msgType invalid? ($msgType).");
     }
@@ -352,6 +354,8 @@ sub mode {
        return;
     }
 
+    &DEBUG("MODE $chan $modes");
+
     rawout("MODE $chan $modes");
 }
 
@@ -463,6 +467,21 @@ sub joinNextChan {
        if (my $i = scalar @joinchan) {
            &status("joinNextChan: $i chans to join.");
        }
+    } else {
+       return unless (&IsParam("chanServ_ops"));
+       if (!$nickserv) {
+           &DEBUG("jNC: nickserv/chanserv not up?");
+       }
+
+       my @chans = split(/[\s\t]+/, $param{'chanServ_ops'});
+       foreach $chan (keys %channels) {
+           next unless (grep /^$chan$/i, @chans);
+
+           if (!exists $channels{$chan}{'o'}{$ident}) {
+               &status("ChanServ ==> Requesting ops for $chan.");
+               &rawout("PRIVMSG ChanServ :OP $chan $ident");
+            }
+       }
     }
 }