package Net::Hotline::User; ## Copyright(c) 1998-2002 by John C. Siracusa. All rights reserved. This ## program is free software; you can redistribute it and/or modify it under ## the same terms as Perl itself. use strict; use vars qw($VERSION); $VERSION = '0.80'; sub new { my($class, @args) = @_; my($data) = join('', @args); my($self); if(@args == 5) { $self = { 'SOCKET' => $args[0], 'NICK' => $args[1], 'LOGIN' => $args[2], 'ICON' => $args[3], 'COLOR' => $args[4], 'INFO' => undef }; } elsif(@args == 1) { my($nick_len) = unpack("n", substr($data, 6, 2)); $self = { 'SOCKET' => unpack("n", substr($data, 0, 2)), 'ICON' => unpack("n", substr($data, 2, 2)), 'COLOR' => unpack("n", substr($data, 4, 2)), 'NICK' => join('', substr($data, 8, $nick_len)), 'LOGIN' => undef, 'INFO' => undef }; } else { $self = { 'SOCKET' => undef, 'NICK' => undef, 'LOGIN' => undef, 'ICON' => undef, 'COLOR' => undef, 'INFO' => undef }; } bless $self, $class; return $self; } sub socket { $_[0]->{'SOCKET'} = $_[1] if(@_ > 1 && $_[1] =~ /^\d+$/); return $_[0]->{'SOCKET'}; } sub nick { $_[0]->{'NICK'} = $_[1] if(defined($_[1])); return $_[0]->{'NICK'}; } sub login { $_[0]->{'LOGIN'} = $_[1] if(defined($_[1])); return $_[0]->{'LOGIN'}; } sub icon { $_[0]->{'ICON'} = $_[1] if(@_ > 1 && $_[1] =~ /^-?\d+$/); return $_[0]->{'ICON'}; } sub color { $_[0]->{'COLOR'} = $_[1] if(@_ > 1 && $_[1] =~ /^\d+$/); return $_[0]->{'COLOR'}; } sub info { $_[0]->{'INFO'} = $_[1] if(defined($_[1])); return $_[0]->{'INFO'}; } 1;