ARC - это легкий класс PHP, который позволяет вам легко подключать и отправлять команды на ваш сервер Battleye , включая ARMA 3 , ARMA 2 и ARMA 2: OA Game Servers.
ARC 2.2 требует только PHP 5,4 или выше!
Если вы еще этого не сделали, загрузите композитор.
$ curl -s http://getcomposer.org/installer | phpТеперь требуется и установите дугу.
$ composer require nizarii/arma-rcon-class
$ composer install Выберите релиз и включите ARC в свой проект: require_once 'arc.php'; Полем
После установки дуги вы можете легко использовать дугу, как показано ниже. Он автоматически установит новое соединение и аутентификацию.
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); Вы можете отправлять команды с функцией command() .
//...
$ rcon -> command ( ' YourCommand ' ); Arc сделает Exception , если что -то пойдет не так. Вы можете обернуть свой код в блоке Try Catch .
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 ()}" ;
} Пожалуйста, рассмотрим, что дуга проверяет, была ли команда успешно отправлена через сокет на сервер. Он не проверяет, была ли команда выполнена сервером.
Варианты могут быть переданы в ARC в виде массива через четвертый параметр конструктора. В настоящее время доступны следующие варианты:
int timeoutSec = 1 : Устанавливает значения тайм -аута на подключении.bool autosavebans = false : автоматически сохраняет bans.txt после того, как игрок запрещен или незамечен.bool debug = false : включает режим отладки, работает только на "socketLoop ()" и "socketLoopclose ()" Предложения для новых вариантов всегда приветствуются! ?
Основное использование:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... ARC функционирует множество функций, чтобы проще отправлять команды Battleye. После создания новых соединений, как объяснено выше, вы можете использовать любую из этих функций:
string command(string $command) : отправляет любую команду на сервер Battleye.string getPlayers() : возвращает список со всеми игроками, которые в настоящее время находятся на сервере.array getPlayersArray() : так же, как и «GetPlayers ()», но форматирует список в массив.string getMissions() : получает список доступных миссий на сервере.string getBans() : получает список всех запретов на сервера.array getBansArray() : получает массив всех запретов.object kickPlayer(int $player [, string $reason = 'Admin Kick']) : пинает игрока, который в настоящее время находится на сервере.object sayGlobal(string $message) : отправляет глобальное сообщение всем игрокам.object sayPlayer(int $player, string $message) : отправляет сообщение конкретному игроку.object loadScripts() : загружает файл «scripts.txt» без необходимости перезапуска сервера.object maxPing(int $ping) : изменяет максимальное значение. Если у игрока есть более высокий пинг, он будет выгнан с сервера.object changePassword(string $password) : изменяет пароль RCON.object loadBans() : (Re) Загружает список BE BAN из "bans.txt".object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]])object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : то же самое, что и «banPlayer ()», но позволяет запретить игрока, который в настоящее время не находится на сервере.object removeBan(int $banid) : удаляет запрет.object writeBans() : удаляет истекшие запреты из файла запретов.object getBEServerVersion() : получает текущую версию сервера BE.disconnect() : закрывает текущее соединение.object reconnect() : закрывает текущее соединение и создает новое.resource getSocket() : Получите сокет, который используется ARC для отправки команд на сервер.boolean socketLoop(int $loop = -1) : Получить постоянный поток сокета. $ Loop - это количество циклов, которые необходимо выполнить до выхода из метода. Обратите внимание, что последовательность будет сброшена. Установите бесконечное цикл по умолчанию.boolean socketLoopClose(int $loop = -1) : так же, как «SocketLoop ()», но отключается после цикла. Установите бесконечное цикл по умолчанию.array readPackageRaw(string $msg) : Сделайте пакет Format Bettleye для вашей программы. Используйте $ msg с нечитаемым заголовком и немодифицированной строкой. Массив начнется как [0] => «ff» при наличии правильного заголовка. Значение массива [1] имеет важную информацию, какую помощь ему нужна для вашего соединения. Для получения дополнительной информации нажмите здесь. Смотрите здесь для получения дополнительной информации о командах Battleye
Благодаря всем участникам за отправку вопросов и внесения кода, включая:
Всегда приветствуются новые участники ❤
ARC лицензирована по лицензии MIT . Просмотреть файл LICENSE для получения дополнительной информации.