Class Tool
java.lang.Object
io.github.theword.queqiao.core.utils.Tool
工具类
持有全局静态对象与公共工具方法,例如日志、配置、WebSocket 管理等。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidDEBUG模式 用于输出更多内容static voidDEBUG模式 用于输出更多内容static String按{}占位符格式化消息static com.google.gson.JsonObjectDeprecated.static boolean判断是否可以输出调试日志static StringisIgnoredCommand(String command) 判断是否为需要忽略的命令static StringisRegisterOrLoginCommand(String command) Deprecated.0.4.2,请使用isIgnoredCommand(String)代替
-
Constructor Details
-
Tool
public Tool()
-
-
Method Details
-
isRegisterOrLoginCommand
Deprecated.0.4.2,请使用isIgnoredCommand(String)代替判断是否为注册或登录命令- Parameters:
command- 命令- Returns:
- 是否为注册或登录命令,如果是,返回空字符串
-
isIgnoredCommand
判断是否为需要忽略的命令- Parameters:
command- 命令- Returns:
- 如果是,返回空字符串,否则返回原命令
- Since:
- 0.4.2
-
debugLog
DEBUG模式 用于输出更多内容- Parameters:
message- 消息
-
debugLog
DEBUG模式 用于输出更多内容- Parameters:
format- 格式args- 参数
-
format
按{}占位符格式化消息为什么需要它:项目里的共享消息常量(
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- 模板,允许为 nullargs- 替换参数- Returns:
- 替换后的文本
- 本项目自己的消息(共享常量或内联字符串)——一律用本方法,占位符写
-
isDebugEnabled
public static boolean isDebugEnabled()判断是否可以输出调试日志对
GlobalContext尚未初始化的情况做空值防护: 此前直接调用GlobalContext.getConfig().isDebug(), 在运行时空对象状态下会抛出NullPointerException。对外暴露是为了让调用方在构造昂贵的日志参数(如脱敏后的请求体)之前先判断, 避免"日志关闭却仍付出构造代价"。
- Returns:
- true 表示配置已加载、日志实现可用且开启了 debug
-
getPrefixComponent
public static com.google.gson.JsonObject getPrefixComponent()Deprecated.0.4.2,请使用GlobalContext.getMessagePrefixJsonObject()代替获取发送消息的前缀字符可通过配置文件自定义
默认为:[鹊桥]
- Returns:
- 前缀
-
GlobalContext.getMessagePrefixJsonObject()代替