Interface Messaging


public interface Messaging
跨服消息中间件门面(FR-26 / ADR-0016):对③层业务插件暴露与内容无关的通用传输。

四种模式:定向发送、请求-响应(RPC)、主题发布订阅、按玩家所在服寻址;外加按类型收消息。 中间件只搬运、不理解业务语义;匹配 / 对战 / 存储 / 排行等游戏功能由业务插件自行实现。

软依赖 + 降级:模块未开启或 Redis 未连上时 isAvailable() 为 false, 发送类方法抛 IllegalStateException;业务插件应先判 isAvailable() 再用,优雅降级。

线程:发送类方法可在任意线程调用(内部仅编码 + 投递)。收到消息的 handler 在中间件后台线程 触发(绝不在 MC 主线程);handler 若要碰 Bukkit/Bungee API,需自行切回平台线程。

payload 为「泛型树」:Map<String,Object> / List<Object> / 字符串 / 数字 / 布尔 / null, 经 JSON 往返。演进遵循「只增不改」(可加可选字段,不删/不改已有字段)。