java.lang.Object
io.github.theword.queqiao.core.utils.Tool

public class Tool extends Object
工具类

持有全局静态对象与公共工具方法,例如日志、配置、WebSocket 管理等。

  • Constructor Details

    • Tool

      public Tool()
  • Method Details

    • isRegisterOrLoginCommand

      public static String isRegisterOrLoginCommand(String command)
      Deprecated.
      0.4.2,请使用 isIgnoredCommand(String) 代替
      判断是否为注册或登录命令
      Parameters:
      command - 命令
      Returns:
      是否为注册或登录命令,如果是,返回空字符串
    • isIgnoredCommand

      public static String isIgnoredCommand(String command)
      判断是否为需要忽略的命令
      Parameters:
      command - 命令
      Returns:
      如果是,返回空字符串,否则返回原命令
      Since:
      0.4.2
    • debugLog

      public static void debugLog(String message)
      DEBUG模式 用于输出更多内容
      Parameters:
      message - 消息
    • debugLog

      public static void debugLog(String format, Object... args)
      DEBUG模式 用于输出更多内容
      Parameters:
      format - 格式
      args - 参数
    • format

      public static String format(String template, Object... args)
      按 {} 占位符格式化消息

      为什么需要它:项目里的共享消息常量(WebsocketConstantMessage、 CommandConstant)使用 {} 占位符——与 SLF4J 日志风格一致。 但同一个常量往往还要用于非日志场景(关闭原因、命令输出等), 而 String.format(java.lang.String, java.lang.Object...) 需要的是 %s: 把 {} 常量交给它会导致占位符原样输出且参数被静默忽略。 (该问题真实发生过:关闭帧的原因里带着字面 {}。)

      使用约定:

      • 本项目自己的消息(共享常量或内联字符串)——一律用本方法,占位符写 {}
      • 来自 Minecraft 语言文件的翻译模板——必须用 String.format(java.lang.String, java.lang.Object...), 因为这类模板使用 %1$s 位置参数,本方法不支持

      行为(与 SLF4J 的 {} 语义一致): 按出现顺序依次替换;参数不足时剩余占位符保持原样;参数多余时忽略; 参数为 null 时输出 "null";模板为 null 时返回 "null"。 无参数或无占位符时直接返回原模板(零分配)。

      Parameters:
      template - 模板,允许为 null
      args - 替换参数
      Returns:
      替换后的文本
    • isDebugEnabled

      public static boolean isDebugEnabled()
      判断是否可以输出调试日志

      对 GlobalContext 尚未初始化的情况做空值防护: 此前直接调用 GlobalContext.getConfig().isDebug(), 在运行时空对象状态下会抛出 NullPointerException。

      对外暴露是为了让调用方在构造昂贵的日志参数(如脱敏后的请求体)之前先判断, 避免"日志关闭却仍付出构造代价"。

      Returns:
      true 表示配置已加载、日志实现可用且开启了 debug
    • getPrefixComponent

      public static com.google.gson.JsonObject getPrefixComponent()
      Deprecated.
      获取发送消息的前缀字符

      可通过配置文件自定义

      默认为:[鹊桥]

      Returns:
      前缀