|
sub s_get_online_friends {
my ($self, $packet) = @_;
my $plain = $self->decrypt(get_data($packet), $self->{Key});
return unless defined $plain;
$self->dumphex($plain);
$self->msg("----- Online Friends -----\n");
$self->desect($plain, ['H*', 'S_FLIST', 0, 1]) if $self->{Desect};
for(my $i = 1; $i<length($plain); $i+=33) {
#next if _read($plain, 'N', $i+5, 4) == 0; # why this?
my $fid = _read($plain, 'N', $i, 4);
my $loc = get_location(substr($plain, $i+5, 6));
# one 0x00 to seperate
my $status = get_status(substr($plain, $i+12, 1));
my $nick = $self->get_nickname($fid);
$self->msg(sprintf ":%6s: %15s %8d %-16s\n", $status, $loc, $fid, $nick);
$self->desect($plain, ['H*', 'S_FLIST', $i+13, 22]) if $self->{Desect};
}
$self->msg("==========================\n");
return 1;
} |
|