arma rcon class php
Patch 2.2.3
ARC是一個輕巧的PHP類,可讓您輕鬆地連接和發送命令到Battleye服務器,包括Arma 3 , Arma 2和Arma 2:OA遊戲服務器。
ARC 2.2僅需要PHP 5.4或更高!
如果還沒有,請下載作曲家。
$ curl -s http://getcomposer.org/installer | php現在需要並安裝弧。
$ composer require nizarii/arma-rcon-class
$ composer install選擇一個版本並在您的項目中包括弧: require_once 'arc.php'; 。
安裝ARC後,您可以輕鬆地使用弧線,如下所示。它將自動建立新的連接並進行身份驗證。
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]);您可以使用command()函數發送命令。
//...
$ rcon -> command ( ' YourCommand ' );如果有任何問題,ARC會拋出Exception 。您可能需要將代碼包裝在嘗試捕獲塊中。
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僅檢查是否已通過套接字成功發送命令到服務器。它不檢查命令是否由服務器執行。
可以通過構造函數的第四參數將選項傳遞給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() :獲取所有BE Server Bans的列表。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) :更改最大值。如果玩家的PING較高,他將被踢出服務器。object changePassword(string $password) :更改RCON密碼。object loadBans() :( Re)從“ BANS.TXT”加載BE BE列表。object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) :禁止服務器中的播放器BE GUID(如果時間為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) :使您的程序可讀取Bettleye格式包裝。使用$ MSG帶有不可讀的標頭和未修改的字符串。具有正確的標頭時,數組將以[0] =>“ FF”啟動。數組值[1]具有重要的信息,它需要哪種護理才能為您的連接提供什麼樣的護理。有關更多信息,請單擊此處。有關Battleye命令的更多信息,請參見此處
感謝所有貢獻者提交問題和貢獻代碼,包括:
總是歡迎新的貢獻者❤️
ARC已獲得MIT許可證的許可。查看LICENSE文件以獲取更多信息。