ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/schmorp-clientchk.ext
Revision: 1.1
Committed: Fri Dec 15 19:29:18 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Log Message:
moved perl extensions into server codebase, where they belong

File Contents

# User Rev Content
1 root 1.1 #! perl
2    
3     # check client version and string for old clients and possibly issue warnings for them
4    
5     cf::attach_to_players
6     on_login => sub {
7     my ($pl) = @_;
8    
9     my $client = $pl->socket->client;
10    
11     my $is_cf = $client =~ /^(?:GTK|X11) (?:Unix|Win32) Client ([.0-9]+)/
12     ? join "", map chr, split /\./, $1
13     : undef;
14    
15     my $is_jx = $client =~ /^JCrossclient 1.0 alpha-(\d+)/
16     ? join "", map chr, split /\./, $1
17     : undef;
18    
19     if ($is_cf) { # && $is_cf lt v1.9.2) {
20     $pl->ob->message ("(enabling workaround for client buffer overflow)", cf::NDI_RED | cf::NDI_UNIQUE);
21     $pl->socket->buggy_mapscroll;
22     }
23    
24     if ($is_jx) {
25     $pl->ob->message ("(enabling buggy map scroll workaround)", cf::NDI_RED | cf::NDI_UNIQUE);
26     $pl->socket->buggy_mapscroll;
27     }
28    
29     if ($is_jx) {
30     $pl->ob->message ("You are using a known to be buggy client (an alpha version, too). "
31     . "If you encounter map freezes or other bugs, consider using a more stable client "
32     . "such as CFPlus or gcfclient or gcfclient2");
33     }
34    
35     if ($is_cf && $is_cf lt v1.9.1) {
36     $pl->ob->message (<<EOF, cf::NDI_RED | cf::NDI_UNIQUE);
37    
38     *** *** *** *** *** *** *** *** *** *** *** *** *** ***
39     *** *** *** *** *** *** *** *** *** *** *** *** *** ***
40     *** WARNING: Your client is BUGGY
41     *** *** *** *** *** *** *** *** *** *** *** *** *** ***
42     *** *** *** *** *** *** *** *** *** *** *** *** *** ***
43    
44     Your client ($client) is known to be buggy. Upgrading is highly recommended, otherwise you may experience crashes, strange lockups or other problems.
45    
46     EOF
47     }
48     },
49     ;
50