Current version: 0.1
Description:
perl module for doing rcon stuff with the Source rcon protocol.
As the comments in the module say:
#This module is *extremely* minimal, and possibly broken. #It makes almost no use of the features of this protocol. #Commands block, there is no queue system. That said, #it Does What I Want It To Do(tm), and the protocol implemented by #CS:S is a bit buggy at the moment. #This module is based on the 'radcon' module, written by #Matthew 'Gumby' Lees and myself.
Download: wabzcon.tar.gz
Example script / Documentation:
Usage: $rcon = new wabzcon(Host=>"127.0.0.1", Port=>27015, Password=>"rconpassword"); This creates a new wabzcon object, AND AUTHENTICATES WITH THE SERVER. You can immediately check for an error: $rcon->get_error(); which returns a string with the error message. $rcon->get_players(); returns an array with two elements, references to hashes, the first containing player details indexed by their slot number, the second containing server information (map, current player, max players etc). $rcon->do("something"); sends the "something" command to the server and returns the string which the server returns. $rcon->close(); closes the tcp connection with the server.Here's an example script (included in the download)
#!/usr/bin/perl -w use Term::ANSIColor qw(:constants); use wabzcon; my $port = 27015; $port = $ARGV[0] if $ARGV[0]; $rcon = new wabzcon(Host=>"127.0.0.1", Port=>$port, Password=>"rconpass"); (not $e = $rcon->get_error()) or die "Error: $e"; ($players, $serv_param) = $rcon->get_players(); %players = %{$players}; %serv_param = %{$serv_param}; foreach $thing (keys %serv_param) { print CYAN, "$thing:\t", RESET, "$serv_param{$thing}\n", RESET; } print "\n"; foreach $id (keys %players) { print GREEN, "Name:\t", RESET, MAGENTA, "$players{$id}{'name'}", RESET, GREEN,"\tSteamID: ", RESET, "$players{$id}{'uniqueid'}\n", RESET; } print $rcon->do("users"); print $rcon->do("status"); $rcon->close();