5. Change the badwords interface to be the same as baddx, badspotter et al.
[spider.git] / perl / DXCommandmode.pm
index 5e6c722646867868d7eb47171fc0fbdab6ab9fb5..a5aaa5cfebd1f122c1b68b274d166e3c613774bf 100644 (file)
@@ -32,7 +32,7 @@ use Sun;
 use Internet;
 
 use strict;
-use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug);
+use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug $suppress_ann_to_talk);
 
 %Cache = ();                                   # cache of dynamically loaded routine's mod times
 %cmd_cache = ();                               # cache of short names
@@ -40,6 +40,8 @@ $errstr = ();                                 # error string from eval
 %aliases = ();                                 # aliases for (parts of) commands
 $scriptbase = "$main::root/scripts"; # the place where all users start scripts go
 $maxerrors = 20;                               # the maximum number of concurrent errors allowed before disconnection
+$suppress_ann_to_talk = 1;             # don't announce 'to <call> ' or '<call> ' type announcements
+
 
 use vars qw($VERSION $BRANCH);
 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
@@ -703,6 +705,11 @@ sub announce
        my $text = shift;
        my ($filter, $hops);
 
+       if ($suppress_ann_to_talk && $to ne $self->{call}) {
+               my $call = AnnTalk::is_talk_candidate($_[0], $text);
+               return if $call && Route::get($call);
+       }
+
        if ($self->{annfilter}) {
                ($filter, $hops) = $self->{annfilter}->it(@_ );
                return unless $filter;