Class DefaultApis

java.lang.Object
io.github.theword.queqiao.core.api.DefaultApis

public final class DefaultApis extends Object
内置 API 的默认批次

core 提供一整套现成的协议实现。是否使用、使用哪些,由使用方决定—— 把 all(io.github.theword.queqiao.core.platform.AbstractPlatformContext<?, ?, ?>, io.github.theword.queqiao.core.protocol.handler.status.ServerStatusCollector, io.github.theword.queqiao.core.protocol.RconCommandExecutor, org.slf4j.Logger) 的返回值直接交给 ProtocolRouter 即全部启用; 想裁剪就从列表里删,想扩展就往列表里加。

 // 全都要
 new ProtocolRouter(logger, DefaultApis.all(ctx, status, rcon, logger));

 // 只要广播
 new ProtocolRouter(logger, Collections.singletonList(new BroadcastApi(logger, ctx)));

 // 默认 + 追加自己的
 List<Api<?, ?>> apis = new ArrayList<>(DefaultApis.all(ctx, status, rcon, logger));
 apis.add(new MyCustomApi());
 new ProtocolRouter(logger, apis);
 

默认集合的构成——按"是否依赖平台能力"分两类:

  • PlatformApi(4):broadcast(含别名 send_msg)、 send_title、send_actionbar、send_private_msg ——都需要 AbstractPlatformContext;
  • Api(3):get_status、send_rcon_command、send_command ——分别只依赖状态采集器、RCON 执行器、无依赖,不要求平台上下文。
Since:
0.7.0
  • Method Details

    • all

      public static List<Api<?,?>> all(AbstractPlatformContext<?,?,?> platformContext, ServerStatusCollector serverStatusCollector, RconCommandExecutor rconCommandExecutor, org.slf4j.Logger logger)
      构造内置 API 的完整列表
      Parameters:
      platformContext - 平台上下文,不得为 null
      serverStatusCollector - 状态采集器,供 get_status 使用
      rconCommandExecutor - RCON 执行器,供 send_rcon_command 使用
      logger - 日志实现;显式传入而非在 Api 内部静态获取, 以保持"不访问静态全局状态"的约束
      Returns:
      可变的 API 列表,调用方可自由增删