SonolusHaniwa
  • 1. 概述
  • 2. ハニプレ
  • 3. ユメステ
  • 4. Stellarity
  • 5. Phigros
  • 首页

    • 1. 概述
  • 玩家

    • 2. 安装服务
    • 3. 配置文件标准
    • 4. 服务使用方法
  • 开发者

    • 5. 自定义搜索函数
    • 6. 自定义资源创建接口
    • 7. 插件开发标准
  • 其他

    • 8. 更新日志
    • 9. 关于 srp 资源包
  • 1. 搭建开发环境
  • 2. Sonolus 基础
  • 3. 配置项目信息
  • 4. 基本数据类型
  • 5. 函数与语句块
  • 6. 注意事项
  • 1. 游玩模式基础
  • 1. 概述
  • 2. ハニプレ
  • 3. ユメステ
  • 4. Stellarity
  • 5. Phigros
  • 首页

    • 1. 概述
  • 玩家

    • 2. 安装服务
    • 3. 配置文件标准
    • 4. 服务使用方法
  • 开发者

    • 5. 自定义搜索函数
    • 6. 自定义资源创建接口
    • 7. 插件开发标准
  • 其他

    • 8. 更新日志
    • 9. 关于 srp 资源包
  • 1. 搭建开发环境
  • 2. Sonolus 基础
  • 3. 配置项目信息
  • 4. 基本数据类型
  • 5. 函数与语句块
  • 6. 注意事项
  • 1. 游玩模式基础
  • 首页

    • 1. 总览
  • 玩家

    • 2. 安装服务
    • 3. 配置文件标准
    • 4. 服务使用方法
  • 开发者

    • 5. 自定义搜索函数
    • 6. 自定义资源创建接口
    • 7. 插件开发标准
  • 其他

    • 8. 更新日志
    • 9. 关于 srp 资源包

插件开发标准

插件是整个 Sonolus 服务器系统的一个重要核心功能。接下来,本页面将向您介绍如何自行开发一个插件。

请注意,插件编写需要您对所有的类和函数有一个全面细致的了解。详细信息参见 Custom Server Specs。

基础模板

在项目根目录下创建一个文件夹 libtest,并在里面新建文件 libtest.cpp,填写代码如下:

#include"../../main.cpp"
#include<bits/stdc++.h>
using namespace std;

class Plugin: public SonolusServerPlugin {
    public:
    
    string onPluginName() const {
        return "";
    }
    string onPluginDescription() const {
        return "";
    }
    string onPluginVersion() const {
        return "";
    }
    string onPluginPlatformVersion() const {
        return "";
    }
    string onPluginAuthor() const {
        return "";
    }
    string onPluginLicense() const {
        return "";
    }
    string onPluginWebsite() const {
        return "";
    }
    vector<string> onPluginHelp(char** argv) const {
        return {};
    }
    void onPluginRunner(int argc, char** argv) const {

    }
    void onPluginRouter(int argc, char** argv, application *app) const {
        preload();

    }
};

PLUMA_INHERIT_PROVIDER(Plugin, SonolusServerPlugin);

PLUMA_CONNECTOR
bool pluma_connect(pluma::Host& host) {
    host.add( new PluginProvider() );
    return true;
}

函数解释

  • string onPluginName(): 提供插件名称。
  • string onPluginDescription(): 提供插件描述,用于在 ./sonolus plugin info [plugin] 中显示。
  • string onPluginVersion(): 提供插件版本号。
  • string onPluginPlatformVersion(): 提供目标平台版本号。只有当目标平台版本号与 Sonolus 服务器版本号相匹配时,该插件才会被载入。
  • string onPluginAuthor(): 提供插件作者。
  • string onPluginLicense(): 提供插件协议信息。
  • string onPluginWebsite(): 提供插件网站信息。
  • vector<string> onPluginHelp(char** argv): 提供额外帮助信息,argv 为主程序接收到的参数信息。
  • void onPluginRunner(int argc, char** argv): 处理主程序接收到的参数信息。
  • void onPluginRouter(int argc, char** argv, application *app): 提供额外的终结点,用于服务器的运行。所有终结点函数需要插入到 app->route 中去。

插件示例

  • libsonolush: 这些插件提供了对 onPluginHelp 函数和 onPluginRunner 函数的示例。
  • libonedrive: 该插件提供了对 onPluginRouter 函数的示例。

部署

代码编写完毕后,退出代码编辑器,重新编译您的插件即可。

最近更新:: 2024/7/3 14:27
Contributors: LittleYang0531
Prev
6. 自定义资源创建接口