Skip to content

Latest commit

 

History

History
113 lines (101 loc) · 5.1 KB

README.md

File metadata and controls

113 lines (101 loc) · 5.1 KB

Arma RCon Class (ARC) 2.1 for PHP

Codacy Badge Packagist Version GitHub License

ARC is a lightweight PHP class, that allows you connecting and sending commands easily to your BattlEye server, including Arma 3, Arma 2 and Arma 2: OA game servers.

Requirements

ARC 2.1 requires PHP 5.4 or higher, nothing more! (For PHP 5.3 support use ARC 1.3)

Installation

Via Composer (recommended)

If you haven't already, download Composer

$ curl -s http://getcomposer.org/installer | php

Now require and install ARC

$ composer require nizarii/arma-rcon-class
$ composer install

#### Without Composer Choose a [release](https://github.com/Nizarii/arma-rcon-class-php/releases) and include ARC in your project: `require_once 'arc.php';`

## Examples #### Getting started After installing ARC, you can easily use ARC as shown below. It will automatically establish a new connection and authenticate ```php use \Nizarii\ARC;

$rcon = new ARC(string $ServerIP, string $RConPassword [, int $Port = 2302 [, array $Options = array()]]);

You are able to send commands with the `command()` function
```php
//...
$rcon->command('YourCommand');

ARC will throw Exceptions if anything goes wrong, so you might want to catch it

use \Nizarii\ARC;

try {
    $rcon = new ARC('127.0.0.1', 'password');
       
    $array = $rcon->getPlayersArray();
    
    $rcon
        ->sayGlobal('example')
        ->kickPlayer(1, 'example')
        ->sayPlayer(0, 'example')
        ->disconnect()
    ;
    
    $rcon->getBans(); // Throws exception, because the connection was closed
} catch (Exception $e) {
    echo "Ups! Something went wrong: {$e->getMessage()}";
}

Please consider that ARC only checks whether the command has been successfully sent via the socket to the server. It does not check if the command has been executed by the server.

Options

Options can be passed to ARC as an array via the fourth parameter of the constructor. The following options are currently available:

  • bool sendHeartbeat = false: Sends a heartbeat packet to the server
  • int timeoutSec = 1: Sets a timeout value on the connection

Suggestions for new options are always welcome! 👍

Basic usage:

use \Nizarii\ARC;

$rcon = new ARC('127.0.0.1', 'RConPassword', 2322, [
    'sendHeartbeat' => true,
    'timeoutSec' => 2
]);
    
//...

## Functions ARC features many functions to send BattlEye commands easier. After creating a new connections as explained above, you are able to use any of these functions: * `string command(string $command)`: Sends any command to the BattlEye server * `string getPlayers(``: Gets a list of all players online * `array getPlayersArray()`: Gets an array of all players online * `string getMissions()`: Gets a list of the available missions on the server * `string getBans()`: Gets a list of all BE server bans * `array getBansArray()`: Gets an array of all bans * `object kickPlayer(int $player [, string $reason = 'Admin Kick'])`: Kicks a player who is currently on the server * `object sayGlobal(string $message)`: Sends a global message to all players * `object sayPlayer(int $player, string $message)`: Sends a message to a specific player * `object loadScripts()`: Loads the "scripts.txt" file without the need to restart the server * `object maxPing(int $ping)`: Changes the MaxPing value. If a player has a higher ping, he will be kicked from the server * `object changePassword(string $password)`: Changes RCon password * `object loadBans()`: (Re)loads the BE ban list from "bans.txt" * `object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]])`: Ban a player's BE GUID from the server (If the time is 0, the ban will be permanent) * `object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]])`: Same as "banPlayer()", but allows to ban a player that is not currently on the server * `object removeBan(int $banid)`: Removes a ban * `object writeBans()`: Removes expired bans from the bans file * `object getBEServerVersion()`: Gets the current version of the BE server * `disconnect()`: Closes the current connection * `object reconnect()`: Closes the current connection & creates a new one * `resource getSocket()`: Get the socket used by ARC to send commands

See here for more information about BattlEye commands

License

ARC is licensed under the MIT License. View LICENSE file for more information.