ARC ist eine leichte PHP -Klasse, mit der Sie die Befehle einfach an Ihren Battleye -Server anschließen und senden können, einschließlich ARMA 3 , ARMA 2 und ARMA 2: OA Game -Server.
ARC 2.2 erfordert nur PHP 5.4 oder höher!
Wenn Sie es noch nicht getan haben, laden Sie den Komponisten herunter.
$ curl -s http://getcomposer.org/installer | phpBenötigen und installieren Sie nun ARC.
$ composer require nizarii/arma-rcon-class
$ composer install Wählen Sie eine Veröffentlichung und geben Sie in Ihrem Projekt ein ARC ein: require_once 'arc.php'; .
Nach dem Installieren von ARC können Sie ARC problemlos wie unten gezeigt verwenden. Es wird automatisch eine neue Verbindung hergestellt und authentifiziert.
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); Sie können Befehle mit der Funktion command() senden.
//...
$ rcon -> command ( ' YourCommand ' ); Arc wird eine Exception auswerfen, wenn etwas schief geht. Möglicherweise möchten Sie Ihren Code in einen Try Catch -Block einwickeln.
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 ()}" ;
} Bitte beachten Sie, dass ARC nur überprüft, ob der Befehl erfolgreich über den Socket an den Server gesendet wurde. Es wird nicht überprüft, ob der Befehl vom Server ausgeführt wurde.
Optionen können über den vierten Parameter des Konstruktors als Array als Array übergeben werden. Die folgenden Optionen sind derzeit verfügbar:
int timeoutSec = 1 : Legt einen Zeitüberschreitungswert für die Verbindung fest.bool autosavebans = false : Speichert automatisch Verbote, nachdem ein Spieler verboten oder nicht verboten ist.bool debug = false : Schaltet ein Debug -Modus ein, funktioniert nur auf "Socketloop ()" und "SocketLoopClose ()". Vorschläge für neue Optionen sind immer willkommen! ?
Grundnutzung:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... ARC verfügt über viele Funktionen, um Battleye -Befehle leichter zu senden. Nachdem Sie wie oben erläuterte neue Verbindungen erstellt haben, können Sie eine dieser Funktionen verwenden:
string command(string $command) : Sendet einen Befehl an den Battleye -Server.string getPlayers() : Gibt eine Liste mit allen Spielern zurück, die sich derzeit auf dem Server befinden.array getPlayersArray() : Gleich wie "getPlayers ()", formatiert aber die Liste in ein Array.string getMissions() : Erhält eine Liste der verfügbaren Missionen auf dem Server.string getBans() : Erhält eine Liste aller BE -Serververbote.array getBansArray() : Holen Sie sich eine Reihe aller Verbote.object kickPlayer(int $player [, string $reason = 'Admin Kick']) : Kicks einen Spieler, der derzeit auf dem Server ist.object sayGlobal(string $message) : Sendet eine globale Nachricht an alle Spieler.object sayPlayer(int $player, string $message) : Sendet eine Nachricht an einen bestimmten Player.object loadScripts() : Laden Sie die Datei "scripts.txt", ohne dass der Server neu gestartet werden muss.object maxPing(int $ping) : ändert den Maxping -Wert. Wenn ein Spieler einen höheren Ping hat, wird er vom Server getreten.object changePassword(string $password) : Ändert RCon -Kennwort.object loadBans() : (re) lädt die BE -BAN -Liste von "bans.txt".object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) : Verbot eines Spielers GUID vom Server (wenn die Zeit 0 ist, ist das Verbot dauerhaft).object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : Wie "BanPlayer ()", ermöglicht es jedoch, einen Player zu verbieten, der derzeit nicht auf dem Server ist.object removeBan(int $banid) : Entfernt ein Verbot.object writeBans() : Entfernt abgelaufene Verbote aus der Bans -Datei.object getBEServerVersion() : Erhält die aktuelle Version des BE -Servers.disconnect() : Schließt die aktuelle Verbindung.object reconnect() : Schließt die aktuelle Verbindung und erstellt eine neue.resource getSocket() : Holen Sie sich den Socket, der von ARC verwendet wird, um Befehle an den Server zu senden.boolean socketLoop(int $loop = -1) : Erhalten Sie einen konstanten Socket -Stream. $ loop ist die Anzahl der Loops, die ausgeführt werden sollen, bis sie die Methode verlassen. Beachten Sie, dass die Sequenz zurückgesetzt wird. Standardmäßig auf unendliche Schleife einstellen.boolean socketLoopClose(int $loop = -1) : ähnlich wie "socketloop ()", aber nach dem Looping trennen. Standardmäßig auf unendliche Schleife einstellen.array readPackageRaw(string $msg) : Machen Sie das für Ihr Programm lesbare Betleye -Format -Paket. Verwenden Sie $ msg mit unleserlichem Header und unmodifizierter Zeichenfolge. Array beginnt als [0] => "ff", wenn er den korrekten Header hat. Array Value [1] hat wichtige Informationen, welche Art von Pflege es für Ihre Verbindung benötigt. Weitere Informationen finden Sie hier. Weitere Informationen zu Battleye -Befehlen finden Sie unter
Vielen Dank an alle Mitwirkenden für die Einreichung von Problemen und den beitragenden Code, einschließlich:
Neue Mitwirkende sind immer willkommen ❤️
ARC ist unter der MIT -Lizenz lizenziert. LICENSE finden Sie für weitere Informationen.