rminks / rcon
用于 Laravel 的 RCON 协议源库
v1.0.0
2024-04-21 07:45 UTC
README
所有功劳归 AnvilM (https://github.com/AnvilM/PHP_RCON/tree/main),我根据自己的需求、偏好和需求上传了自己的版本。
用于 Laravel 的 RCON 协议源库
安装
您可以使用 composer 获取此包
composer require rminks/rcon
配置
在 valve games (Engine Source) 中的设置
默认情况下,SRCDS 监听 TCP 端口 27015 的 RCON 连接。如果使用 -port 选项更改服务器的端口号,RCON 端口也会更改。SRCDS 将始终拒绝来自其黑名单上 IP 的任何 RCON 连接尝试。如果出于任何原因写入了 rcon_password cvar,则服务器将立即关闭所有已验证的 RCON 连接。即使新值与旧值相同,也是如此。这些连接需要重新打开和重新验证才能发出任何其他命令。尚未验证的连接不会断开。如果密码在远程更改,则服务器不会响应导致密码更改的命令。如果未设置 rcon_password,游戏服务器将拒绝所有连接
在 Minecraft 中的设置
要在您的服务器上使用 RCON,您需要在 Minecraft 服务器设置中启用并配置它。
在文件 server.properties 中
rcon.port=25575 enable-rcon=true rcon.password=123
入门指南
创建连接
要创建到 Minecraft 服务器 RCON 连接,您需要创建 RCON 类的对象。
use RMinks\RCON\RCON; $Ip = '127.0.0.1'; //Server IP $Port = 25575; //RCON port $Password = '123'; //RCON password $Timeout = 30; //Timeout in ms $RCON = new RCON($Ip, $Port, $Password, $Timeout);
发送命令
要向服务器发送命令,请使用 RСON 类的此方法。此方法将返回服务器的响应。
use RMinks\RCON\RCON; ... $RCON->sendCommand('map de_dust2');//Example for CS:S $RCON->sendCommand('time set day');//Example for Minecraft
服务器响应
所有响应
要获取服务器上的所有响应,请使用以下方法
use RMinks\RCON\RCON; ... $Response = $RCON->ResponseService->getAllResponses();
最后响应
要获取服务器的最后响应,请使用以下方法
use RMinks\RCON\RCON; ... $Response = $RCON->ResponseService->getLastResponse();
按 ID 响应
如果您有该响应的 ID,您可以从列表中获取特定的服务器响应。
use RMinks\RCON\RCON; ... $Response = $RCON->ResponseService->getResponse(3);
示例
namespace App\Http\Controllers; use RMinks\RCON\RCON; class RCONController extends Controller { public function setDay() { $Ip = '127.0.0.1'; //Server IP $Port = 25575; //RCON port $Password = '123'; //RCON password $Timeout = 30; //Timeout in ms $RCON = new RCON($Ip, $Port, $Password, $Timeout); //Create connection $RCON->sendCommand('time set day'); //Send command $Response = $RCON->ResponseService->getLastResponse(); //Get last response echo $Response; } }
执行此代码后,您应该得到以下结果
Set the time to 1000
示例 2
namespace App\Http\Controllers; use RMinks\RCON\RCON; class RCONController extends Controller { public function changeMap() { $Ip = '192.168.1.39'; //Server IP $Port = 27015; //RCON port $Password = '12345'; //RCON password $Timeout = 30; //Timeout in ms $RCON = new RCON($Ip, $Port, $Password, $Timeout); //Create connection $RCON->sendCommand('map de_dust2'); //Send command $Response = $RCON->ResponseService->getLastResponse(); //Get last response echo $Response; dd($Response);//For debug } }
执行此代码后,您应该得到以下结果
rcon from "x.x.x.x:xxxx": command "map de_dust2"
L dd/mm/yyyy - hr:m:s: -------- Mapchange to de_dust2 --------