ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## **CodeTemplate** 版本 **`1.5.0-1.15`** 更新后,追加了一个接口`CodeTemplate<T>`,此接口定义了一些常见的CQ码模板方法,例如: ```java T at(String code); T atAll(); T image(String id, boolean destruct); // 其他省略... ``` - 这些方法是优先根据酷Q的CQ码文库中的信息进行定义的,但是不排除后续更新中会追加新的内容的可能性。 - 返回值泛型T代表了以什么样的载体来承载这些特殊code,例如`String`或者`KQCode`。 - 具体定义内容直接参考源代码,此处不做列举。 至于使用,模组内默认提供了一些默认的实现。 ## **默认实现类** - ### **KQCodeStringTemplate** 此类为单例,依赖于`KQCodeUtils`并使用`String`作为返回值载体。 你可以通过`INSTANCE`或`getInstance()`得到其实例,也可以直接通过`KQCodeUtils`的`getStringTemplate()`方法得到。 - ### **KQCodeTemplate** 此类为单例,使用`KQCode`实例作为返回值载体。 你可以通过`INSTANCE`或`getInstance()`得到其实例,也可以直接通过`KQCodeUtils`的`getKqCodeTemplate()`方法得到。 ## **使用方式** ```java // 一段文字与cq码的混编字符串 String cqCodeText = "你好![CQ:at,qq=123456] 哈哈 [CQ:at,qq=666666] 这段话很长的。[CQ:image,file=http://forte.love:15520/img/r]"; // utils实例 final KQCodeUtils utils = KQCodeUtils.getInstance(); // 获取string模板 final CodeTemplate<String> stringTemplate = utils.getStringTemplate(); // at all final String atAll = stringTemplate.atAll(); final String at = stringTemplate.at(123456789); // ... 还有很多模板方法,主要基于库Q码文库的 System.out.println(atAll); System.out.println(at); // 获取KQCode模板 final CodeTemplate<KQCode> kqCodeTemplate = utils.getKqCodeTemplate(); // at all final KQCode kqAtAll = kqCodeTemplate.atAll(); // 注意,KQCode是不可变类,如果你想要put新参数、修改参数之类的,你需要将其转化为他的可变子类MutableKQCode final MutableKQCode mutableAtAll = kqAtAll.mutable(); mutableAtAll.put("name", "jack"); // 可变类MutableKQCode也可以转化为不可变类KQCode final KQCode immutableKqCode = mutableAtAll.immutable(); System.out.println(kqAtAll); System.out.println(mutableAtAll); System.out.println(immutableKqCode); ``` >[success] 输出结果为: ``` [CQ:at,qq=all] [CQ:at,qq=123456789] [CQ:at,qq=all] [CQ:at,qq=all,name=jack] [CQ:at,qq=all,name=jack] ```