1 |
#! perl |
2 |
|
3 |
cf::register_command tell => 0, sub { |
4 |
my ($who, $args) = @_; |
5 |
my ($target, $msg) = split /\s+/, $args, 2; |
6 |
|
7 |
my $name = $who->name; |
8 |
|
9 |
if (my $other = cf::player::find $target) { |
10 |
|
11 |
$other->ob->{ext_ignore_tell}{$name} >= time |
12 |
or delete $other->ob->{ext_ignore_tell}{$name}; |
13 |
|
14 |
if ($target ne $name and !$other->ob->{ext_ignore_tell}{$name}) { |
15 |
$who->message ("You tell $target: $msg"); |
16 |
$other->ob->message ("$name tells you: $msg"); |
17 |
$other->ob->{ext_last_tell} = $name; |
18 |
} elsif ($target eq $name) { |
19 |
$who->message ("You are talking to yourself, you freak!", cf::NDI_UNIQUE); |
20 |
} else { |
21 |
$who->message ($other->ob->name . " ignores what you say. Give up on it.", cf::NDI_UNIQUE); |
22 |
} |
23 |
|
24 |
} else { |
25 |
$who->message ("No such player or ambiguous name. Your message: $msg", cf::NDI_UNIQUE); |
26 |
} |
27 |
}; |
28 |
|
29 |
cf::register_command reply => 0, sub { |
30 |
my ($who, $args) = @_; |
31 |
my $name = $who->name; |
32 |
|
33 |
if (my $other = cf::player::find $who->{ext_last_tell}) { |
34 |
|
35 |
$other->ob->{ext_ignore_tell}{$name} >= time |
36 |
or delete $other->ob->{ext_ignore_tell}{$name}; |
37 |
|
38 |
if (!$other->ob->{ext_ignore_tell}{$name}) { |
39 |
$who->message ("You tell " . $other->ob->name . ": $args"); |
40 |
$other->ob->message ("$name tells you: $args"); |
41 |
$who->{ext_last_tell} = $other->ob->name; |
42 |
} else { |
43 |
$who->message ($other->ob->name . " ignores what you say. Give up on it.", cf::NDI_UNIQUE); |
44 |
} |
45 |
|
46 |
} else { |
47 |
$who->message ("Can't reply, player left. Your message: $args", cf::NDI_UNIQUE); |
48 |
} |
49 |
}; |
50 |
|
51 |
|