架构
AXS 共享同一组反射桥、同一套客户端包守卫、同一种资源加密协议、同一份数据包流向约定。
一图概览
┌────────────────────────────────────────────────────────────────┐
│ ArcartXSuite │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ Bridge │ │ Security │ │ Config │ │ Combat / │ │
│ │ (反射桥) │ │ (Guard, │ │ (.axb + │ │ Util │ │
│ │ │ │ Pwd) │ │ Sync) │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ │
│ │ │ │ │ │
│ ┌────▼──────────────▼──────────────▼───────────────▼─────┐ │
│ │ 21 个 Module (config / service / │ │
│ │ listener / placeholder / command) │ │
│ └────┬───────────────────────────────────────────────┬───┘ │
│ │ sendPacket(player, uiId, handler, payload) │ │
└───────┼───────────────────────────────────────────────┼────────┘
│ │
┌────▼─────┐ ┌────▼─────┐
│ ArcartX │ ──────── WebSocket ─────────────── │ 客户端 │
│ 服务端 │ ◄ Packet.send(packetId, action) ─ │ MOD │
└──────────┘ └──────────┘模块化
- Modular — 宿主 + 模块 Jar 架构:模块加载、重载、UI 注册、开发指南
四个共享层
- Bridge — 反射桥:全部通过反射 + 类名探测访问第三方 API
- CrossServer — 统一跨服 SDK:
1.2.0-beta起全模块共用 Redis/Proxy 双后端与 JSON 信封 - Security — ClientPacketGuard:速率限制 + 包守卫
- Protected Resources —
.axb加密资源:YAML 加密打包协议 - Packet Flow — init/update/close 协议:UI 数据包五段式生命周期
开发者 API
1.1.0 起提供独立的 axs-api 模块作为第三方开发的稳定接口层,详见 API 参考。
- 模块生命周期 — AXSModule / AbstractAXSModule / ModuleDescriptor
- ModuleContext 上下文 — 桥接、事件、命令、资源导出
- 桥接 API — PacketBridgeAPI / ClientBridgeAPI / ItemBridgeAPI
- 事件 — ModuleLifecycleEvent
- Capability 跨模块通信
数据库
AXS 用 HikariCP + SQLite/MySQL 共存:
- 默认
mode: sqlite,文件位于plugins/ArcartXSuite/<module>.db - 改
mode: mysql后填连接信息即可切换 - 所有模块用各自独立的连接池
涉及持久化的模块:title / mail / chat / onlinerewards / loginview / map / warehouse