radic/bukkit-swift-api

SwiftApi PHP API 封装在 Laravel 包中,用于远程调用 Minecraft Bukkit 服务器。

v1.0.0 2014-07-08 02:14 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:43:56 UTC


README

Build Status Latest Stable Version License

将 Apache Thrift 生成的 PHP 库包装在 Laravel 包中,并通过 Facade 提供易于访问的方式。

SwiftAPI 是一个 Bukkit 插件,允许您使用生成的 API 通过 webz 简单地调用 Bukkit 服务器。或者,如果需要,您可以使用 Apache Thrift 自己生成它。这使得 SwiftAPI 几乎可用于任何编程语言。

版本 1.0.0

查看变更日志和待办事项

概述

要求
  • PHP >= 5.3
  • Laravel >= 4.0
安装

使用 composer 安装

composer require radic/bukkit-swift-api

或将其添加到 composer.json

{
    "radic/bukkit-swift-api": "dev-master"
}

在 app/config/app.php 中注册服务提供者和 facade

'providers' => array(
    // ..
    'Radic\BukkitSwiftApi\BukkitSwiftApiServiceProvider',
),
'aliases' => array(
    // ..
    'SwiftApi'               => 'Radic\BukkitSwiftApi\Facades\SwiftApi',
)
配置

使用 php artisan config:publish radic/bukkit-swift-api 编辑默认配置。

array(
    'global' => array(
        'host' => 'localhost',
        'port' => 21111,
        'username' => 'admin',
        'password' => 'test',
        'salt' => 'saltines'
    ),
    'my-other-server' => array(
        'host' => '11.11.11.11',        
        'username' => 'admin',
        'password' => 'test'
        // If you left out config settings, it will use the global for that setting        
    )
);
连接

有多种连接方式

// Uses global config settings
$api = SwiftAPI::connect(); 
// Define all connection parameters inline
$api = SwiftAPI::connect('ip-or-host', 4444, 'username', 'password', 'crypt-salt');
// null or left out parameters will default back to the global config
$api = SwiftAPI::connect('ip-or-host', null, 'username', 'password');
// Uses 'my-other-server' from conffig.
$api = SwiftAPI::connectTo('my-other-server');   

示例连接

$api = SwiftApi::connect();
if($api->isConnected())
{
    var_dump('Connected');
    $serverInfo = $api->getServer();
    $api->disconnect();
    var_dump($serverInfo);
}
else
{
    var_dump( $api->getConnectionException()->getMessage() );
}
API 方法
$api->addToWhitelist($name);
$api->announce($message);
$api->ban($name);
$api->banIp($ip);
$api->deOp($name, $notifyPlayer);
$api->getBannedIps();
$api->getBannedPlayers();
$api->getBukkitVersion();
$api->getConsoleMessages($since);
$api->getFileContents($fileName);
$api->getOfflinePlayer($name);
$api->getOfflinePlayers();
$api->getOps();
$api->getPlayer($name);
$api->getPlayers();
$api->getPlugin($name);
$api->getPlugins();
$api->getServer();
$api->getServerVersion();
$api->getWhitelist();
$api->getWorld($worldName);
$api->getWorlds();
$api->installPlugin($downloadUrl, $md5);
$api->kick($name, $message);
$api->op($name, $notifyPlayer);
$api->ping();
$api->reloadServer();
$api->removeFromWhitelist($name);
$api->replacePlugin($pluginName, $downloadUrl, $md5);
$api->runConsoleCommand($command);
$api->saveWorld($worldName);
$api->setFileContents($fileName, $fileContents);
$api->setGameMode($name, $mode);
$api->setPvp($worldName, $isPvp);
$api->setStorm($worldName, $hasStorm);
$api->setThundering($worldName, $isThundering);
$api->setWorldTime($worldName, $time);
$api->unBan($name);
$api->unBanIp($ip);

在此处查看哪些方法返回数据以及这些数据是如何组织的。快速示例

$api = SwiftApi::connect();
$calls[] = $api->getServer();
$calls[] = $api->getPlugins();
$calls[] = $api->getOfflinePlayers();
$calls[] = $api->ping();
$calls[] = $api->getOps();
$api->disconnect();
var_dump($calls);

您将得到类似以下的内容

进一步阅读
示例和好东西

查看我的 Laravel Bukkit 控制台。一个基于 web 的控制台,可以直接与您的 Bukkit 服务器交互。

致谢

许可证

GNU 通用公共许可证版本 3 (GPLv3)