--- deliantra/server/ext/metaserver.ext 2007/04/16 06:23:41 1.4 +++ deliantra/server/ext/metaserver.ext 2007/11/14 08:09:46 1.7 @@ -9,37 +9,26 @@ our $VERSION = cf::VERSION; our $PREFIX = ""; -our $SUFFIX = "ng"; +our $SUFFIX = "trt"; -our $UPDATE_METASERVER = Event->timer ( - reentrant => 0, - after => 5, - interval => 299, - hard => 1, - data => cf::WF_AUTOCANCEL, - cb => Coro::unblock_sub { - my $socket = new Coro::Socket - Proto => 'udp', - PeerAddr => $cf::CFG{metaserver_metaserver}, - LocalAddr => $cf::CFG{metaserver_serveraddr} - or die "metaserver socket creation error: $!"; - - my $num_players = grep - $_->ob->map - && !$_->hidden - && !$_->ob->flag (cf::FLAG_WIZ), - cf::player::list; - - my $pkt = sprintf "%s|%d|%s|%s|%d|%d|%d", - $cf::CFG{metaserver_servername}, - $num_players, - "$PREFIX$VERSION$SUFFIX", - $cf::CFG{metaserver_comment}, - 0, # ibytes - 0, # obytes - time - $cf::uptime; - - syswrite $socket, $pkt; - }, -); +our $UPDATE_METASERVER = cf::periodic 299, Coro::unblock_sub { + my $socket = new Coro::Socket + Proto => 'udp', + PeerAddr => $cf::CFG{metaserver_metaserver}, + LocalAddr => $cf::CFG{metaserver_serveraddr} + or die "metaserver socket creation error: $!"; + + my $num_players = cf::player::num_playing; + + my $pkt = sprintf "%s|%d|%s|%s|%d|%d|%d", + $cf::CFG{metaserver_servername}, + $num_players, + "$PREFIX$VERSION$SUFFIX", + $cf::CFG{metaserver_comment}, + 0, # ibytes + 0, # obytes + time - $cf::UPTIME; + + syswrite $socket, $pkt; +};