# 枚举
>[info] 此章节将会列举出现的各种枚举类型,并对其中的各个类型所代表的韩式进行解释。
> 从核心`1.4.0`开始,实装了枚举工厂与byName注解,所以从核心`1.4.0`版本开始使用者可以利用枚举工厂来构建自己的枚举实现以达到DIY效果。
> 工厂的使用方式具体请查看章节`高级内容`\-`枚举工厂`
<br>
## 监听消息对象中的枚举参数
首先在介绍各个枚举之前,我先提一句,此处一般不会列举在监听消息对象中出现的枚举参数(例如群消息(`GroupMsg`) 中的 群权限类型(`PowerType`) ) 。这类枚举一般来讲很好理解,所以一般它们的介绍会直接与监听消息写在一起,或者干脆没有写。假如你找不到这类枚举参数的介绍,可以直接看一眼源码。
<br>
## KeywordMatchType
>[success] 此枚举在`**@Filter`**注解的参数`**keywordMatchType`**中使用。其代表了当监听到一个消息的时候,使用怎样的匹配规则来根据匹配关键字(`**@Filter`**注解的`**value`**参数)来对消息进行过滤。
> 以下为此枚举的各个成员以及其对应的意义:
| 枚举成员 | 意义 |
| --- | --- |
| `REGEX` | 使用正则规则匹配 |
| `TRIM_REGEX` | 首尾去空后正则匹配 |
| `RE_CQCODE_REGEX` | 移除掉所有CQ码后正则匹配 |
| `RE_CQCODE_TRIM_REGEX` | 移除掉所有CQ码并首尾去空后正则匹配 |
| `EQUALS` | 使用完全相同匹配 |
| `TRIM_EQUALS` | 首尾去空后相同匹配 |
| `RE_CQCODE_EQUALS` | 移除掉所有CQ码后相同匹配 |
| `RE_CQCODE_TRIM_EQUALS` | 移除掉所有CQ码并首尾去空后相同匹配 |
| `CONTAINS` | 包含匹配 |
| `TRIM_CONTAINS` | 去空的包含匹配 |
| `RE_CQCODE_CONTAINS` | 移除掉所有CQ码后包含匹配 |
| `RE_CQCODE_TRIM_CONTAINS` | 移除掉所有CQ码并开头结尾去空后包含匹配 |
>[info] `1.8.0`后增加:
| 枚举成员 | 意义 |
| --- | --- |
| `STARTS_WITH` | 首部匹配 |
| `TRIM_STARTS_WITH` | 首尾去空的首部匹配 |
| `RE_CQCODE_STARTS_WITH` |除掉所有CQ码后首部匹配 |
| `RE_CQCODE_TRIM_STARTS_WITH` | 移除掉所有CQ码并首尾去空后首部匹配 |
| `ENDS_WITH` | 尾部匹配 |
| `TRIM_ENDS_WITH` | 首尾去空的尾部匹配 |
| `RE_CQCODE_ENDS_WITH` | 移除掉所有CQ码后尾部匹配 |
| `RE_CQCODE_TRIM_ENDS_WITH` | 移除掉所有CQ码并首尾去空后尾部匹配 |
## MostType
>[success] 此枚举在`**@Filter`**注解的参数`**mostType`**中使用。其代表了当`**@Filter`**的`**value`**参数不止一个的时候,应该如何匹配多个关键词
> 以下为此枚举的各个成员以及其对应的意义:
| 枚举成员 | 意义 |
| --- | --- |
| `EVERY_MATCH` | 需要全部匹配 |
| `ANY_MATCH` | 任意一个匹配 |
| `NONE_MATCH` | 没有任何匹配 |
## MsgGetTypes
>[success] 此枚举通常在`**@Listen`**注解的参数`**value`**中使用。其每个成员分别各代表一个监听消息的类型。
> 以下为此枚举的各个成员以及其对应的意义:
| 枚举成员 | 意义 |
| --- | --- |
| `MsgGetTypes.privateMsg` | 私信信息 |
| `MsgGetTypes.discussMsg` | 讨论组信息 |
| `MsgGetTypes.groupMsg` | 群消息 |
| `MsgGetTypes.friendAdd` | 事件-好友添加 |
| `MsgGetTypes.groupAdminChange` | 事件-管理员变动 |
| `MsgGetTypes.groupMemberIncrease` | 事件-群成员增加 |
| `MsgGetTypes.groupMemberReduce` | 事件-群成员减少 |
| `MsgGetTypes.friendAddRequest` | 请求-添加好友 |
| `MsgGetTypes.groupAddRequest` | 请求-群添加 |
## CQCodeTypes
>[success] 此枚举为官方CQ文档中所有的CQ码的类型封装,并提供了一部分可以方法的封装。
> 但是假如你要获取CQ码的字符串还是建议使用`**CQCodeUtil`**工具类。(详情请见CQ码操作相关章节)
> (但是我总感觉我看的是旧的文档,如果有新的文档的话请告知,谢谢)
> 以下为此枚举的各个成员以及其对应的意义:
| 枚举成员 | 意义 |
| --- | --- |
| `defaultType` | 默认的未知类型,当无法获取或解析的时候将会使用此类型 |
| `face` | \[CQ:face,id={1}\] - QQ表情 |
| `bface` | \[CQ:bface,id={1}\] - 原创表情 |
| `sface` | \[CQ:sface,id={1}\] - 小表情 |
| `image` | \[CQ:image,file={1}\] - 发送自定义图片 |
| `record` | \[CQ:record,file={1},magic={2}\] - 发送语音 |
| `at` | \[CQ:at,qq={1}\] - @某人 |
| `rps` | \[CQ:rps,type={1}\] - 发送猜拳魔法表情 |
| `dice` | \[CQ:dice,type={1}\] - 发送掷骰子魔法表情 |
| `shake` | \[CQ:shake\] - 戳一戳(原窗口抖动,仅支持好友消息使用) |
| `anonymous` | \[CQ:anonymous,ignore={1}\] - 匿名发消息(仅支持群消息使用) |
| `music` | \[CQ:music,type={1},id={2}\] - 发送音乐 |
| `music_custom` | \[CQ:music,type=custom,url={1},audio={2},title={3},content={4},image={5}\] - 发送音乐自定义分享 |
| `share` | \[CQ:share,url={1},title={2},content={3},image={4}\] - 发送链接分享 |
| `emoji` | \[CQ:emoji,id={1}\] - emoji表情 |
## TimeType
>[success] 此枚举代表在定时任务注解中,`**@FixedRateTask`**的参数`**timeType`**中指定参数时间的类型
| 枚举成员 | 意义 |
| --- | --- |
| `millisecond` | 毫秒 |
| `second` | 秒 |
| `minute` | 分钟 |
| `hour` | 小时 |
## TimeTaskTemplate
>[success] 此枚举在注解`**@TypeTask`**中使用,提供一系列简单的定时任务模板
| 枚举成员 | 意义 |
| --- | --- |
| `INTERVAL_1_MILLISECOND` | 每1毫秒触发一次 |
| `INTERVAL_100_MILLISECOND` | 每100毫秒触发一次 |
| `INTERVAL_200_MILLISECOND` | 每200毫秒触发一次 |
| `INTERVAL_500_MILLISECOND` | 每500毫秒触发一次 |
| `INTERVAL_1_SECOND` | 每1秒触发一次 |
| `INTERVAL_5_SECOND` | 每5秒触发一次 |
| `INTERVAL_10_SECOND` | 每10秒触发一次 |
| `INTERVAL_30_SECOND` | 每30秒触发一次 |
| `INTERVAL_1_MINUTE` | 每1分钟触发一次 |
| `INTERVAL_5_MINUTE` | 每5分钟触发一次 |
| `INTERVAL_10_MINUTE` | 每10分钟触发一次 |
| `INTERVAL_30_MINUTE` | 每30分钟触发一次 |
| `INTERVAL_1_HOUR` | 每1小时触发一次 |
| `INTERVAL_2_HOUR` | 每2小时触发一次 |
| `INTERVAL_4_HOUR` | 每4小时触发一次 |
| `INTERVAL_6_HOUR` | 每6小时触发一次 |
| `INTERVAL_12_HOUR` | 每12小时触发一次 |
| `INTERVAL_24_HOUR` | 每24小时触发一次 |
| `EVERY_DAY_TIME_00_00` | 每天00点触发 |
| `EVERY_DAY_TIME_12_00` | 每天12点触发 |
| `EVERY_DAY_TIME_18_00` | 每天18点触发 |
| `EVERY_WEEK_MONDAY` | 每周一0点触发 |
| `EVERY_WEEK_TUESDAY` | 每周二0点触发 |
| `EVERY_WEEK_WEDNESDAY` | 每周三0点触发 |
| `EVERY_WEEK_THURSDAY` | 每周四0点触发 |
| `EVERY_WEEK_FRIDAY` | 每周五0点触发 |
| `EVERY_WEEK_SATURDAY` | 每周六0点触发 |
| `EVERY_WEEK_SUNDAY` | 每周天0点触发 |
## LogLevel
>[success] 此枚举代表在日志的拦截接口中,指定日志的级别
| 枚举成员 | 意义 |
| --- | --- |
| `DEBUG` | DEBUG级别 ,level=0 |
| `INFO` | INFO级别 level=1 |
| `WARNING` | WARNING级别 level=2 |
| `ERROR` | ERROR级别 level=3 |
>[info] **level **可以通过方法`**getLevel()`**获取
## CacheTypes
>[success] 此枚举代表在 **GETTER **的缓存转化API中作为参数使用,指定缓存时长的时间类型
| 枚举成员 | 意义 |
| --- | --- |
| `PLUS_NANOS` | 当前时间后推的n nanos |
| `PLUS_SECONDS` | 当前时间后推xx秒 |
| `PLUS_MINUTES` | 当前时间后推xx分钟 |
| `PLUS_HOURS` | 当前时间向后推xx小时 |
| `PLUS_DAYS` | 当前时间向后推xx天 |
| `PLUS_MONTH` | 当前时间向后推xx月 |
| `PLUS_YEAR` | 当前时间向后推xx年 |
## BreakType
>[success] 此枚举代表在`**@ListenBreak`** 注解和 `**@ListenBreakPlugin`** 注解中,根据函数的返回值对于是否截断的判定类型。
| 枚举成员 | 意义 |
| --- | --- |
| `ALWAYS_BREAK` | 不论结果,永远截断 |
| `ALWAYS_NO` | 不论结果,永远不截断(等于没写 |
| `WHEN_NOT_NULL` | 当执行结果不为空的时候才会进行截断 |
| `WHEN_NULL` | 当执行结果为null的时候才会进行截断 |
## ResultSelectType
>[success] 此枚举在配置中作为参数`**resultSelectType`**使用,其代表从多个监听相应值中选择唯一一个返回值的规则。
| 枚举成员 | 意义 |
| --- | --- |
| `FIRST` | 默认取第一个返回值 |
| `FIRST_BREAK` | 默认寻找第一个截断返回值。一般来讲,监听相应数组的最后一个即为截断返回值,所以相当于选取最后一个值。 |
| `FIRST_BREAK_PLUGIN` | 取第一个插件截断的返回值。 |
## MostDIYType
>[success] 此枚举参数与`MostType`类似,使用在`@Filter`注解的`mostDIYType`参数,用来决定当存在多个自定义过滤规则的时候应该如何分配结果。
> 以下为此枚举的各个成员以及其对应的意义:
| 枚举成员 | 意义 |
| --- | --- |
| `EVERY_MATCH` | 需要全部匹配 |
| `ANY_MATCH` | 任意一个匹配 |
| `NONE_MATCH` | 没有任何匹配 |
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览