1
###################################
3
###################################
6
package ProtocolPacket_GetUserInfo;
10
use Protocol::ProtocolPacket;
14
our @ISA = "ProtocolPacket";
22
###############################################
23
# Generate this packet #
24
###############################################
28
$self->{USER} = undef;
29
$self->{ROOM} = undef;
31
$self->{REP_CODE} = undef;
34
################################################
35
# Read this packet, checks for correct syntax #
36
################################################
38
my ( $self, $server, $client ) = @_;
41
$self->{USER} = $client->read_string();
44
#################################################
45
# Execute a read() packet and collect the data #
47
#################################################
49
my ( $self, $server, $client ) = @_;
51
my $sclient = $server->get_client_by_name( $self->{USER} );
54
$self->{REP_CODE} = $UI_UNKNOWN;
58
$self->{REP_CODE} = $UI_ACK;
59
$self->{ROOM} = $sclient->room();
60
$self->{GAME} = $sclient->game();
63
############################################################
64
# Send a reply package, this assumes read() and execute #
65
# have been called or a error has occured in one of them #
66
############################################################
68
my ( $self, $server, $client, $flags ) = @_;
70
$flags = $self->set_is_reply( $flags );
74
if($self->{REP_CODE} != $UI_ACK) {
75
$client->write_16( $size );
76
$client->write_16( $self->{ID} );
77
$client->write_32( $self->{INDEX} );
78
$client->write_16( $flags );
79
$client->write_8( $self->{REP_CODE} );
83
$size += (length($self->{ROOM})+1)*2
84
+(length($self->{GAME})+1)*2;
87
$client->write_16( $size );
88
$client->write_16( $self->{ID} );
89
$client->write_32( $self->{INDEX} );
90
$client->write_16( $flags );
91
$client->write_8( $self->{REP_CODE} );
92
$client->write_string ( $self->{GAME} );
93
$client->write_string ( $self->{ROOM} );