1 | #! perl # mandatory |
1 | #! perl # mandatory |
2 | |
2 | |
3 | # the version command |
3 | # the version command |
4 | |
4 | |
5 | cf::client->attach ( |
5 | cf::client->attach ( |
|
|
6 | on_connect => sub { |
|
|
7 | my ($ns) = @_; |
|
|
8 | |
|
|
9 | $ns->send_packet ("version " . $cf::json_coder->encode ({ |
|
|
10 | server => "Deliantra Server", |
|
|
11 | serverver => cf::VERSION, |
|
|
12 | })); |
|
|
13 | }, |
6 | on_version => sub { |
14 | on_version => sub { |
7 | my ($ns, $arg) = @_; |
15 | my ($ns, $arg) = @_; |
8 | |
16 | |
9 | if ($arg =~ /^\{/) { |
17 | if ($arg =~ /^\{/) { |
|
|
18 | # past 2.10 |
10 | my $ver = $cf::json_coder->decode ($arg); |
19 | my $ver = $cf::json_coder->decode ($arg); |
11 | $ns->{version} = $ver; |
20 | $ns->{version} = $ver; |
12 | $ns->{who_version} = "$ver->{clientver} $ver->{osver}"; |
21 | $ns->{who_version} = "$ver->{clientver} $ver->{osver}"; |
13 | |
22 | |
14 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
23 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
|
|
24 | # 2.10 and earlier |
15 | $ns->{who_version} = $3; |
25 | $ns->{who_version} = $3; |
16 | $ns->{version} = { |
26 | $ns->{version} = { |
17 | protover => 0, |
27 | protover => 0, |
18 | cs_version => $1, |
28 | cs_version => $1, |
19 | sc_version => $2, |
29 | sc_version => $2, |