ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/schmorplog.ext
Revision: 1.11
Committed: Wed Nov 14 08:09:46 2007 UTC (16 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_32
Changes since 1.10: +4 -2 lines
Log Message:
switch from Event to EV

File Contents

# User Rev Content
1 root 1.10 #! perl # depends=irc
2 root 1.1
3 root 1.11 our $UPDATE_LOGINS = EV::idle Coro::unblock_sub {
4     $_[0]->stop;
5    
6 root 1.1 my ($status, @pl) = ext::commands::who_listing;
7    
8 root 1.7 #TODO: write files asynchronously
9 root 1.8 open my $fh, ">", "$LOCALDIR/usercount";
10 root 1.1 print $fh scalar @pl;
11    
12 root 1.8 open my $fh, ">", "$LOCALDIR/userlisting.html";
13 root 1.1 for ($status, @pl) {
14     s/[<&]//g;
15     print $fh "$_<br />\n";
16     }
17 root 1.11 };
18 root 1.1
19 root 1.3 cf::player->attach (
20 root 1.1 on_login => sub {
21     my ($pl) = @_;
22     $pl->ob->set_ob_key_value (schmorplog_last_login => time);
23    
24     $pl->ob->set_ob_key_value (schmorplog_login_count =>
25     1 + $pl->ob->get_ob_key_value ("schmorplog_login_count"));
26    
27 root 1.4 (my $client = $pl->ns->version) =~ s/\n/\\n/g;
28 root 1.1
29     $pl->ob->set_ob_key_value (schmorplog_client => $client);
30    
31 root 1.9 ext::irc::do_notice (sprintf "%s logged in", $pl->ob->name);
32 root 1.1
33     $UPDATE_LOGINS->start;
34 root 1.5
35     warn "LOGIN: ", $pl->ob->name, " from ", $pl->ns->host;
36 root 1.1 },
37     on_logout => sub {
38 root 1.6 my ($pl, $cleanly) = @_;
39 root 1.1 $pl->ob->set_ob_key_value (schmorplog_last_logout => time);
40 root 1.9 ext::irc::do_notice (sprintf "%s left", $pl->ob->name);
41 root 1.1
42     $UPDATE_LOGINS->start;
43 root 1.5
44 root 1.6 warn "LOGOUT: ", $pl->ob->name, " from ", $pl->ns->host, " ($cleanly)";
45 root 1.1 },
46     on_birth => sub {
47     my ($pl) = @_;
48 root 1.9 ext::irc::do_notice (sprintf "%s was just born", $pl->ob->name);
49 root 1.1 $pl->ob->set_ob_key_value (schmorplog_birthdate => time);
50 root 1.5
51     warn "BIRTH: ", $pl->ob->name, " from ", $pl->ns->host;
52 root 1.1 },
53     on_quit => sub {
54     my ($pl) = @_;
55 root 1.9 ext::irc::do_notice (sprintf "%s quit the game", $pl->ob->name);
56 root 1.5
57     warn "QUIT: ", $pl->ob->name, " from ", $pl->ns->host;
58 root 1.1 },
59     on_death => sub {
60     my ($pl) = @_;
61 root 1.9 ext::irc::do_notice (sprintf "%s was killed by %s", $pl->ob->name, $pl->killer);
62 root 1.1
63     $pl->ob->set_ob_key_value (schmorplog_death_count =>
64     1 + $pl->ob->get_ob_key_value ("schmorplog_death_count"));
65     },
66     on_load => sub {
67     my ($pl, $path) = @_;
68     $pl->ob->set_ob_key_value (schmorplog_last_load => time);
69     },
70     on_save => sub {
71     my ($pl, $path) = @_;
72     $pl->ob->set_ob_key_value (schmorplog_last_save => time);
73     },
74 root 1.3 );
75 root 1.1