--- deliantra/server/ext/commands.ext 2006/12/23 15:49:40 1.5 +++ deliantra/server/ext/commands.ext 2007/01/01 16:00:09 1.7 @@ -70,7 +70,7 @@ . ($ns->afk ? " [AFK]" : "") . ($ob->flag (cf::FLAG_WIZ) ? " [WIZ]" : "") . " [" . $pl->ns->version . "]" - . " [" . ($pl->peaceful || $privileged ? $ob->map->path : $ob->map->region ? $ob->map->region->name : "the unknown") . "]" + . " [" . ($pl->peaceful || $privileged ? $ob->map->{path}->visible_name : $ob->map->region ? $ob->map->region->name : "the unknown") . "]" . (sprintf " [rtt %.3fs]", $pl->ns->rtt * 1e-6) . ($privileged ? " " . $pl->ns->host : "") } sort { (lc $a->ob->name) cmp (lc $b->ob->name) } @pl @@ -124,4 +124,31 @@ 1 }; + +cf::register_command maps => sub { + my ($ob, $arg) = @_; + + no re 'eval'; $arg = qr<$arg>; + + my $format = "%2s %2s %5s %-30.30s\n"; + + my $msg = sprintf $format, "Pl", "Fl", "Reset", "Name"; + + for (sort keys %cf::MAP) { + my $map = $cf::MAP{$_} + or next; + + next unless $map->path =~ $arg; + + $msg .= sprintf $format, + (scalar $map->players), + 0, + (int $map->reset_at - $cf::RUNTIME), + $map->{path}->visible_name; + } + + $ob->reply (undef, $msg); + + 1 +};