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文件以获取更多信息。