Subject: | KILL buggfix |
_event_kill was called with 2 args but expected 3 args. And the event sends 4 args.
I changed the two places to send and take the four arguments. I don't know the spec, but I looked at what I got from the event and set the method up the same way. And it worked, provided that $from was a user created by the service.
--- DB.pm 2003-09-26 16:31:38.000000000 +0200
+++ DB.pm.new 2004-01-11 00:53:45.000000000 +0100
@@ -96,7 +96,7 @@
}
sub _event_kill {
- my ($from, $target, $reason) = @_;
+ my ($from, $target, $code, $reason) = @_;
&_event_quit($target, "Killed: $reason");
}
@@ -504,8 +504,15 @@
sub kill {
my ($self, $from, $nick, $reason) = @_;
- &Net::IRCService::ircsend(":$from KILL $nick :$reason");
- &_event_kill($nick, $reason);
+
+ my $lc_from = _lc($from);
+ my $serv = $users{$lc_from}{'server'};
+ my $host = $users{$lc_from}{'host'};
+ my $ident = $users{$lc_from}{'ident'};
+ my $code = join '!', $serv, $host, $ident, $from;
+
+ &Net::IRCService::ircsend(":$from KILL $nick :$code ($reason)");
+ &_event_kill($from, $nick, undef, $reason);
}
sub kick {