# do we need to send a forward/opernam?
my $lastoper = $user->lastoper || 0;
my $homenode = $user->homenode || "";
- if ($homenode eq $main::mycall && $lastoper + $DXUser::lastoperinterval < $main::systime) {
+ if ($homenode eq $main::mycall && $main::systime >= $lastoper + $DXUser::lastoperinterval) {
run_cmd($main::me, "forward/opernam $call");
- $user->lastoper($main::systime);
+ $user->lastoper($main::systime + ((int rand(10)) * 86400));
}
# run a script send the output to the punter
}
$self->state('prompt');
delete $self->{talklist};
- } elsif ($cmdline =~ m(^/\w+)) {
- $cmdline =~ s(^/)();
- $self->send_ans(run_cmd($self, $cmdline));
+ } elsif ($cmdline =~ m|^/+\w+|) {
+ $cmdline =~ s|^/||;
+ my $sendit = $cmdline =~ s|^/+||;
+ my @in = $self->run_cmd($cmdline);
+ $self->send_ans(@in);
+ if ($sendit && $self->{talklist} && @{$self->{talklist}}) {
+ foreach my $l (@in) {
+ my @bad;
+ if (@bad = BadWords::check($l)) {
+ $self->badcount(($self->badcount||0) + @bad);
+ Log('DXCommand', "$self->{call} swore: $l");
+ } else {
+ for (@{$self->{talklist}}) {
+ $self->send_talks($_, $l);
+ }
+ }
+ }
+ }
$self->send($self->talk_prompt);
} elsif ($self->{talklist} && @{$self->{talklist}}) {
# send what has been said to whoever is in this person's talk list
no strict 'refs';
for (keys %Cache) {
- undef *{$_};
+ undef *{$_} unless /cmd_cache/;
dbg("Undefining cmd $_") if isdbg('command');
}
%cmd_cache = ();