armagetron / ladderlog-parser
A framework to handle ladderlog input from ArmagetronAd
Installs: 28
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/armagetron/ladderlog-parser
Requires
- php: >=5.4.0
- react/event-loop: 0.4.*
- react/stream: 0.4.*
This package is not auto-updated.
Last update: 2025-10-21 08:50:24 UTC
README
A framework to handle ladderlog input from Armagetron
Installation
You can instal the parser using composer:
"require": { "armagetron/ladderlog-parser": "dev-master" },
Usage
<?php require_once('vendor/autoload.php'); use Armagetron\Parser\ParserInterface; class Example implements ParserInterface { public function playerEntered(Event $event) { // Do something with $event } } $parser = new Parser(new Example()); $parser->run();
Inside your Parser class you can define a function for any ladderlog line. For example:
// PLAYER_ENTERED <name> <ip> <screen_name> // CamelCase public function playerEntered(Event $event) { // Do something with $event } // or under_score protected function player_entered($event) { // Do something with $event }
$event is an object of Armagetron\Event (see below)
Also see example.php
Available Classes
The script automaticly saves players and teams into memory.
Get a player
$player = $event->getGameObjects()->getPlayers()->getById($id); // where $id is the player name/gid $all_players = $event->getGameObjects()->getPlayers(); // array with all players
Default player attributes
Always available
$player->name $player->ip $player->screenName $player->ping $player->joined // timestamp $player->is_human $player->team // Team object $player->team_kills $player->kills $player->deaths $player->suicides
Available in StyCt
$player->red $player->green $player->blue $player->xpos $player->ypos $player->xdir $player->ydir $player->authenticated // true or false
Available in Trunk
$player->accessLevel
Available functions for Player
Player::get($id) ->kick() ->ban() ->kill() ->suspend() // optional pass the number of rounds here. Default = 5 ->unsuspend() ->message('Some message') // Performs PLAYER_MESSAGE <player> <message> ->online_time(); // returns the online time in seconds.
Get a team
$team = $event->getGameObjects()->getTeams()->getById($id); // where $id is the teams name $all_players = $event->getGameObjects()->getTeams(); // array with all teams
Default team attributes
$team->getPlayers(); // array with player objects
The Command class
Command::raw($s); // write $s\n to output Command::comment($s); // write a comment to the log file Command::say($s); // SAY $s Command::console_message($s); // CONSOLE_MESSAGE $s Command::center_message($s); // CENTER_MESSAGE $s Command::player_message(Player $player, $message); // send $message to $player Command::kill(Player $player); Command::kick(Player $player); Command::ban_player(Player $player, $minutes = 5); Command::ban_ip($ip, $minutes = 5); Command::suspend(Player $player, $rounds = null); Command::unsuspend(Player $player); Command::sinclude($filename);
The Event Object
Common Servers
public function authority_blurb( $event )
  $event => Class of Armagetron\Event\Event (
        blurb => string
        player => Object of Armagetron\GameObject\Player
        text => string
  )
public function basezone_conquered( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        x => double
        y => double
  )
public function basezone_conquerer( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function chat( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        text => string
  )
public function command( $event )
  $event => Class of Armagetron\Event\Event (
        command => string
        player => Object of Armagetron\GameObject\Player
        text => string
  )
public function death_frag( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function death_suicide( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function death_teamkill( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function encoding( $event )
  $event => Class of Armagetron\Event\Event (
        charset => string
  )
public function game_end( $event )
  $event => Class of Armagetron\Event\Event (
        time_string => string
  )
public function game_time( $event )
  $event => Class of Armagetron\Event\Event (
        time => integer
  )
public function match_winner( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        players => Array(
              Object of Armagetron\GameObject\Player
              ...
        )
  )
public function new_match( $event )
  $event => Class of Armagetron\Event\Event (
        time_string => string
  )
public function new_round( $event )
  $event => Class of Armagetron\Event\Event (
        time_string => string
  )
public function num_humans( $event )
  $event => Class of Armagetron\Event\Event (
        number_humans => integer
  )
public function online_player( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ping => double
        team => Object of Armagetron\GameObject\Team
  )
public function player_entered( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ip => string
        screen_name => string
  )
public function player_left( $event )
  $event => Class of Armagetron\Event\Event (
        player => string
        ip => string
  )
public function player_renamed( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        new_name => string
        ip => string
        screen_name => string
  )
public function positions( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        players => Array(
              Object of Armagetron\GameObject\Player
              ...
        )
  )
public function round_score( $event )
  $event => Class of Armagetron\Event\Event (
        score => integer
        player => Object of Armagetron\GameObject\Player
        team => Object of Armagetron\GameObject\Team
  )
public function round_score_team( $event )
  $event => Class of Armagetron\Event\Event (
        score => integer
        team => Object of Armagetron\GameObject\Team
  )
public function round_winner( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        players => Array(
              Object of Armagetron\GameObject\Player
              ...
        )
  )
public function sacrifice( $event )
  $event => Class of Armagetron\Event\Event (
        hole_user => Object of Armagetron\GameObject\Player
        hole_maker => Object of Armagetron\GameObject\Player
        wall_owner => Object of Armagetron\GameObject\Player
  )
public function team_created( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
  )
public function team_destroyed( $event )
  $event => Class of Armagetron\Event\Event (
        team => string
  )
public function team_player_added( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        player => Object of Armagetron\GameObject\Player
  )
public function team_player_removed( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        player => Object of Armagetron\GameObject\Player
  )
public function team_renamed( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        new_name => string
  )
public function wait_for_external_script( $event )
  $event => Class of Armagetron\Event\Event (
  )
For Trunk Servers
public function death_deathzone( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function death_explosion( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function matches_left( $event )
  $event => Class of Armagetron\Event\Event (
        number_matches => integer
  )
public function new_warmup( $event )
  $event => Class of Armagetron\Event\Event (
        number_matches => integer
        time_string => string
  )
public function online_player( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ping => double
        team => Object of Armagetron\GameObject\Team
        access_level => integer
  )
public function player_respawn( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        team => Object of Armagetron\GameObject\Team
        respawner_team => Object of Armagetron\GameObject\Team
  )
public function winzone_player_enter( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
For sty+ct Servers
public function admin_command( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ip => string
        access_level => integer
        command => string
  )
public function admin_login( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ip => string
  )
public function admin_logout( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ip => string
  )
public function ball_vanish( $event )
  $event => Class of Armagetron\Event\Event (
        goid => string
        zone_name => string
        x => double
        y => double
  )
public function basezone_conquered( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        x => double
        y => double
        enemies_in_zone => Array(
              Object of Armagetron\GameObject\Player
              ...
        )
  )
public function basezone_conquerer( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        percent_won => string
  )
public function basezone_conquerer_team( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        score => string
  )
public function base_enemy_respawn( $event )
  $event => Class of Armagetron\Event\Event (
        respawner => Object of Armagetron\GameObject\Player
        player_respawned => string
  )
public function base_respawn( $event )
  $event => Class of Armagetron\Event\Event (
        respawner => Object of Armagetron\GameObject\Player
        player_respawned => string
  )
public function command( $event )
  $event => Class of Armagetron\Event\Event (
        command => string
        player => Object of Armagetron\GameObject\Player
        ip => string
        access_level => integer
        text => string
  )
public function cycle_created( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        x => double
        y => double
        x_dir => integer
        y_dir => integer
  )
public function death_basezone_conquered( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        enemies_in_zone => integer
  )
public function death_deathshot( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function death_deathzone( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function death_rubberzone( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function death_self_destruct( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function death_shot_frag( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function death_shot_suicide( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function death_shot_teamkill( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function death_zombiezone( $event )
  $event => Class of Armagetron\Event\Event (
        prey => Object of Armagetron\GameObject\Player
        hunter => Object of Armagetron\GameObject\Player
  )
public function end_challenge( $event )
  $event => Class of Armagetron\Event\Event (
        time_string => string
  )
public function flag_conquest_round_win( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        flag_team => Object of Armagetron\GameObject\Team
  )
public function flag_drop( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        flag_team => Object of Armagetron\GameObject\Team
  )
public function flag_held( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function flag_return( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
  )
public function flag_score( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        flag_team => Object of Armagetron\GameObject\Team
  )
public function flag_take( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        flag_team => Object of Armagetron\GameObject\Team
  )
public function flag_timeout( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        flag_team => Object of Armagetron\GameObject\Team
  )
public function invalid_command( $event )
  $event => Class of Armagetron\Event\Event (
        command => string
        player => Object of Armagetron\GameObject\Player
        ip => string
        access_level => integer
        text => string
  )
public function match_score( $event )
  $event => Class of Armagetron\Event\Event (
        score => integer
        player => Object of Armagetron\GameObject\Player
        team => Object of Armagetron\GameObject\Team
  )
public function match_score_team( $event )
  $event => Class of Armagetron\Event\Event (
        score => integer
        team => Object of Armagetron\GameObject\Team
        sets_won => integer
  )
public function new_set( $event )
  $event => Class of Armagetron\Event\Event (
        sets_played => integer
        time_string => string
  )
public function next_round( $event )
  $event => Class of Armagetron\Event\Event (
        round => integer
        limit_rounds => integer
        map => string
        round_center_message => string
  )
public function online_player( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        r => integer
        g => integer
        b => integer
        ping => double
        team => Object of Armagetron\GameObject\Team
  )
public function player_gridpos( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        x => double
        y => double
        x_dir => integer
        y_dir => integer
        team => Object of Armagetron\GameObject\Team
  )
public function player_killed( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        ip => string
        x => double
        y => double
        x_dir => integer
        y_dir => integer
  )
public function player_renamed( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        new_name => string
        ip => string
        authenticated => boolean
        screen_name => string
  )
public function round_commencing( $event )
  $event => Class of Armagetron\Event\Event (
        round => integer
        limit_rounds => integer
  )
public function set_winner( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
  )
public function spawn_position_team( $event )
  $event => Class of Armagetron\Event\Event (
        team => Object of Armagetron\GameObject\Team
        position => integer
  )
public function start_challenge( $event )
  $event => Class of Armagetron\Event\Event (
        time_string => string
  )
public function svg_created( $event )
  $event => Class of Armagetron\Event\Event (
  )
public function tactical_position( $event )
  $event => Class of Armagetron\Event\Event (
        time => double
        player => Object of Armagetron\GameObject\Player
        tactical_position => string
  )
public function tactical_statistics( $event )
  $event => Class of Armagetron\Event\Event (
        tactical_position => string
        player => Object of Armagetron\GameObject\Player
        time => double
        state => string
        kills => integer
  )
public function targetzone_conquered( $event )
  $event => Class of Armagetron\Event\Event (
        goid => integer
        zone_name => string
        x => double
        y => double
        player => Object of Armagetron\GameObject\Player
        team => Object of Armagetron\GameObject\Team
  )
public function targetzone_player_enter( $event )
  $event => Class of Armagetron\Event\Event (
        goid => integer
        zone_name => string
        zone_x => double
        zone_y => double
        player => Object of Armagetron\GameObject\Player
        player_x => double
        player_y => double
        player_x_dir => integer
        player_y_dir => integer
        time => double
  )
public function targetzone_player_left( $event )
  $event => Class of Armagetron\Event\Event (
        goid => integer
        zone_name => string
        zone_x => double
        zone_y => double
        player => Object of Armagetron\GameObject\Player
        player_x => double
        player_y => double
        player_x_dir => integer
        player_y_dir => integer
  )
public function targetzone_timeout( $event )
  $event => Class of Armagetron\Event\Event (
        goid => string
        zone_name => string
        x => double
        y => double
  )
public function voter( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        choice => boolean
        description => string
  )
public function vote_created( $event )
  $event => Class of Armagetron\Event\Event (
        player => Object of Armagetron\GameObject\Player
        description => string
  )
public function winzone_player_enter( $event )
  $event => Class of Armagetron\Event\Event (
        goid => integer
        zone_name => string
        zone_x => double
        zone_y => double
        player => Object of Armagetron\GameObject\Player
        player_x => double
        player_y => double
        player_x_dir => integer
        player_y_dir => integer
        time => double
  )
public function zone_collapsed( $event )
  $event => Class of Armagetron\Event\Event (
        zone_id => integer
        zone_name => string
        zone_x => double
        zone_y => double
  )
public function zone_spawned( $event )
  $event => Class of Armagetron\Event\Event (
        goid => integer
        zone_name => string
        x => double
        y => double
  )
public function wait_for_external_script( $event )
  $event => Class of Armagetron\Event\Event (
  )