ARC est une classe PHP légère, qui vous permet de connecter et d'envoyer facilement des commandes à votre serveur Battleye , y compris les serveurs de jeu ARMA 3 , ARMA 2 et ARMA 2: OA .
L'ARC 2.2 ne nécessite que PHP 5,4 ou plus!
Si vous ne l'avez pas déjà fait, téléchargez le compositeur.
$ curl -s http://getcomposer.org/installer | phpExigent maintenant et installez l'arc.
$ composer require nizarii/arma-rcon-class
$ composer install Choisissez une version et incluez l'arc dans votre projet: require_once 'arc.php'; .
Après l'installation de l'arc, vous pouvez facilement utiliser l'arc comme indiqué ci-dessous. Il établira automatiquement une nouvelle connexion et s'authentifiera.
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); Vous pouvez envoyer des commandes avec la fonction command() .
//...
$ rcon -> command ( ' YourCommand ' ); Arc lancera une Exception en cas de problème. Vous voudrez peut-être envelopper votre code dans un bloc d'essai .
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 ()}" ;
} Veuillez considérer qu'ARC vérifie uniquement si la commande a été envoyée avec succès via la prise au serveur. Il ne vérifie pas si la commande a été exécutée par le serveur.
Les options peuvent être transmises à l'arc sous forme de tableau via le quatrième paramètre du constructeur. Les options suivantes sont actuellement disponibles:
int timeoutSec = 1 : définit une valeur de délai d'expiration sur la connexion.bool autosavebans = false : enregistre automatiquement les interdictions.txt après qu'un joueur est interdit ou non.bool debug = false : active le mode de débogage, ne fonctionne que sur "socketloop ()" et "socketloopclose ()" Les suggestions de nouvelles options sont toujours les bienvenues! ?
Utilisation de base:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... ARC propose de nombreuses fonctions pour envoyer plus facilement les commandes de Battleye. Après avoir créé de nouvelles connexions comme expliqué ci-dessus, vous pouvez utiliser l'une de ces fonctions:
string command(string $command) : envoie n'importe quelle commande au serveur Battleye.string getPlayers() : Renvoie une liste avec tous les joueurs, qui sont actuellement sur le serveur.array getPlayersArray() : Identique à "getPlayers ()", mais formats la liste sur un tableau.string getMissions() : obtient une liste des missions disponibles sur le serveur.string getBans() : obtient une liste de toutes les interdictions de serveur.array getBansArray() : obtient un tableau de toutes les interdictions.object kickPlayer(int $player [, string $reason = 'Admin Kick']) : donne un coup de pied à un lecteur qui est actuellement sur le serveur.object sayGlobal(string $message) : envoie un message global à tous les joueurs.object sayPlayer(int $player, string $message) : envoie un message à un lecteur spécifique.object loadScripts() : charge le fichier "scripts.txt" sans avoir besoin de redémarrer le serveur.object maxPing(int $ping) : modifie la valeur maxping. Si un joueur a un ping plus élevé, il sera lancé du serveur.object changePassword(string $password) : modifie le mot de passe RCON.object loadBans() : (Re) charge la liste BE BAN de "Bans.txt".object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) : interdire, être un joueur du GUID du serveur (si l'heure est de 0, l'interdiction sera permanente).object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : identique à "bandiplayer ()", mais permet d'interdire un joueur qui n'est pas actuellement sur le serveur.object removeBan(int $banid) : supprime une interdiction.object writeBans() : supprime les interdictions expirées du fichier d'interdiction.object getBEServerVersion() : obtient la version actuelle du serveur BE.disconnect() : ferme la connexion actuelle.object reconnect() : ferme la connexion actuelle et en crée une nouvelle.resource getSocket() : Obtenez le socket, qui est utilisé par ARC pour envoyer des commandes au serveur.boolean socketLoop(int $loop = -1) : Obtenez un flux de socket constant. $ Loop est le nombre de boucles à exécuter jusqu'à la sortie de la méthode. Notez que la séquence sera réinitialisée. Défini sur Infinite Looping par défaut.boolean socketLoopClose(int $loop = -1) : similaire comme "socketloop ()", mais se déconnecte après la boucle. Défini sur Infinite Looping par défaut.array readPackageRaw(string $msg) : rendre le package de format Bettleye lisible pour votre programme. Utilisez $ msg avec un en-tête illisible et une chaîne non modifiée. Le tableau commencera comme [0] => "FF" lors de la bonne en-tête. La valeur du tableau [1] a des informations importantes de quel type de soins dont elle a besoin pour votre connexion. Pour plus d'informations, cliquez ici. Voir ici pour plus d'informations sur les commandes de Battleye
Merci à tous les contributeurs pour la soumission des problèmes et le code contributif, notamment:
Les nouveaux contributeurs sont toujours les bienvenus ❤️
L'ARC est sous licence sous la licence du MIT . Affichez le fichier LICENSE pour plus d'informations.