dsg / postscriptum-rcon-php
Post Scriptum 服务器 RCON 库
0.1.0
2020-12-19 21:36 UTC
Requires
- ext-json: *
- dsg/php-source-query-class: 1.1.0
Requires (Dev)
- phpunit/phpunit: ~5.0||~6.0||~7.0||~8.0
This package is auto-updated.
Last update: 2024-09-05 02:33:22 UTC
README
Post Scriptum RCON PHP
Post Scriptum RCON 命令的 PHP 封装器
加入 RCON 社区
如果您对 OWI 游戏中的 RCON 有任何疑问或需要帮助,请务必加入 Discord 上的 Squad RCON 社区。
安装
您可以使用 composer 和以下命令安装此软件包
composer require dsg/postscriptum-rcon-php
然后代码将在 DSG\PostScriptumRCON
命名空间下可用。
命令
- ListPlayers
- AdminListDisconnectedPlayers
- ShowNextMap
- AdminKick "<NameOrSteamId>" <KickReason>
- AdminKickById <PlayerId> <KickReason>
- AdminBan "<NameOrSteamId>" "<BanLength>" <BanReason>
- AdminBanById <PlayerId> "<BanLength>" <BanReason>
- AdminBroadcast <Message>
- AdminRestartMatch
- AdminEndMatch
- AdminChangeMap <MapName>
- AdminSetNextMap <MapName>
- AdminSetMaxNumPlayers <NumPlayers>
- AdminSetServerPassword <Password>
- AdminForceTeamChange <NameOrSteamId>
- AdminForceTeamChangeById <PlayerId>
- AdminDemoteCommander <PlayerName>
- AdminDemoteCommanderById <PlayerId>
- AdminDisbandSquad <TeamId> <SquadId>
- AdminRemovePlayerFromSquad <PlayerName>
- AdminRemovePlayerFromSquadById <PlayerId>
- AdminWarn "<NameOrSteamId>" <WarnReason>
- AdminWarnById <PlayerId> <WarnReason>
用法
创建实例
实例化 PostScriptumServer 类以打开新的 RCON 连接。如果无法建立连接,将抛出异常。
use DSG\PostScriptumRCON\PostScriptumServer; ... /** @var PostScriptumServer */ $server = new PostScriptumServer(new ServerConnectionInfo('127.0.0.1', 21114, 'YourRconPassword'));
ListPlayers
获取当前玩家列表
/** @var Player[] */ $players = $server->listPlayers();
获取断开连接的玩家
使用 ListPlayers 命令获取断开连接的玩家。
/** @var Player[] */ $players = $server->listDisconnectedPlayers();
AdminKick
通过名称、SteamId 或游戏内 ID 踢出玩家。
/** @var bool */ $success = $server->adminKick('76561197960287930', 'Reason'); // or /** @var bool */ $success = $server->adminKickById($player->getId(), 'Reason');
AdminBan
通过名称、SteamId 或游戏内 ID 禁止玩家。
/** @var bool */ $success = $server->adminBan('76561197960287930', '1h', 'Reason'); // or /** @var bool */ $success = $server->adminBanById($player->getId(), '1h', 'Reason');
获取当前地图
使用 ShowNextMap 命令获取当前地图
/** @var string */ $map = $server->currentMap();
获取下一个地图
使用 ShowNextMap 命令获取下一个地图
/** @var string */ $map = $server->nextMap();
AdminRestartMatch
重启当前比赛
/** @var bool */ $success = $server->adminRestartMatch();
AdminEndMatch
结束当前比赛
/** @var bool */ $success = $server->adminEndMatch();
AdminBroadcast
向服务器上的所有玩家广播消息
/** @var bool */ $success = $server->adminBroadcast('Hello from the other side');
AdminChangeMap
设置下一个地图并立即结束当前游戏。
/** @var bool */ $success = $server->adminChangeMap('Sumari AAS v1');
AdminSetNextMap
设置下一个地图
/** @var bool */ $success = $server->adminSetNextMap('Sumari AAS v1');
AdminSetMaxNumPlayers
设置最大玩家数量/槽位
/** @var bool */ $success = $server->adminSetMaxNumPlayers(80);
AdminSetServerPassword
设置服务器密码
/** @var bool */ $success = $server->adminSetServerPassword('secret');
AdminForceTeamChange
通过提供名称或 SteamId,强制玩家加入对方队伍。
/** @var bool */ $success = $server->adminForceTeamChange('Name or SteamId');
AdminForceTeamChangeById
通过提供游戏内玩家 ID,强制玩家加入对方队伍。
/** @var bool */ $success = $server->adminForceTeamChangeById($player->getId());
AdminDisbandSquad 命令。
通过提供团队 ID / 索引和队伍 ID / 索引来解散队伍。
/** @var bool */ $success = $server->adminDisbandSquad($team->getId(), $squad->getId());
AdminRemovePlayerFromSquad
通过提供玩家名称从队伍中移除玩家。
/** @var bool */ $success = $server->adminRemovePlayerFromSquad('Name');
AdminRemovePlayerFromSquadById
通过提供游戏内玩家 ID 从队伍中移除玩家。
/** @var bool */ $success = $server->adminRemovePlayerFromSquadById($player->getId());
AdminWarn
通过提供玩家名称 / SteamId 和消息警告玩家。
/** @var bool */ $success = $server->adminWarn('Name or SteamId', 'Warn Reason');
AdminWarnById
通过 ID 警告玩家。
/** @var bool */ $success = $server->adminWarnById($player->getId(), 'Warn Reason');
重要提示
请确保始终手动关闭连接或通过销毁对象触发断开连接,以防止通过耗尽可用连接来阻塞 RCON 服务器。
$server->disconnect(); // Or unset($server);
特别感谢
- SquadSlovenia(初始创建者)
- Brozowski(主要贡献者)
- [ToG] subtlerod(对所使用的SquadRcon实现的重大贡献)
- Thomas Smyth(SquadJS的创建者,Squad RCON的极好资源)