… | |
… | |
60 | ext::irc::do_notice $name . " logged in"; |
60 | ext::irc::do_notice $name . " logged in"; |
61 | |
61 | |
62 | undef $PLAYERSEEN{$name}; |
62 | undef $PLAYERSEEN{$name}; |
63 | $UPDATE_LOGINS->start; |
63 | $UPDATE_LOGINS->start; |
64 | |
64 | |
65 | warn "LOGIN: ", $pl->ob->name, " from ", $pl->ns->host; |
65 | cf::trace "LOGIN: ", $pl->ob->name, " from ", $pl->ns->host; |
66 | }, |
66 | }, |
67 | on_logout => sub { |
67 | on_logout => sub { |
68 | my ($pl, $cleanly) = @_; |
68 | my ($pl, $cleanly) = @_; |
69 | $pl->ob->kv_set (schmorplog_last_logout => time); |
69 | $pl->ob->kv_set (schmorplog_last_logout => time); |
70 | ext::irc::do_notice $pl->ob->name . " left"; |
70 | ext::irc::do_notice $pl->ob->name . " left"; |
71 | |
71 | |
72 | $UPDATE_LOGINS->start; |
72 | $UPDATE_LOGINS->start; |
73 | |
73 | |
74 | warn "LOGOUT: ", $pl->ob->name, " from ", $pl->ns->host, " ($cleanly)"; |
74 | cf::trace "LOGOUT: ", $pl->ob->name, " from ", $pl->ns->host, " ($cleanly)"; |
75 | }, |
75 | }, |
76 | on_birth => sub { |
76 | on_birth => sub { |
77 | my ($pl) = @_; |
77 | my ($pl) = @_; |
78 | $pl->ob->kv_set (schmorplog_birthdate => time); |
78 | $pl->ob->kv_set (schmorplog_birthdate => time); |
79 | ext::irc::do_notice $pl->ob->name . " was just born"; |
79 | ext::irc::do_notice $pl->ob->name . " was just born"; |
80 | |
80 | |
81 | warn "BIRTH: ", $pl->ob->name, " from ", $pl->ns->host; |
81 | cf::trace "BIRTH: ", $pl->ob->name, " from ", $pl->ns->host; |
82 | }, |
82 | }, |
83 | on_quit => sub { |
83 | on_quit => sub { |
84 | my ($pl) = @_; |
84 | my ($pl) = @_; |
85 | ext::irc::do_notice $pl->ob->name . " quit the game"; |
85 | ext::irc::do_notice $pl->ob->name . " quit the game"; |
86 | |
86 | |
87 | warn "QUIT: ", $pl->ob->name, " from ", $pl->ns->host; |
87 | cf::trace "QUIT: ", $pl->ob->name, " from ", $pl->ns->host; |
88 | }, |
88 | }, |
89 | on_death => sub { |
89 | on_death => sub { |
90 | my ($pl) = @_; |
90 | my ($pl) = @_; |
91 | |
91 | |
92 | my $msg = $pl->expand_cfpod ($pl->ob->name . " was killed by " . $pl->killer_name . "."); |
92 | my $msg = $pl->expand_cfpod ($pl->ob->name . " was killed by " . $pl->killer_name . "."); |
… | |
… | |
167 | my $name = $ns->pl && $ns->pl->ob ? $ns->pl->ob->name : "<unknown>"; |
167 | my $name = $ns->pl && $ns->pl->ob ? $ns->pl->ob->name : "<unknown>"; |
168 | |
168 | |
169 | $msg =~ y/\x0a\x20-\x7f//cd; |
169 | $msg =~ y/\x0a\x20-\x7f//cd; |
170 | $msg =~ s/\s+$//; |
170 | $msg =~ s/\s+$//; |
171 | |
171 | |
172 | warn sprintf "clientlog [%s/%s]: %s\n", $ns->host, $name, $msg; |
172 | cf::error sprintf "clientlog [%s/%s]: %s\n", $ns->host, $name, $msg; |
173 | |
173 | |
174 | () |
174 | () |
175 | }; |
175 | }; |
176 | |
176 | |
177 | # log max playercount every minute |
177 | # log max playercount every minute |
… | |
… | |
198 | |
198 | |
199 | IO::AIO::aio_open $path, O_WRONLY | O_CREAT, 0666, sub { |
199 | IO::AIO::aio_open $path, O_WRONLY | O_CREAT, 0666, sub { |
200 | my $fh = shift |
200 | my $fh = shift |
201 | or return; |
201 | or return; |
202 | |
202 | |
|
|
203 | # the truncate is 1440 extra syscalls, but saves 1439 |
|
|
204 | # slow metadata updates. |
|
|
205 | IO::AIO::aio_truncate $fh, 1440, sub { |
203 | IO::AIO::aio_write $fh, $offs, 1, $cnt, 0, sub { |
206 | IO::AIO::aio_write $fh, $offs, 1, $cnt, 0, sub { |
204 | IO::AIO::aio_close $fh; |
207 | IO::AIO::aio_close $fh; |
|
|
208 | }; |
205 | }; |
209 | }; |
206 | }; |
210 | }; |
207 | }; |
211 | }; |
208 | |
212 | |
209 | |
|
|