O ARC é uma classe PHP leve, que permite conectar e enviar comandos facilmente ao seu servidor Battleye , incluindo servidores ARMA 3 , ARMA 2 e ARMA 2: OA Game.
O ARC 2.2 requer apenas Php 5.4 ou superior!
Se você ainda não o fez, faça o download do Composer.
$ curl -s http://getcomposer.org/installer | phpAgora requer e instale arco.
$ composer require nizarii/arma-rcon-class
$ composer install Escolha uma versão e inclua arco em seu projeto: require_once 'arc.php'; .
Após a instalação do ARC, você pode usar facilmente o ARC, como mostrado abaixo. Ele estabelecerá automaticamente uma nova conexão e autenticará.
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); Você pode enviar comandos com a função command() .
//...
$ rcon -> command ( ' YourCommand ' ); O ARC lançará uma Exception se algo der errado. Você pode querer envolver seu código em um bloco de tentativa .
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 ()}" ;
} Por favor, considere que o ARC verifica apenas se o comando foi enviado com sucesso através do soquete para o servidor. Ele não verifica se o comando foi executado pelo servidor.
As opções podem ser passadas para o ARC como uma matriz através do quarto parâmetro do construtor. As seguintes opções estão disponíveis no momento:
int timeoutSec = 1 : define um valor de tempo limite na conexão.bool autosavebans = false : salva automaticamente o bans.txt depois que um jogador é banido ou não banido.bool debug = false : LIGA no modo de depuração, só funciona em "Socketloop ()" e "SocketloopClose ()" Sugestões para novas opções são sempre bem -vindas! ?
Uso básico:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... O ARC apresenta muitas funções para enviar comandos Battleye com mais facilidade. Depois de criar novas conexões, conforme explicado acima, você pode usar qualquer uma dessas funções:
string command(string $command) : envia qualquer comando para o servidor Battleye.string getPlayers() : retorna uma lista com todos os jogadores, que estão atualmente no servidor.array getPlayersArray() : o mesmo que "getPlayers ()", mas formata a lista em uma matriz.string getMissions() : obtém uma lista das missões disponíveis no servidor.string getBans() : obtém uma lista de todos os proibições do servidor.array getBansArray() : recebe uma matriz de todas as proibições.object kickPlayer(int $player [, string $reason = 'Admin Kick']) : chuta um jogador que está atualmente no servidor.object sayGlobal(string $message) : envia uma mensagem global para todos os jogadores.object sayPlayer(int $player, string $message) : envia uma mensagem para um player específico.object loadScripts() : carrega o arquivo "scripts.txt" sem a necessidade de reiniciar o servidor.object maxPing(int $ping) : altera o valor máximo. Se um jogador tiver um ping mais alto, ele será expulso do servidor.object changePassword(string $password) : altera a senha do RCON.object loadBans() : (re) carrega a lista de BE Ban de "BANS.TXT".object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) : proibir um jogador de um jogador do servidor (se o tempo for 0, a proibição será permanente).object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : o mesmo que "Banplayer ()", mas permite proibir um jogador que não está atualmente no servidor.object removeBan(int $banid) : Remove uma proibição.object writeBans() : remove as proibições expiradas do arquivo de proibição.object getBEServerVersion() : obtém a versão atual do servidor be.disconnect() : fecha a conexão atual.object reconnect() : fecha a conexão atual e cria uma nova.resource getSocket() : Obtenha o soquete, que é usado pelo arco para enviar comandos para o servidor.boolean socketLoop(int $loop = -1) : Obtenha fluxo de soquete constante. $ loop é o número de loops a serem executados até sair do método. Observe que a sequência será redefinida. Defina como loop infinito por padrão.boolean socketLoopClose(int $loop = -1) : semelhante ao "Socketloop ()", mas se desconecta após o loop. Defina como loop infinito por padrão.array readPackageRaw(string $msg) : Torne o pacote de formato Bettleye legível para o seu programa. Use $ msg com cabeçalho ilegível e string não modificada. A matriz começará como [0] => "ff" ao ter o cabeçalho correto. O valor da matriz [1] possui informações importantes que tipo de cuidado ele precisa para sua conexão. Para mais informações, clique aqui. Veja aqui para obter mais informações sobre os comandos de Battleye
Obrigado a todos os colaboradores por enviar questões e contribuir com código, incluindo:
Novos colaboradores são sempre bem -vindos ❤️
O ARC é licenciado sob a licença do MIT . Exiba o arquivo LICENSE para obter mais informações.