dev-lancer/mc-pack

该库旨在将Minecraft服务器与网站集成。


README

安装

可以通过以下命令安装此库

composer require dev-lancer/mc-pack

查询

此方法使用GameSpy4协议,需要在您的server.properties文件中启用query监听器,如下所示

enable-query=true
query.port=25565

Rcon

此方法允许您发送命令,用于物品商店,需要在您的server.properties文件中启用rcon监听器,如下所示

enable-rcon=true
rcon.port=25575
rcon.password=pass

示例

查询 & Rcon

它启用下载基本服务器信息和发送命令。

<?php
    require 'vendor/autoload.php';
    
    use DevLancer\MCPack\ConsoleRcon;
    use DevLancer\MinecraftStatus\Query;

    $info = new Query("some.minecraftserver.com", 25565);
    $info->connect();
    
    $console = new ConsoleRcon("some.minecraftserver.com", 25575, "pass", 3);
    $console->connect();

    $players = $info->getCountPlayers();
    echo $players . "/" . $info->getMaxPlayers();

    $console->sendCommand("bc MCPack");

在此处查看查询

在此处查看RCON

带有SSH的ServerManager

它启用下载基本服务器信息、发送命令和服务器管理。

<?php
    require 'vendor/autoload.php';
    
    use DevLancer\MCPack\ConsoleRcon;
    use DevLancer\MCPack\Manager\ServerManager;
    use DevLancer\MCPack\Sftp\Sftp;

    $host = "some.minecraftserver.com";
    $sftp = new Sftp($host);
    $sftp->login("username", "password");

    $server = new ServerManager($sftp, 25565);

    $path = "path/to/minecraft/server.jar";
    if(!$server->isRunning()) {
        if ($server->run(["-Xmx1G"], $path))
            echo "server started";
    }

服务器日志

此类允许从服务器下载日志。

<?php
    require 'vendor/autoload.php';
    
    use DevLancer\MCPack\Logs;
    use DevLancer\MCPack\Sftp\Sftp;

    $host = "some.minecraftserver.com";
    $sftp = new Sftp($host);
    $sftp->login("username", "password");

    $path = "path/to/minecraft/logs/latest.log";
    $logs = new Logs($sftp, $path);
    echo implode("<br />", $logs->getLogs(true));

属性

<?php
    require 'vendor/autoload.php';
    
    use DevLancer\MCPack\Manager\PropertiesManager;
    use DevLancer\MCPack\Sftp\Sftp;

    $sftp = new Sftp("some.minecraftserver.com");
    $sftp->login("username", "password");
    
    $manager = new PropertiesManager("path/to/minecraft/server.properties", $sftp);
    $properties = $manager->getProperties();
    $properties->setRconPassword("new-password");
    $manager->saveProperties($properties);

Motd

<?php
    require 'vendor/autoload.php';
    
    use DevLancer\MCPack\Motd;
    use DevLancer\MinecraftStatus\Ping;

    $host = "some.minecraftserver.com";
    $info = new Ping($host, 25565);
    $info->connect();
    
    $motd = new Motd($info);
    $motd->sendRequest();
    
    echo $motd->getResponse(Motd::RESPONSE_HTML);

在此处查看

许可

MIT