… | |
… | |
6 | |
6 | |
7 | @ARGV == 5 or die "Usage: $0 host port login password dm-pass\n"; |
7 | @ARGV == 5 or die "Usage: $0 host port login password dm-pass\n"; |
8 | |
8 | |
9 | use base Crossfire::Protocol::Base; |
9 | use base Crossfire::Protocol::Base; |
10 | |
10 | |
|
|
11 | my $login = AnyEvent->condvar; |
|
|
12 | |
11 | sub refresh; |
13 | sub refresh; |
12 | |
14 | |
13 | sub logged_in { |
15 | sub logged_in { |
14 | my ($self) = @_; |
16 | my ($self) = @_; |
|
|
17 | |
|
|
18 | $login->broadcast; |
15 | |
19 | |
16 | $self->send_command ("dmhide $ARGV[4]"); |
20 | $self->send_command ("dmhide $ARGV[4]"); |
17 | print "\nlogged in.\n"; |
21 | print "\nlogged in.\n"; |
18 | refresh; |
22 | refresh; |
19 | } |
23 | } |
20 | |
24 | |
|
|
25 | sub fatal { |
|
|
26 | print "\n$_[0]\n"; |
|
|
27 | readline::ResetTTY (); |
|
|
28 | exit 1; |
|
|
29 | } |
|
|
30 | |
21 | sub eof { |
31 | sub eof { |
22 | my ($self) = @_; |
32 | my ($self) = @_; |
23 | |
33 | |
24 | print "\nserver closed connection.\n"; |
34 | fatal "server closed connection."; |
25 | readline::ResetTTY (); |
35 | } |
26 | exit; |
36 | |
|
|
37 | sub query { |
|
|
38 | my ($self, $flags, $prompt) = @_; |
|
|
39 | fatal "unexpected prompt: $prompt"; |
|
|
40 | } |
|
|
41 | |
|
|
42 | sub drawinfo { |
|
|
43 | my ($self, $flags, $text) = @_; |
|
|
44 | |
|
|
45 | print "\n$text\n"; |
|
|
46 | refresh; |
27 | } |
47 | } |
28 | |
48 | |
29 | my $cf = new main |
49 | my $cf = new main |
30 | host => $ARGV[0], |
50 | host => $ARGV[0], |
31 | port => $ARGV[1] || 13327, |
51 | port => $ARGV[1] || 13327, |
… | |
… | |
58 | sub Term::ReadLine::Tk::register_Tk { } |
78 | sub Term::ReadLine::Tk::register_Tk { } |
59 | |
79 | |
60 | $rl = new Term::ReadLine "mpg123sh"; |
80 | $rl = new Term::ReadLine "mpg123sh"; |
61 | $rl->tkRunning(1); |
81 | $rl->tkRunning(1); |
62 | |
82 | |
|
|
83 | #===========================================================================# |
|
|
84 | |
|
|
85 | $login->wait; |
|
|
86 | |
63 | while (defined (my $cmd = $rl->readline ("$ARGV[0]> "))) { |
87 | while (defined (my $cmd = $rl->readline ("$ARGV[0]> "))) { |
64 | $cf->send_ext_req (perl_eval => $cmd, sub { |
88 | $cf->send_ext_req (perl_eval => $cmd, sub { |
65 | my ($data) = @_; |
89 | my ($data) = @_; |
66 | |
90 | |
67 | print "\n"; |
91 | print "\n"; |
… | |
… | |
76 | } |
100 | } |
77 | refresh; |
101 | refresh; |
78 | }); |
102 | }); |
79 | } |
103 | } |
80 | |
104 | |
81 | #===========================================================================# |
|
|
82 | |
|
|