X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXCommandmode.pm;h=96c135376495fbbb0747f64b7ee996ae4657bfdb;hb=8f58735f5c9c090f2e5e00e05c7ad0834eccb741;hp=a5aaa5cfebd1f122c1b68b274d166e3c613774bf;hpb=e0e6a2d303693eb681a6eefa90a2821ddfdeb5fd;p=spider.git diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index a5aaa5cf..96c13537 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -30,9 +30,11 @@ use AnnTalk; use WCY; use Sun; use Internet; +use Script; + use strict; -use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug $suppress_ann_to_talk); +use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug); %Cache = (); # cache of dynamically loaded routine's mod times %cmd_cache = (); # cache of short names @@ -40,8 +42,6 @@ $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 ' or ' ' type announcements - use vars qw($VERSION $BRANCH); $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); @@ -102,6 +102,7 @@ sub start $self->{wx} = $user->wantwx; $self->{dx} = $user->wantdx; $self->{logininfo} = $user->wantlogininfo; + $self->{ann_talk} = $user->wantann_talk; $self->{here} = 1; # get the filters @@ -144,6 +145,10 @@ sub start run_cmd($DXProt::me, "forward/opernam $call"); $user->lastoper($main::systime); } + + # run a script send the output to the punter + my $script = new Script(lc $call); + $script->run($self) if $script; } # @@ -705,9 +710,9 @@ sub announce my $text = shift; my ($filter, $hops); - if ($suppress_ann_to_talk && $to ne $self->{call}) { + if (!$self->{ann_talk} && $to ne $self->{call}) { my $call = AnnTalk::is_talk_candidate($_[0], $text); - return if $call && Route::get($call); + return if $call; } if ($self->{annfilter}) {