X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fchat.pl;h=13018765d9c43caad44fe8b7ec78f74e0a7b756d;hb=4b207544da78b182bd12e94eab01451694749012;hp=874f6ac1c869aa5058343028ece2030c114282f9;hpb=776d7bb9277c9d24708e297f240395b51b0aaa93;p=spider.git diff --git a/cmd/chat.pl b/cmd/chat.pl index 874f6ac1..13018765 100644 --- a/cmd/chat.pl +++ b/cmd/chat.pl @@ -5,41 +5,53 @@ # # Copyright (c) 2003 Dirk Koopman G1TLH # -# $Id$ # my ($self, $line) = @_; +#$DB::single = 1; + my @f = split /\s+/, $line, 2; return (1, $self->msg('e5')) if $self->remotecmd || $self->inscript; -return (1, $self->msg('e34')) unless @f == 2; -return (1, $self->msg('e28')) unless $self->registered; +return (1, $self->msg('e34')) unless @f >= 1; +return (1, $self->msg('e28')) unless $self->isregistered; my $target = uc $f[0]; return (1, $self->msg('e35', $target)) unless grep uc $_ eq $target, @{$self->user->group}; +$f[1] ||= ''; + my $from = $self->call; -my $text = unpad $f[1]; +my $text = $f[1] ; my $t = ztime(time); my $toflag = '*'; +my @out; # change ^ into : for transmission $line =~ s/\^/:/og; -my @bad; -if (@bad = BadWords::check($line)) { - $self->badcount(($self->badcount||0) + @bad); - LogDbg('DXCommand', "$self->{call} swore: $line (with words:" . join(',', @bad) . ")"); - Log('chat', $target, $from, "[to $from only] $line"); - return (1, "$target de $from <$t>: $line"); +if ($text) { + my @bad; + if (@bad = BadWords::check($line)) { + $self->badcount(($self->badcount||0) + @bad); + LogDbg('DXCommand', "$self->{call} swore: $line (with words:" . join(',', @bad) . ")"); + Log('chat', $target, $from, "[to $from only] $line"); + return (1, "$target de $from <$t>: $line"); + } + + $self->send_chats($target, $text); +} else { + my $ref = $self->talklist; + if ($ref) { + push @out, $self->msg('chattoomany', $target, $self->talklist->[0]); + } else { + $self->talklist([ $target ]); + push @out, $self->msg('chatinst', $target); + $self->state('chat'); + } + Log('chat', $target, $from, "Started chat mode on $target"); + push @out, $self->chat_prompt; } -#PC12^IZ4DYU^*^PSE QSL INFO TO A71AW TNX IN ADV 73's^^IK5PWJ-6^0^H21^~ -my $msgid = DXProt::nextchatmsgid(); -$text = "#$msgid $text"; - -$main::me->normal(DXProt::pc93($target, $from, undef, $text)); - -#DXProt:):send_chat($self, 1, DXProt::pc12($from, $text, '*', $target), $from, '*', $text, $target, $main::mycall, '0'); -return (1, ()); +return (1, @out);