Suite

联动

Regions 跨模块联动、EventBus 事件与跨服支持

联动

Regions 模块通过 EventBus、存储层等机制与其他模块和外部系统联动。

EventBus 事件

Regions 模块在玩家进出区域时发布事件,其他模块可通过 EventBus 监听实现联动。

事件 Topic触发时机Payload
axs.regions.region_change玩家进入或离开区域region_id(区域 ID)、type(enter / leave)

EventBus 不可用时事件不发布,不影响 Regions 正常运行。若宿主配置了跨服传输,事件可跨服传播,其他子服上的模块也能监听到玩家进出区域的事件。

典型联动场景:进入区域触发任务(QuestGPS)、播放音效/公告(Announcer)、显示标题(Title)、区域挂机奖励(AfkReward)、自动切换聊天频道(Chat)。

存储模式

Regions 模块支持两种存储模式,通过 storage.shared 配置切换:

  • 共享存储模式(推荐):storage.shared: true,使用本体统一数据源,各模块共用 config.yml 的 storage 节配置
  • 自建存储模式:storage.shared: false,使用独立数据库连接,支持 SQLite 和 MySQL

数据存储在区域、标志、成员三张表中,MySQL 表名前缀默认为 axs_rg_(可通过 storage.mysql.table-prefix 配置)。日常维护请使用 /axs purge、/axs migrate 命令,不建议手动改表。

跨服支持

  • 存储层跨服:共享存储模式 + 同一 MySQL 数据库时,区域定义、标志、成员在全服范围内一致
  • 事件跨服:进出区域事件可通过宿主跨服传输传播到其他子服
  • 数据迁移:通过 /axs migrate 可在 SQLite(单服)与 MySQL(跨服)之间迁移区域数据

跨服传输依赖宿主的 cross-server 配置,详见 跨服部署。

模块集成

Essentials

权限节点说明
axs.essentials.fly.bypass绕过世界规则禁飞限制
axs.essentials.interact.bypass绕过世界规则禁交互限制

Essentials 为 Regions 的软依赖,先于 Regions 启动。

玩家数据清理

/axs purge 清理的是玩家的选区会话与进出追踪记录。区域定义、标志、成员数据以区域为主键,不属于玩家数据,不会被清理。

图形界面

Regions 模块提供两个 UI 界面(玩家菜单、管理员面板),文件位于 ui/ 目录:

UI 文件用途
ui/regions_menu.yml玩家区域查看菜单
ui/regions_admin.yml管理员区域管理面板

UI 文件支持通过 UI Editor 自定义修改,默认不会被更新覆盖。如需恢复默认 UI,删除对应文件后重启模块即可。

本页目录