Suite

开发者概览

Suite 第三方模块开发入门——环境准备、SDK 获取、开发路线与文档索引。

开发者概览

本章面向第三方模块开发者与需要集成自定义模块的服主。Suite 采用「宿主 + 独立模块 Jar」架构:宿主只提供基础设施(桥接、模块加载、跨服、配置诊断),所有业务逻辑都在 modules/*.jar 中运行。你可以基于公开 API 编写自己的模块,也可以安装他人发布的模块 Jar。

核心概念

plugins/
  ArcartXSuite.jar          ← 宿主(Bukkit 插件)
  ArcartXSuite/
    config.yml              ← 模块开关 modules.<id>.enabled
    modules/
      MyModule.jar          ← 你的第三方模块
    data/mymodule/          ← 模块运行时数据(配置、数据库)
    ui/                     ← 从模块 Jar 导出的 ArcartX UI
  • 模块:实现 AXSModule 或继承 AbstractAXSModule 的独立 Jar,通过 module.yml 声明入口类与依赖。
  • ModuleContext:模块与宿主通信的唯一入口——取桥接 API、注册命令、注册 Capability,都通过它完成。
  • Capability:AXS 推荐的跨模块调用方式。提供方注册接口实例,使用方按类型查找,避免模块之间直接 import 实现类。

你是谁?读哪几篇

角色目标推荐阅读顺序
模块开发者从零写一个 AXS 模块开发第三方模块Capability 详解API 参考
模块开发者调用官方模块(发称号、发邮件等)Capability 详解Capability API
服主 / 运维安装他人模块、排错使用第三方模块

开发路线图

flowchart LR
    A[获取 axs-api] --> B[创建 Gradle 项目]
    B --> C[编写 module.yml]
    C --> D[实现 AbstractAXSModule]
    D --> E[声明 UI / 配置 / 命令]
    E --> F{需要联动其他模块?}
    F -->|是| G[softdepends + getCapability]
    F -->|否| H[打包 Jar]
    G --> H
    H --> I[放入 modules/ 并启用]
  1. 获取 axs-api.jar:从 GitHub Releases 下载,或克隆仓库后 ./gradlew :axs-api:jar 构建。
  2. 开发第三方模块 搭建项目并实现入口类。
  3. 若需调用 Title、Mail、EventPacket 等官方模块,阅读 Capability 详解
  4. 构建 Jar → 放入 plugins/ArcartX-Suite/modules/ → 在 config.yml 启用 → /axs load <id> 或重启。

环境搭建

项目要求
JDK17+
构建Gradle(推荐)或 Maven
服务端已安装 ArcartX 插件 + ArcartXSuite 宿主
客户端玩家需安装 ArcartX 模组(UI/HUD/自定义包依赖客户端)
SDKaxs-api.jarcompileOnly 依赖)
// build.gradle.kts
dependencies {
    compileOnly(files("libs/axs-api-x.x.x.jar"))
    compileOnly("org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT")
    // 可选
    compileOnly("me.clip:placeholderapi:2.11.7")
}

不要引用宿主实现

模块代码中只能 import xuanmo.arcartxsuite.api.*。不要 import xuanmo.arcartxsuite.bridge.* 或宿主 module 包——会导致 ClassLoader 隔离失败,且在不同版本间不兼容。

文档索引

文档内容
开发第三方模块项目结构、Gradle、module.ymlAbstractAXSModule、UI 绑定、客户端包、子命令
模块 Ed25519 签名开发者生成密钥、签名 module.yml;服主配置公钥校验
使用第三方模块服主安装、启用、热加载、依赖与签名、常见问题
Capability 详解原理、内置能力表、提供方/使用方完整示例
模块生命周期 APIAXSModule / AbstractAXSModule 接口说明
ModuleContext桥接、跨服、资源导出等上下文 API
Capability API各内置 Capability 接口方法签名

与官方模块的关系

AXS 自带 29 个官方模块(Title、Mail、Chat 等),它们与第三方模块使用同一套加载机制:

  • 同样放在 modules/(或云端下发到内存加载)。
  • 同样通过 ModuleContext 获取桥接。
  • 同样通过 Capability 暴露能力供其他模块调用。

因此:你为服务器写的「小插件」,在架构上与 Title、Mail 是平级的——这正是 Suite(组曲)的设计。

本页目录