Class QueQiaoRuntime

java.lang.Object
io.github.theword.queqiao.core.runtime.QueQiaoRuntime

public final class QueQiaoRuntime extends Object
  • Method Details

    • empty

      public static QueQiaoRuntime empty()
      构造"最小可用运行时"(空对象)

      用于尚未 init 或已 shutdown 的状态。

      此前该状态返回一个所有字段均为 null 的实例,导致 GlobalContext.shutdown() / sendEvent() 等方法直接抛 NullPointerException——空对象名不副实。

      现在保证:getLogger() 返回不输出内容的 NOP 日志; getConfig() 返回不触碰文件系统的默认配置;getGson() 可用。 WebSocket / Rcon / 语言服务仍为 null,相关入口已做空值防护。

      Returns:
      最小可用运行时
    • create

      public static QueQiaoRuntime create(boolean modServer, String serverVersion, String serverType, HandleApiService handleApiService, HandleCommandReturnMessageService handleCommandReturnMessageService)
    • create

      public static QueQiaoRuntime create(boolean modServer, String serverVersion, String serverType, HandleApiService handleApiService, HandleCommandReturnMessageService handleCommandReturnMessageService, Consumer<ConfigRegistry> configurer)
      创建运行时并在配置加载前注册扩展配置。
      Parameters:
      configurer - 可选的启动期 Schema 注册回调
      Returns:
      尚未启动的运行时
    • getConfigDocument

      public ConfigDocument getConfigDocument()
      Returns:
      当前配置文档(含未知字段)
    • getConfigRegistry

      public ConfigRegistry getConfigRegistry()
      Returns:
      配置 Schema
    • start

      public void start()
    • reload

      public void reload(Object commandReturner)
    • shutdown

      public void shutdown()
      关闭运行时

      幂等:重复调用不会抛异常。各协作者在关闭后被置空, 因此"尚未启动就关闭"与"关闭两次"都是安全的。

    • sendEvent

      public void sendEvent(BaseEvent baseEvent)
      分发事件

      运行时空对象状态下静默丢弃,不抛异常。

      Parameters:
      baseEvent - 事件
    • sendRconCommand

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

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

      public boolean isTranslationEnabled()
    • translate

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

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

      public void setConfig(Config config)
      替换运行时配置状态(供测试与工具注入;正常流程由 loadConfig() 完成)
      Parameters:
      config - 新的配置运行时状态
    • getLogger

      public org.slf4j.Logger getLogger()
    • setLogger

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

      public WebsocketManager getWebsocketManager()
    • getHandleApiService

      public HandleApiService getHandleApiService()
    • getHandleCommandReturnMessageService

      public HandleCommandReturnMessageService getHandleCommandReturnMessageService()
    • getServerVersion

      public String getServerVersion()
    • getServerType

      public String getServerType()
    • getGson

      public com.google.gson.Gson getGson()
    • getMessagePrefixJsonElement

      public com.google.gson.JsonElement getMessagePrefixJsonElement()