Class GlobalContext

java.lang.Object
io.github.theword.queqiao.core.GlobalContext

public final class GlobalContext extends Object
全局上下文门面

对外提供静态访问入口,内部持有一个 QueQiaoRuntime 实例。

线程安全:

未初始化状态:runtime 初始为 QueQiaoRuntime.empty()—— 一个"最小可用运行时"(NOP 日志 + 默认配置), 因此 getLogger() / getConfig() 不会返回 null, shutdown() / sendEvent() 也不会抛异常。

Since:
0.6.11
  • Method Details

    • init

      public static void init(boolean isModServer, String serverVersion, String serverType, HandleApiService handleApiImpl, HandleCommandReturnMessageService handleCommandReturnMessageImpl)
      初始化鹊桥

      幂等:若已初始化,会先关闭旧实例再创建新实例。 这样即使平台在未调用 shutdown() 的情况下重复初始化(如插件热重载), 旧实例持有的 WebSocket 连接、共享重连调度器、Rcon 连接与线程也能被正确回收, 而不是变成无法再关闭的孤儿对象。

      Parameters:
      isModServer - 是否为模组服务端
      serverVersion - 服务端版本
      serverType - 服务端类型
      handleApiImpl - 平台 API 实现
      handleCommandReturnMessageImpl - 平台命令返回消息实现
    • init

      public static void init(boolean isModServer, String serverVersion, String serverType, HandleApiService handleApiImpl, HandleCommandReturnMessageService handleCommandReturnMessageImpl, Consumer<ConfigRegistry> configurer)
      初始化并在配置加载前注册扩展配置。
    • executeReloadCommand

      public static void executeReloadCommand(Object commandReturner)
    • shutdown

      public static void shutdown()
      关闭鹊桥

      幂等:未初始化时调用、或重复调用,都不会抛异常。

    • sendEvent

      public static void sendEvent(BaseEvent baseEvent)
    • sendRconCommand

      public static String sendRconCommand(String command) throws RconException
      Throws:
      RconException
    • initMessagePrefixJsonObject

      public static com.google.gson.JsonElement initMessagePrefixJsonObject(String messagePrefixText)
    • isTranslationEnabled

      public static boolean isTranslationEnabled()
    • translate

      public static String translate(String key, String[] args)
    • getConfig

      public static Config getConfig()
      Returns:
      配置运行时状态(唯一配置状态来源)
    • setConfig

      public static void setConfig(Config config)
      替换运行时配置状态(供测试与工具注入)
      Parameters:
      config - 新的配置运行时状态
    • getLogger

      public static org.slf4j.Logger getLogger()
    • setLogger

      public static void setLogger(org.slf4j.Logger logger)
    • getWebsocketManager

      public static WebsocketManager getWebsocketManager()
    • getHandleApiService

      public static HandleApiService getHandleApiService()
    • getHandleCommandReturnMessageService

      public static HandleCommandReturnMessageService getHandleCommandReturnMessageService()
    • getServerVersion

      public static String getServerVersion()
    • getServerType

      public static String getServerType()
    • getGson

      public static com.google.gson.Gson getGson()
    • getMessagePrefixJsonObject

      public static com.google.gson.JsonElement getMessagePrefixJsonObject()