]> git.donarmstrong.com Git - infobot.git/commitdiff
- sub "op" fixed.
authordms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Sat, 17 Feb 2001 13:40:57 +0000 (13:40 +0000)
committerdms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Sat, 17 Feb 2001 13:40:57 +0000 (13:40 +0000)
- added sub "unban"

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@400 c11ca15a-4712-0410-83d8-924469b57eb5

src/IRC/Irc.pl

index e8e341e6c68d683e92887c1e79c78a2a66fffd66..f18264c687aa3f462523f2a85c775a6d0b7bfc26 100644 (file)
@@ -400,7 +400,7 @@ sub op {
     my ($chan, @who) = @_;
     my $os     = "o" x scalar(@who);
 
-    &mode($chan, "+$os ".@who);
+    &mode($chan, "+$os @who");
 }
 
 sub deop {
@@ -443,11 +443,10 @@ sub kick {
 
 sub ban {
     my ($mask,$chan) = @_;
-    my (@chans) = ($chan eq "") ? (keys %channels) : lc($chan);
+    my (@chans) = ($chan =~ /^\*?$/) ? (keys %channels) : lc($chan);
     my $ban    = 0;
 
-    &DEBUG("ban: mask = $mask, chan = $chan");
-    if ($chan ne "" and &validChan($chan) == 0) {
+    if ($chan !~ /^\*?$/ and &validChan($chan) == 0) {
        &ERROR("ban: invalid channel $chan.");
        return;
     }
@@ -466,6 +465,27 @@ sub ban {
     return $ban;
 }
 
+sub unban {
+    my ($mask,$chan) = @_;
+    my (@chans) = ($chan =~ /^\*?$/) ? (keys %channels) : lc($chan);
+    my $ban    = 0;
+
+    &DEBUG("unban: mask = $mask, chan = @chans");
+
+    foreach $chan (@chans) {
+       if (!exists $channels{$chan}{o}{$ident}) {
+           &status("unBan: do not have ops on $chan :(");
+           next;
+       }
+
+       &status("Removed ban $mask from $chan.");
+       &rawout("MODE $chan -b $mask");
+       $ban++;
+    }
+
+    return $ban;
+}
+
 sub quit {
     my ($quitmsg) = @_;
     &status("QUIT $param{'ircNick'} has quit IRC ($quitmsg)");