]> git.donarmstrong.com Git - infobot.git/blobdiff - src/IRC/IrcHelpers.pl
allow per-channel addressCharacter
[infobot.git] / src / IRC / IrcHelpers.pl
index 7c8b7725aefc452f4464332b31f5cc63e5293565..13f44695b800463a2ff98383c909f2b59055f6d4 100644 (file)
@@ -83,6 +83,7 @@ sub hookMsg {
     $message   =~ s/[\cA-\c_]//ig;     # strip control characters
     $message   =~ s/^\s+//;            # initial whitespaces.
     $who       =~ tr/A-Z/a-z/;         # lowercase.
+    my $mynick = $conn->nick();
 
     &showProc();
 
@@ -90,12 +91,19 @@ sub hookMsg {
     if ($msgType =~ /private/) {
        # private messages.
        $addressed = 1;
+       if (&IsChanConf('addressCharacter')) {
+           $addressCharacter = getChanConf('addressCharacter');
+           if ($message =~ s/^\Q$addressCharacter\E//) {
+               &msg($who, "please don't use the the addressCharacter when private messaging");
+           }
+       }
     } else {
        # public messages.
        # addressing revamped by the xk.
        ### below needs to be fixed...
-       if (&IsParam("addressCharacter")) {
-           if ($message =~ s/^\Q$param{'addressCharacter'}\E//) {
+       if (&IsChanConf('addressCharacter')) {
+           $addressCharacter = getChanConf('addressCharacter');
+           if ($message =~ s/^\Q$addressCharacter\E//) {
                $addrchar  = 1;
                $addressed = 1;
            }
@@ -103,7 +111,6 @@ sub hookMsg {
 
        if ($message =~ /^($mask{nick})([\;\:\>\, ]+) */) {
            my $newmessage = $';
-           my $mynick = $conn->nick();
            if ($1 =~ /^\Q$mynick\E$/i) {
                $message   = $newmessage;
                $addressed = 1;
@@ -168,11 +175,11 @@ sub hookMsg {
        }
 
        if ($addrchar) {
-           &status("$b_cyan$who$ob is short-addressing me");
+           &status("$b_cyan$who$ob is short-addressing $mynick");
        } elsif ($msgType eq "private") {       # private.
-           &status("$b_cyan$who$ob is /msg'ing me");
+           &status("$b_cyan$who$ob is /msg'ing $mynick");
        } else {                                # public?
-           &status("$b_cyan$who$ob is addressing me");
+           &status("$b_cyan$who$ob is addressing $mynick");
        }
 
        $flood{$floodwho}{$message} = time();
@@ -234,9 +241,12 @@ sub hookMsg {
        $seencache{$who}{'msg'}  = $orig{message};
        $seencache{$who}{'msgcount'}++;
     }
-
+    if (&IsChanConf("minVolunteerLength")) {
+       # FIXME hack to treat unaddressed as if using addrchar
+       $addrchar = 1;
+    }
     return if ($skipmessage);
-    return unless (&IsParam("minVolunteerLength") or $addressed);
+    return unless ($addrchar or $addressed);
 
     foreach (@ignore) {
        s/\*/\\S*/g;