Class DefaultApis
java.lang.Object
io.github.theword.queqiao.core.api.DefaultApis
内置 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 Summary
Modifier and TypeMethodDescriptionall(AbstractPlatformContext<?, ?, ?> platformContext, ServerStatusCollector serverStatusCollector, RconCommandExecutor rconCommandExecutor, org.slf4j.Logger logger) 构造内置 API 的完整列表
-
Method Details
-
all
public static List<Api<?,?>> all(AbstractPlatformContext<?, ?, ?> platformContext, ServerStatusCollector serverStatusCollector, RconCommandExecutor rconCommandExecutor, org.slf4j.Logger logger) 构造内置 API 的完整列表- Parameters:
platformContext- 平台上下文,不得为 nullserverStatusCollector- 状态采集器,供 get_status 使用rconCommandExecutor- RCON 执行器,供 send_rcon_command 使用logger- 日志实现;显式传入而非在 Api 内部静态获取, 以保持"不访问静态全局状态"的约束- Returns:
- 可变的 API 列表,调用方可自由增删
-