jacklul / q3serverlist
一个用于查询基于Quake 3的主服务器及其游戏服务器的简单库
2.1.0
2023-06-04 17:43 UTC
Requires
- php: ^5.5|^7.0|^8.0
- ext-sockets: *
Requires (Dev)
README
一个用于查询基于Quake 3的主服务器及其游戏服务器的简单库。
- 版本
1.x.x
使用fsockopen
(已不再支持) - 版本
2.x.x
使用sockets
扩展
对于旧版本,请检查旧分支。
主服务器兼容性
任何基于Quake 3的主服务器,包括
- Quake 3 Arena (
master.quake3arena.com:27950
, 协议 68) - Enemy Territory (
etmaster.idsoftware.com:27950
, 协议 84) - Return to Castle Wolfenstein (
wolfmaster.idsoftware.com:27950
, 协议 57) - Jedi Knight 2 (
masterjk2.ravensoft.com:29060
, 协议 16) - Jedi Knight: Jedi Academy (
masterjk3.ravensoft.com:29060
, 协议 26) - Call of Duty 4: Modern Warfare (
cod4master.activision.com:20810
, 协议 6)
... 以及更多!
安装
使用Composer进行安装
$ composer require jacklul/q3serverlist
用法
use jacklul\q3serverlist\MasterServer; use jacklul\q3serverlist\Server; require(__DIR__ . '/vendor/autoload.php'); $ms = new MasterServer('master.quake3arena.com', 27950, 68); $servers = $ms->getServers(); // Second call will always return cached data, same with Server->getInfo and Server->getStatus /** @var Server $server */ foreach ($servers as $server) { $info = $server->getInfo(); // 'getinfo' request usually returns map name // Find first server with map 'q3dm17' (The Longest Yard) and print it's status if (isset($info['mapname']) && $info['mapname'] === 'q3dm17') { print_r($server->getStatus()); break; } } // You can get status/info variables magically like this: $server->getMapname(); // To get variables that include '_' in their name use capitalization: $server->getSvMaxclients(); // (sv_maxclients)
更多示例可在examples目录中找到。
许可
请参阅LICENSE。