… | |
… | |
3 | # the version command |
3 | # the version command |
4 | |
4 | |
5 | cf::client->attach ( |
5 | cf::client->attach ( |
6 | on_connect => sub { |
6 | on_connect => sub { |
7 | my ($ns) = @_; |
7 | my ($ns) = @_; |
|
|
8 | |
|
|
9 | $ns->send_packet ("1234\x01\x00\x80\xff"); |
8 | |
10 | |
9 | $ns->send_packet ("version " . $cf::json_coder->encode ({ |
11 | $ns->send_packet ("version " . $cf::json_coder->encode ({ |
10 | server => "Deliantra Server", |
12 | server => "Deliantra Server", |
11 | serverver => cf::VERSION, |
13 | serverver => cf::VERSION, |
12 | })); |
14 | })); |
13 | }, |
15 | }, |
14 | on_version => sub { |
16 | on_version => sub { |
15 | my ($ns, $arg) = @_; |
17 | my ($ns, $arg) = @_; |
16 | |
18 | |
17 | if ($arg =~ /^\{/) { |
19 | if ($arg =~ /^\{/) { |
18 | # past 2.10 |
20 | # post 2.10 |
19 | my $ver = $cf::json_coder->decode ($arg); |
21 | my $ver = $cf::json_coder->decode ($arg); |
20 | $ns->{version} = $ver; |
22 | $ns->{version} = $ver; |
21 | $ns->{who_version} = "$ver->{clientver} $ver->{osver}"; |
23 | $ns->{who_version} = "$ver->{clientver} $ver->{osver}"; |
22 | |
|
|
23 | # dclient prefers bump messages |
|
|
24 | $ns->bumpmsg ($ns->{client} eq "dclient"); |
|
|
25 | |
|
|
26 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
24 | } elsif ($arg =~ /^(\d+) (\d+) (.*)$/) { |
27 | # 2.10 and earlier |
25 | # 2.10 and earlier |
28 | $ns->{who_version} = $3; |
26 | $ns->{who_version} = $3; |
29 | $ns->{version} = { |
27 | $ns->{version} = { |
30 | protover => 0, |
28 | protover => 0, |
31 | cs_version => $1, |
29 | cs_version => $1, |
32 | sc_version => $2, |
30 | sc_version => $2, |
33 | client => $3, |
31 | client => $3, |
34 | }; |
32 | }; |
35 | } |
33 | } |
|
|
34 | |
|
|
35 | $ns->ext_msg (capabilities => |
|
|
36 | # id, name, flags (1 == 2d), edge length |
|
|
37 | tileset => [[1, "default 64x64 faceset", 1, 64], [0, "default 32x32 faceset", 1, 32], [2, "default text faceset", 2, 1]], |
|
|
38 | ); |
|
|
39 | |
|
|
40 | # dclient prefers bump messages |
|
|
41 | $ns->bumpmsg ($ns->{client} eq "dclient"); |
36 | }, |
42 | }, |
37 | ); |
43 | ); |
38 | |
44 | |