Games::AssaultCube::Log::Line::ClientStatus - Describes the ClientStatus event in a log line


Games-AssaultCube documentation Contained in the Games-AssaultCube distribution.

Index


Code Index:

NAME

Top

Games::AssaultCube::Log::Line::ClientStatus - Describes the ClientStatus event in a log line

ABSTRACT

Top

Describes the ClientStatus event in a log line

DESCRIPTION

Top

This module holds the "ClientStatus" event data from a log line. Normally, you would not use this class directly but via the Games::AssaultCube::Log::Line class.

This line is emitted once in a while as the AC server goes through the game.

Attributes

Those attributes hold information about the event. As this class extends the Games::AssaultCube::Log::Line::Base class, you can also use it's attributes too.

cn

The client connection id

nick

The nick of the client

team

The id of the client's team

	0 = CLA
	1 = RVSF
	2 = NONE

team_name

The team name of the client ( CLA, RVSF, NONE )

frags

The number of frags this client has done

deaths

The number of deaths this client has done

flags

The number of flags taken ( not always defined - depends on gamemode )

role

The id of the client's role

	0 = DEAFULT
	1 = ADMIN

role_name

The role name of the client ( DEFAULT, ADMIN )

ip

The ip of the client

AUTHOR

Top

Apocalypse <apocal@cpan.org>

Props goes to the BS clan for the support!

This project is sponsored by http://cubestats.net

COPYRIGHT AND LICENSE

Top


Games-AssaultCube documentation Contained in the Games-AssaultCube distribution.

# Declare our package
package Games::AssaultCube::Log::Line::ClientStatus;

# import the Moose stuff
use Moose;

# Initialize our version
use vars qw( $VERSION );
$VERSION = '0.04';

extends 'Games::AssaultCube::Log::Line::Base';

with	'Games::AssaultCube::Log::Line::Base::TeamInfo',
	'Games::AssaultCube::Log::Line::Base::RoleInfo',
	'Games::AssaultCube::Log::Line::Base::NickIP';

# TODO improve validation for everything here, ha!

has 'cn' => (
	isa		=> 'Int',
	is		=> 'ro',
	required	=> 1,
);

has 'frags' => (
	isa		=> 'Int',
	is		=> 'ro',
	required	=> 1,
);

has 'deaths' => (
	isa		=> 'Int',
	is		=> 'ro',
	required	=> 1,
);

has 'flags' => (
	isa		=> 'Int',
	is		=> 'ro',
);

has 'tostr' => (
	isa		=> 'Str',
	is		=> 'ro',
	lazy		=> 1,
	default		=> sub {
		my $self = shift;

		# we want nicely-formatted output
		return sprintf( "Client status of %25s (%4s): %3d frags, %3d deaths%s", $self->nick, $self->team_name, $self->frags, $self->deaths, ( defined $self->flags ? sprintf( ", %d flags", $self->flags ) : "" ) );
	},
);

# TODO Moose can't export multiple roles into this class unless it defines BUILD...
# Error:  'Games::AssaultCube::Log::Line::Base::Mastermode|Games::AssaultCube::Log::Line::Base::Gamemode' requires the method 'BUILD' to be implemented by 'Games::AssaultCube::Log::Line::GameStatus' at /usr/local/share/perl/5.10.0/Moose/Meta/Role/Application.pm line 59
sub BUILD {
	return;
}

no Moose;
__PACKAGE__->meta->make_immutable;

1;
__END__