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 | # post 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 | |
|
|
14 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
22 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
|
|
23 | # 2.10 and earlier |
15 | $ns->{who_version} = $3; |
24 | $ns->{who_version} = $3; |
16 | $ns->{version} = { |
25 | $ns->{version} = { |
17 | protover => 0, |
26 | protover => 0, |
18 | cs_version => $1, |
27 | cs_version => $1, |
19 | sc_version => $2, |
28 | sc_version => $2, |
20 | client => $3, |
29 | client => $3, |
21 | }; |
30 | }; |
22 | } |
31 | } |
|
|
32 | |
|
|
33 | # dclient prefers bump messages |
|
|
34 | $ns->bumpmsg ($ns->{client} eq "dclient"); |
|
|
35 | |
23 | }, |
36 | }, |
24 | ); |
37 | ); |
25 | |
38 | |