ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/chat.ext
(Generate patch)

Comparing deliantra/server/ext/chat.ext (file contents):
Revision 1.12 by pippijn, Fri Mar 2 00:29:08 2007 UTC vs.
Revision 1.15 by root, Fri Apr 27 00:49:58 2007 UTC

36cf::register_command listen => sub { 36cf::register_command listen => sub {
37 my ($pl, $msg) = @_; 37 my ($pl, $msg) = @_;
38 my $player = cf::player::find_active $pl->name; 38 my $player = cf::player::find_active $pl->name;
39 39
40 if ($msg ne "") { 40 if ($msg ne "") {
41 $msg = 10 if $msg > 10;
42
41 my $prev_listen = $player->listening; 43 my $prev_listen = $player->listening;
42 $player->listening ($msg); 44 $player->listening ($msg);
43 if ($prev_listen == $player->listening) { 45 if ($prev_listen == $player->listening) {
44 $pl->message ("Your verbose level stayed $prev_listen.", cf::NDI_UNIQUE); 46 $pl->message ("Your verbose level stayed $prev_listen.", cf::NDI_UNIQUE);
45 } else { 47 } else {
823 825
824 if ($msg) { 826 if ($msg) {
825 my $name = $pl->name; 827 my $name = $pl->name;
826 my $NOW = time; 828 my $NOW = time;
827 829
828 utf8::encode $msg; # ->message not yet utf8-ified
829 cf::LOG cf::llevDebug, sprintf "QBERT [%s] %s\n", $name, $msg; 830 cf::LOG cf::llevDebug, sprintf "QBERT [%s] %s\n", $name, $msg;
830 ext::schmorp_irc::do_notice (sprintf "[%s] %s", $name, $msg); 831 ext::schmorp_irc::do_notice (sprintf "[%s] %s", $name, $msg);
831 832
832 $_->ob->message ("$name chats: $msg", cf::NDI_BLUE) 833 $_->ob->message ("$name chats: $msg", cf::NDI_BLUE)
833 for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW && $_->listening >= 10 } cf::player::list; 834 for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW && $_->listening >= 10 } cf::player::list;
1017 $pl->message ("No such player or ambiguous name: $target", cf::NDI_UNIQUE); 1018 $pl->message ("No such player or ambiguous name: $target", cf::NDI_UNIQUE);
1018 } 1019 }
1019 } 1020 }
1020}; 1021};
1021 1022
1022cf::register_command seen => sub {
1023 my ($pl, $args) = @_;
1024
1025 if (my ($login) = $args =~ /(\S+)/) {
1026 if ($login eq $pl->name) {
1027 $pl->message ("Very funny, $login. Ha. Ha.", cf::NDI_UNIQUE);
1028 } elsif (cf::player::find_active $login) {
1029 $pl->message ("$login is right here on this server!", cf::NDI_UNIQUE);
1030 } elsif (cf::player::exists $login
1031 and stat sprintf "%s/%s/%s/%s.pl", cf::localdir, cf::playerdir, ($login) x 2) {
1032 my $time = (stat _)[9];
1033
1034 $pl->message ("$login was last seen here "
1035 . (POSIX::strftime "%Y-%m-%d %H:%M:%S +0000", gmtime $time)
1036 . " which was " . (int +(time - $time) / 3600) . " hours ago.", cf::NDI_UNIQUE);
1037 } else {
1038 $pl->message ("No player named $login is known to me.", cf::NDI_UNIQUE);
1039 }
1040 } else {
1041 $pl->message ("Usage: seen <player>", cf::NDI_UNIQUE);
1042 }
1043};
1044

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines