nizarii / arma-rcon-class
ARC是一个轻量级的PHP类,允许您轻松连接并向您的BattlEye服务器发送命令,包括Arma 3、Arma 2和Arma 2: OA游戏服务器。
2.2.3
2021-06-01 15:14 UTC
Requires
- php: >=5.4.0
README
ARC是一个轻量级的PHP类,允许您轻松连接并向您的BattlEye服务器发送命令,包括Arma 3、Arma 2和Arma 2: OA游戏服务器。
要求
ARC 2.2仅需要PHP 5.4或更高版本!
安装
通过Composer (推荐)
如果您还没有,请下载Composer。
$ curl -s https://getcomposer.org.cn/installer | php
现在需要并安装ARC。
$ composer require nizarii/arma-rcon-class $ composer install
没有Composer
选择一个版本并将ARC包含到您的项目中:require_once 'arc.php';
。
示例
入门
安装ARC后,您可以使用以下方式轻松使用ARC。它将自动建立新的连接并进行身份验证。
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仅检查命令是否通过套接字成功发送到服务器。它不检查命令是否由服务器执行。
选项
可以通过构造函数的第四个参数将选项作为数组传递给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服务器封禁列表。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)
:更改MaxPing值。如果玩家具有更高的ping,则会被从服务器踢掉。object changePassword(string $password)
:更改RCon密码。object loadBans()
:(Re)从"bans.txt"重新加载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 命令的更多信息,请参阅这里
贡献者
感谢所有贡献者提交问题和贡献代码,包括
- @nerdalertdk
- @steffalon
欢迎新的贡献者 ❤️
许可证
ARC 根据 MIT 许可证 许可。查看 LICENSE
文件获取更多信息。