node-karin 0.3.9 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/adapter/onebot/onebot11.js +4 -1
  2. package/lib/core/karin.d.ts +45 -4
  3. package/lib/core/karin.js +52 -1
  4. package/lib/core/plugin.app.d.ts +4 -1
  5. package/lib/core/plugin.app.js +3 -3
  6. package/lib/core/plugin.d.ts +8 -2
  7. package/lib/core/plugin.loader.d.ts +7 -0
  8. package/lib/core/plugin.loader.js +49 -12
  9. package/lib/db/index.d.ts +2 -4
  10. package/lib/db/index.js +2 -4
  11. package/lib/db/level.d.ts +1 -0
  12. package/lib/db/level.js +1 -0
  13. package/lib/db/redis.d.ts +2 -41
  14. package/lib/db/redis.js +2 -3
  15. package/lib/event/event.d.ts +7 -3
  16. package/lib/event/event.handler.d.ts +7 -6
  17. package/lib/event/event.handler.js +5 -0
  18. package/lib/event/event.js +5 -0
  19. package/lib/event/index.js +2 -2
  20. package/lib/event/message.handler.d.ts +3 -3
  21. package/lib/event/message.handler.js +8 -11
  22. package/lib/event/notice.d.ts +4 -4
  23. package/lib/event/notice.handler.d.ts +17 -0
  24. package/lib/event/notice.handler.js +203 -0
  25. package/lib/event/request.d.ts +4 -4
  26. package/lib/event/request.handler.d.ts +17 -0
  27. package/lib/event/request.handler.js +109 -0
  28. package/lib/event/request.js +1 -0
  29. package/lib/event/review.handler.js +12 -24
  30. package/lib/types/adapter.d.ts +2 -1
  31. package/lib/types/api.d.ts +295 -0
  32. package/lib/types/api.js +1 -0
  33. package/lib/types/event.d.ts +127 -241
  34. package/lib/types/index.d.ts +1 -0
  35. package/lib/types/index.js +1 -0
  36. package/lib/types/plugin.d.ts +4 -4
  37. package/lib/utils/button.d.ts +2 -2
  38. package/lib/utils/config.d.ts +0 -1
  39. package/lib/utils/config.js +17 -3
  40. package/lib/utils/handler.d.ts +5 -12
  41. package/lib/utils/handler.js +3 -1
  42. package/package.json +3 -3
  43. package/lib/utils/kritor-proto.d.ts +0 -1
@@ -0,0 +1,203 @@
1
+ import { review } from './review.handler.js'
2
+ import EventHandler from './event.handler.js'
3
+ import { logger, config } from '../utils/index.js'
4
+ import { pluginLoader } from '../core/index.js'
5
+ /**
6
+ * 通知事件
7
+ */
8
+ export default class NoticeHandler extends EventHandler {
9
+ e
10
+ constructor (e) {
11
+ super(e)
12
+ this.e = e
13
+ /** 事件处理 */
14
+ if (this.review()) { return }
15
+ /** 处理回复 */
16
+ this.reply()
17
+ /** raw */
18
+ this.raw_message()
19
+ /** 处理消息 */
20
+ this.deal()
21
+ }
22
+
23
+ /**
24
+ * 处理事件
25
+ */
26
+ async deal () {
27
+ /** 主人 */
28
+ if (config.master.includes(String(this.e.user_id))) {
29
+ this.e.isMaster = true
30
+ this.e.isAdmin = true
31
+ } else if (config.admin.includes(String(this.e.user_id))) {
32
+ /** 管理员 */
33
+ this.e.isAdmin = true
34
+ }
35
+ if (this.e.contact.scene === 'private') {
36
+ this.e.isPrivate = true
37
+ this.e.logText = `[Private:${this.e.sender.nick || ''}(${this.e.user_id})]`
38
+ logger.bot('info', this.e.self_id, `${logger.green('私聊通知: ')}[${this.e.user_id}(${this.e.sender.nick || ''})] ${this.e.raw_message}`)
39
+ } else if (this.e.contact.scene === 'group') {
40
+ this.e.isGroup = true
41
+ this.e.logText = `[Group:${this.e.group_id}-${this.e.user_id}(${this.e.sender.nick || ''})]`
42
+ this.GroupMsgPrint = review.GroupMsgPrint(this.e)
43
+ this.GroupMsgPrint && logger.bot('info', this.e.self_id, `${logger.green('群通知: ')}[${this.e.group_id}-${this.e.user_id}(${this.e.sender.nick || ''})] ${this.e.raw_message}`)
44
+ } else {
45
+ logger.bot('info', this.e.self_id, `未知来源通知事件:${JSON.stringify(this.e)}`)
46
+ }
47
+ /* eslint-disable no-labels */
48
+ a: for (const index of pluginLoader.acceptIds) {
49
+ const app = pluginLoader.PluginList[index]
50
+ /** 判断事件 */
51
+ if (!this.filtEvent(app.event)) { continue }
52
+ /** 检查黑白名单插件 */
53
+ if ('GroupCD' in this.config && !review.PluginEnable(app, this.config)) { continue }
54
+ /** 日志方法字符串 */
55
+ this.e.logFnc = `[${app.file.dir}][${app.name}][accept]`
56
+ const logFnc = logger.fnc(`[${app.name}][accept]`)
57
+ /** 计算插件处理时间 */
58
+ const start = Date.now()
59
+ let res
60
+ try {
61
+ if (typeof app.accept === 'function') {
62
+ res = await app.accept(this.e)
63
+ } else {
64
+ const cla = new app.file.Fnc()
65
+ if (!cla.accept || typeof cla.accept !== 'function') { continue }
66
+ (cla.e) = this.e
67
+ res = await cla.accept(this.e)
68
+ }
69
+ if (res !== false) {
70
+ this.GroupMsgPrint && logger.bot('info', this.e.self_id, `${logFnc} 处理完成 ${logger.green(Date.now() - start + 'ms')}`)
71
+ break a
72
+ }
73
+ } catch (error) {
74
+ logger.error(`${logFnc}`)
75
+ logger.error(error.stack || error.message || JSON.stringify(error))
76
+ break a
77
+ }
78
+ }
79
+ }
80
+
81
+ /**
82
+ * 构建原始消息
83
+ */
84
+ raw_message () {
85
+ switch (this.e.sub_event) {
86
+ /** 好友头像戳一戳 */
87
+ case 'friend_poke': {
88
+ this.e.raw_message = '[好友戳一戳]: 戳了你一下'
89
+ break
90
+ }
91
+ /** 好友消息撤回 */
92
+ case 'friend_recall': {
93
+ this.e.raw_message = `[好友消息撤回]: ${this.e.content.message_id}`
94
+ break
95
+ }
96
+ /** 私聊文件上传 */
97
+ case 'friend_file_uploaded': {
98
+ const content = this.e.content
99
+ const { url } = content
100
+ this.e.raw_message = `[私聊文件上传]: ${url}`
101
+ break
102
+ }
103
+ /** 群头像戳一戳 */
104
+ case 'group_poke': {
105
+ const { operator_uid, operator_uin, target_uid, target_uin } = this.e.content
106
+ this.e.raw_message = `[群戳一戳]: ${operator_uid || operator_uin} 戳了戳 ${target_uid || target_uin}`
107
+ break
108
+ }
109
+ /** 群消息撤回 */
110
+ case 'group_recall': {
111
+ const { operator_uid, operator_uin, message_id } = this.e.content
112
+ this.e.raw_message = `[群消息撤回]: ${operator_uid || operator_uin} 撤回了一条消息 ${message_id}`
113
+ break
114
+ }
115
+ /** 群文件上传 */
116
+ case 'group_file_uploaded': {
117
+ const { url, operator_uid, operator_uin } = this.e.content
118
+ this.e.raw_message = `[群文件上传]: ${operator_uid || operator_uin} 上传了 ${url}`
119
+ break
120
+ }
121
+ /** 群成员增加 */
122
+ case 'group_member_increase': {
123
+ const { operator_uid, operator_uin, target_uid, target_uin, type } = this.e.content
124
+ this.e.raw_message = `[群成员新增]: ${operator_uid || operator_uin} ${type === 'invite' ? '邀请' : '同意'} ${target_uid || target_uin} 加入群聊`
125
+ break
126
+ }
127
+ /** 群成员减少 */
128
+ case 'group_member_decrease': {
129
+ switch (this.e.content.type) {
130
+ case 'leave': {
131
+ const { target_uid, target_uin } = this.e.content
132
+ this.e.raw_message = `[群成员减少]: ${target_uid || target_uin} 主动退出群聊`
133
+ break
134
+ }
135
+ // 群成员被踢
136
+ case 'kick': {
137
+ const { operator_uid, operator_uin, target_uid, target_uin } = this.e.content
138
+ this.e.raw_message = `[群成员减少]: ${operator_uid || operator_uin} 将 ${target_uid || target_uin} 踢出群聊`
139
+ break
140
+ }
141
+ // bot被踢
142
+ case 'kick_me': {
143
+ const { operator_uid, operator_uin } = this.e.content
144
+ this.e.raw_message = `[群成员减少]: 机器人被移除群聊,操作人:${operator_uid || operator_uin}`
145
+ break
146
+ }
147
+ }
148
+ break
149
+ }
150
+ /** 群管理员变动 */
151
+ case 'group_admin_changed': {
152
+ const { target_uid, target_uin, is_admin } = this.e.content
153
+ this.e.raw_message = `[群管理员变动]: ${target_uid || target_uin} 被${is_admin ? '设置' : '取消'}群管理员`
154
+ break
155
+ }
156
+ /** 群成员被禁言 */
157
+ case 'group_member_ban': {
158
+ const { operator_uid, operator_uin, target_uid, target_uin, type } = this.e.content
159
+ this.e.raw_message = `[群成员禁言]: ${operator_uid || operator_uin} ${type === 'ban' ? '禁言' : '解禁'}了 ${target_uid || target_uin}`
160
+ break
161
+ }
162
+ /** 群签到 */
163
+ case 'group_sign': {
164
+ const { target_uid, target_uin } = this.e.content
165
+ this.e.raw_message = `[群签到]: ${target_uid || target_uin}`
166
+ break
167
+ }
168
+ /** 群全员禁言 */
169
+ case 'group_whole_ban': {
170
+ const { operator_uid, operator_uin, is_ban } = this.e.content
171
+ this.e.raw_message = `[群全员禁言]: ${operator_uid || operator_uin} ${is_ban ? '开启全员禁言' : '解除全员禁言'}`
172
+ break
173
+ }
174
+ /** 群名片改变 */
175
+ case 'group_card_changed': {
176
+ const { operator_uid, operator_uin, target_uid, target_uin, new_card } = this.e.content
177
+ this.e.raw_message = `[群名片改变]: ${operator_uid || operator_uin} 修改了 ${target_uid || target_uin} 的名片为 ${new_card}`
178
+ break
179
+ }
180
+ /** 群成员专属头衔改变 */
181
+ case 'group_member_unique_title_changed': {
182
+ const { target_uid, target_uin, title } = this.e.content
183
+ this.e.raw_message = `[群头衔更改]: ${target_uid || target_uin} 的专属头衔改变为 ${title}`
184
+ break
185
+ }
186
+ /** 群精华消息改变 */
187
+ case 'group_essence_changed': {
188
+ const { operator_uid, operator_uin, target_uid, target_uin, message_id, is_set } = this.e.content
189
+ this.e.raw_message = `[群精华消息]: ${operator_uid || operator_uin} ${is_set ? `将${target_uid || target_uin}的消息${message_id}设置为精华消息` : `取消了${target_uid || target_uin}精华消息 ${message_id}`}`
190
+ break
191
+ }
192
+ /** 群表情回应 */
193
+ case 'group_message_reaction': {
194
+ const { message_id, face_id } = this.e.content
195
+ this.e.raw_message = `[群表情回应]: ${this.e.user_id} 给消息 ${message_id} 回应了一个${face_id}的表情`
196
+ break
197
+ }
198
+ default: {
199
+ this.e.raw_message = `[未知事件]: ${JSON.stringify(this.e)}`
200
+ }
201
+ }
202
+ }
203
+ }
@@ -1,5 +1,5 @@
1
1
  import { KarinEvent } from './event.js';
2
- import { contact, Sender, SubEventForEvent, RequestEvent } from '../types/index.js';
2
+ import { contact, Sender, EventToSubEvent, RequestType, KarinRequestEvent } from '../types/index.js';
3
3
  /**
4
4
  * - 请求事件基类
5
5
  */
@@ -32,11 +32,11 @@ export declare class KarinRequest extends KarinEvent {
32
32
  /**
33
33
  * 事件子类型
34
34
  */
35
- sub_event: SubEventForEvent<'request'>;
35
+ sub_event: EventToSubEvent['request'];
36
36
  /**
37
37
  * 事件对应的内容参数
38
38
  */
39
- content: RequestEvent<SubEventForEvent<'request'>>;
39
+ content: RequestType[EventToSubEvent['request']];
40
40
  /**
41
41
  * 群ID
42
42
  */
@@ -45,5 +45,5 @@ export declare class KarinRequest extends KarinEvent {
45
45
  /**
46
46
  * - 事件对应的内容参数
47
47
  */
48
- content: RequestEvent<SubEventForEvent<'request'>>;
48
+ content: KarinRequestEvent;
49
49
  }
@@ -0,0 +1,17 @@
1
+ import EventHandler from './event.handler.js';
2
+ import { KarinRequestEvent } from '../types/index.js';
3
+ /**
4
+ * 请求事件
5
+ */
6
+ export default class RequestHandler extends EventHandler {
7
+ e: KarinRequestEvent;
8
+ constructor(e: KarinRequestEvent);
9
+ /**
10
+ * 处理事件
11
+ */
12
+ deal(): Promise<void>;
13
+ /**
14
+ * 构建原始消息
15
+ */
16
+ raw_message(): void;
17
+ }
@@ -0,0 +1,109 @@
1
+ import { review } from './review.handler.js'
2
+ import EventHandler from './event.handler.js'
3
+ import { logger, config } from '../utils/index.js'
4
+ import { pluginLoader } from '../core/index.js'
5
+ /**
6
+ * 请求事件
7
+ */
8
+ export default class RequestHandler extends EventHandler {
9
+ e
10
+ constructor (e) {
11
+ super(e)
12
+ this.e = e
13
+ /** 事件处理 */
14
+ if (this.review()) { return }
15
+ /** 处理回复 */
16
+ this.reply()
17
+ /** raw */
18
+ this.raw_message()
19
+ /** 处理消息 */
20
+ this.deal()
21
+ }
22
+
23
+ /**
24
+ * 处理事件
25
+ */
26
+ async deal () {
27
+ /** 主人 */
28
+ if (config.master.includes(String(this.e.user_id))) {
29
+ this.e.isMaster = true
30
+ this.e.isAdmin = true
31
+ } else if (config.admin.includes(String(this.e.user_id))) {
32
+ /** 管理员 */
33
+ this.e.isAdmin = true
34
+ }
35
+ if (this.e.contact.scene === 'private') {
36
+ this.e.isPrivate = true
37
+ this.e.logText = `[Private:${this.e.sender.nick || ''}(${this.e.user_id})]`
38
+ logger.bot('info', this.e.self_id, `${logger.green('私聊请求: ')}[${this.e.user_id}(${this.e.sender.nick || ''})] ${this.e.raw_message}`)
39
+ } else if (this.e.contact.scene === 'group') {
40
+ this.e.isGroup = true
41
+ this.e.logText = `[Group:${this.e.group_id}-${this.e.user_id}(${this.e.sender.nick || ''})]`
42
+ this.GroupMsgPrint = review.GroupMsgPrint(this.e)
43
+ this.GroupMsgPrint && logger.bot('info', this.e.self_id, `${logger.green('群请求: ')}[${this.e.group_id}-${this.e.user_id}(${this.e.sender.nick || ''})] ${this.e.raw_message}`)
44
+ } else {
45
+ logger.bot('info', this.e.self_id, `未知来源请求事件:${JSON.stringify(this.e)}`)
46
+ }
47
+ /* eslint-disable no-labels */
48
+ a: for (const index of pluginLoader.acceptIds) {
49
+ const app = pluginLoader.PluginList[index]
50
+ /** 判断事件 */
51
+ if (!this.filtEvent(app.event)) { continue }
52
+ /** 检查黑白名单插件 */
53
+ if ('GroupCD' in this.config && !review.PluginEnable(app, this.config)) { continue }
54
+ /** 日志方法字符串 */
55
+ this.e.logFnc = `[${app.file.dir}][${app.name}][accept]`
56
+ const logFnc = logger.fnc(`[${app.name}][accept]`)
57
+ /** 计算插件处理时间 */
58
+ const start = Date.now()
59
+ let res
60
+ try {
61
+ if (typeof app.accept === 'function') {
62
+ res = await app.accept(this.e)
63
+ } else {
64
+ const cla = new app.file.Fnc()
65
+ if (!cla.accept || typeof cla.accept !== 'function') { continue }
66
+ (cla.e) = this.e
67
+ res = await cla.accept(this.e)
68
+ }
69
+ if (res !== false) {
70
+ this.GroupMsgPrint && logger.bot('info', this.e.self_id, `${logFnc} 处理完成 ${logger.green(Date.now() - start + 'ms')}`)
71
+ break a
72
+ }
73
+ } catch (error) {
74
+ logger.error(`${logFnc}`)
75
+ logger.error(error.stack || error.message || JSON.stringify(error))
76
+ break a
77
+ }
78
+ }
79
+ }
80
+
81
+ /**
82
+ * 构建原始消息
83
+ */
84
+ raw_message () {
85
+ switch (this.e.sub_event) {
86
+ /** 好友申请 */
87
+ case 'friend_apply': {
88
+ const { applier_uid, applier_uin, message } = this.e.content
89
+ this.e.raw_message = `[好友申请]: ${applier_uid || applier_uin} 申请理由: ${message}`
90
+ break
91
+ }
92
+ /** 群申请 */
93
+ case 'group_apply': {
94
+ const { group_id, applier_uid, applier_uin, inviter_uid, inviter_uin, reason } = this.e.content
95
+ this.e.raw_message = `[群申请]: ${group_id} 申请人: ${applier_uid || applier_uin} 邀请人: ${inviter_uid || inviter_uin} 理由: ${reason}`
96
+ break
97
+ }
98
+ /** 邀请入群 */
99
+ case 'invited_group': {
100
+ const { group_id, inviter_uid, inviter_uin } = this.e.content
101
+ this.e.raw_message = `[邀请入群]: ${group_id} 邀请人: ${inviter_uid || inviter_uin}`
102
+ break
103
+ }
104
+ default: {
105
+ this.e.raw_message = `[未知事件]: ${JSON.stringify(this.e)}`
106
+ }
107
+ }
108
+ }
109
+ }
@@ -5,6 +5,7 @@ import { KarinEvent } from './event.js'
5
5
  export class KarinRequest extends KarinEvent {
6
6
  constructor ({ self_id, event_id, user_id, time, contact, sender, sub_event, content, group_id = '' }) {
7
7
  super({ event: 'request', event_id, self_id, user_id, group_id, time, contact, sender, sub_event })
8
+ // ...
8
9
  this.content = content
9
10
  }
10
11
 
@@ -62,13 +62,11 @@ export const review = new (class Handler {
62
62
  this.GroupEnable = e => {
63
63
  /** 白名单不为空 */
64
64
  if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
65
- const group_id = (Number(e.group_id) || String(e.group_id))
66
- return this.Config.WhiteList.groups.includes(group_id)
65
+ return this.Config.WhiteList.groups.includes(String(e.group_id))
67
66
  }
68
67
  /** 白名单为空 检查黑名单是否为空 */
69
68
  if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
70
- const group_id = (Number(e.group_id) || String(e.group_id))
71
- return !this.Config.BlackList.groups.includes(group_id)
69
+ return !this.Config.BlackList.groups.includes(String(e.group_id))
72
70
  }
73
71
  /** 黑白名单都为空 */
74
72
  return true
@@ -79,8 +77,7 @@ export const review = new (class Handler {
79
77
  if (this.App.WhiteList.groups) {
80
78
  this.GroupEnable = e => {
81
79
  if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
82
- const group_id = (Number(e.group_id) || String(e.group_id))
83
- return this.Config.WhiteList.groups.includes(group_id)
80
+ return this.Config.WhiteList.groups.includes(String(e.group_id))
84
81
  }
85
82
  return true
86
83
  }
@@ -90,8 +87,7 @@ export const review = new (class Handler {
90
87
  if (this.App.BlackList.groups) {
91
88
  this.GroupEnable = e => {
92
89
  if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
93
- const group_id = (Number(e.group_id) || String(e.group_id))
94
- return !this.Config.BlackList.groups.includes(group_id)
90
+ return !this.Config.BlackList.groups.includes(String(e.group_id))
95
91
  }
96
92
  return true
97
93
  }
@@ -110,13 +106,11 @@ export const review = new (class Handler {
110
106
  this.UserEnable = e => {
111
107
  /** 白名单不为空 */
112
108
  if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
113
- const user_id = (Number(e.user_id) || String(e.user_id))
114
- return this.Config.WhiteList.users.includes(user_id)
109
+ return this.Config.WhiteList.users.includes(String(e.user_id))
115
110
  }
116
111
  /** 白名单为空 检查黑名单是否为空 */
117
112
  if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
118
- const user_id = (Number(e.user_id) || String(e.user_id))
119
- return !this.Config.BlackList.users.includes(user_id)
113
+ return !this.Config.BlackList.users.includes(String(e.user_id))
120
114
  }
121
115
  /** 黑白名单都为空 */
122
116
  return true
@@ -127,8 +121,7 @@ export const review = new (class Handler {
127
121
  if (this.App.WhiteList.users) {
128
122
  this.UserEnable = e => {
129
123
  if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
130
- const user_id = (Number(e.user_id) || String(e.user_id))
131
- return this.Config.WhiteList.users.includes(user_id)
124
+ return this.Config.WhiteList.users.includes(String(e.user_id))
132
125
  }
133
126
  return true
134
127
  }
@@ -138,8 +131,7 @@ export const review = new (class Handler {
138
131
  if (this.App.BlackList.users) {
139
132
  this.UserEnable = e => {
140
133
  if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
141
- const user_id = (Number(e.user_id) || String(e.user_id))
142
- return !this.Config.BlackList.users.includes(user_id)
134
+ return !this.Config.BlackList.users.includes(String(e.user_id))
143
135
  }
144
136
  return true
145
137
  }
@@ -158,13 +150,11 @@ export const review = new (class Handler {
158
150
  this.GroupMsgPrint = e => {
159
151
  /** 白名单不为空 */
160
152
  if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
161
- const group_id = (Number(e.group_id) || String(e.group_id))
162
- return this.Config.WhiteList.GroupMsgLog.includes(group_id)
153
+ return this.Config.WhiteList.GroupMsgLog.includes(String(e.group_id))
163
154
  }
164
155
  /** 白名单为空 检查黑名单是否为空 */
165
156
  if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
166
- const group_id = (Number(e.group_id) || String(e.group_id))
167
- return !this.Config.BlackList.GroupMsgLog.includes(group_id)
157
+ return !this.Config.BlackList.GroupMsgLog.includes(String(e.group_id))
168
158
  }
169
159
  /** 黑白名单都为空 */
170
160
  return true
@@ -175,8 +165,7 @@ export const review = new (class Handler {
175
165
  if (this.App.WhiteList.GroupMsgLog) {
176
166
  this.GroupMsgPrint = e => {
177
167
  if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
178
- const group_id = (Number(e.group_id) || String(e.group_id))
179
- return this.Config.WhiteList.GroupMsgLog.includes(group_id)
168
+ return this.Config.WhiteList.GroupMsgLog.includes(String(e.group_id))
180
169
  }
181
170
  return true
182
171
  }
@@ -186,8 +175,7 @@ export const review = new (class Handler {
186
175
  if (this.App.BlackList.GroupMsgLog) {
187
176
  this.GroupMsgPrint = e => {
188
177
  if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
189
- const group_id = (Number(e.group_id) || String(e.group_id))
190
- return !this.Config.BlackList.GroupMsgLog.includes(group_id)
178
+ return !this.Config.BlackList.GroupMsgLog.includes(String(e.group_id))
191
179
  }
192
180
  return true
193
181
  }
@@ -1,7 +1,8 @@
1
1
  import { WebSocket } from 'ws';
2
2
  import { IncomingMessage } from 'http';
3
+ import { contact } from './event.js';
3
4
  import { KarinElement, KarinNodeElement } from './element.js';
4
- import { contact, PushMessageBody, EssenceMessageBody, FriendInfo, GroupInfo, GroupMemberInfo, GroupHonorInfo } from './event.js';
5
+ import { PushMessageBody, EssenceMessageBody, FriendInfo, GroupInfo, GroupMemberInfo, GroupHonorInfo } from './api.js';
5
6
  export interface KarinAdapter {
6
7
  /**
7
8
  * - 适配器版本信息