node-karin 0.0.3 → 0.1.0

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 (105) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +57 -57
  3. package/config/defSet/App.yaml +37 -37
  4. package/config/defSet/config.yaml +43 -43
  5. package/config/defSet/group.yaml +18 -18
  6. package/config/defSet/pm2.yaml +21 -21
  7. package/config/defSet/server.yaml +42 -42
  8. package/config/view/App.yaml +74 -74
  9. package/config/view/config.yaml +100 -100
  10. package/config/view/group.yaml +62 -62
  11. package/config/view/pm2.yaml +41 -41
  12. package/config/view/redis.yaml +25 -25
  13. package/config/view/server.yaml +93 -93
  14. package/lib/adapter/onebot/onebot11.d.ts +430 -430
  15. package/lib/adapter/onebot/onebot11.js +1265 -1302
  16. package/lib/core/init.js +4 -4
  17. package/lib/core/karin.d.ts +72 -72
  18. package/lib/core/karin.js +51 -51
  19. package/lib/core/listener.d.ts +121 -121
  20. package/lib/core/listener.js +178 -178
  21. package/lib/core/plugin.app.d.ts +15 -15
  22. package/lib/core/plugin.app.js +18 -18
  23. package/lib/core/plugin.d.ts +182 -182
  24. package/lib/core/plugin.js +132 -132
  25. package/lib/core/plugin.loader.d.ts +149 -149
  26. package/lib/core/plugin.loader.js +451 -451
  27. package/lib/core/server.d.ts +26 -26
  28. package/lib/core/server.js +209 -209
  29. package/lib/db/level.d.ts +20 -20
  30. package/lib/db/level.js +36 -36
  31. package/lib/db/redis.d.ts +41 -41
  32. package/lib/db/redis.js +131 -131
  33. package/lib/db/redis_level.d.ts +113 -113
  34. package/lib/db/redis_level.js +274 -274
  35. package/lib/event/event.d.ts +138 -138
  36. package/lib/event/event.handler.d.ts +29 -29
  37. package/lib/event/event.handler.js +138 -138
  38. package/lib/event/event.js +120 -120
  39. package/lib/event/message.d.ts +102 -102
  40. package/lib/event/message.handler.d.ts +25 -25
  41. package/lib/event/message.handler.js +237 -237
  42. package/lib/event/message.js +69 -69
  43. package/lib/event/notice.d.ts +49 -49
  44. package/lib/event/notice.js +14 -14
  45. package/lib/event/request.d.ts +49 -49
  46. package/lib/event/request.js +14 -14
  47. package/lib/event/review.handler.d.ts +54 -54
  48. package/lib/event/review.handler.js +374 -374
  49. package/lib/index.d.ts +23 -23
  50. package/lib/index.js +39 -40
  51. package/lib/renderer/app.d.ts +53 -53
  52. package/lib/renderer/app.js +88 -88
  53. package/lib/renderer/base.d.ts +30 -30
  54. package/lib/renderer/base.js +68 -68
  55. package/lib/renderer/client.d.ts +30 -30
  56. package/lib/renderer/client.js +155 -155
  57. package/lib/renderer/http.d.ts +19 -19
  58. package/lib/renderer/http.js +50 -50
  59. package/lib/renderer/server.d.ts +42 -42
  60. package/lib/renderer/server.js +110 -110
  61. package/lib/renderer/wormhole.d.ts +1 -1
  62. package/lib/renderer/wormhole.js +154 -154
  63. package/lib/types/adapter.d.ts +575 -575
  64. package/lib/types/adapter.js +1 -1
  65. package/lib/types/config.d.ts +327 -327
  66. package/lib/types/config.js +1 -1
  67. package/lib/types/element.d.ts +576 -576
  68. package/lib/types/element.js +1 -1
  69. package/lib/types/index.d.ts +8 -8
  70. package/lib/types/index.js +8 -8
  71. package/lib/types/logger.d.ts +109 -109
  72. package/lib/types/logger.js +1 -1
  73. package/lib/types/onebots11.d.ts +1371 -1371
  74. package/lib/types/onebots11.js +1 -1
  75. package/lib/types/plugin.d.ts +282 -282
  76. package/lib/types/plugin.js +1 -1
  77. package/lib/types/render.d.ts +111 -111
  78. package/lib/types/render.js +1 -1
  79. package/lib/types/reply.d.ts +40 -40
  80. package/lib/types/reply.js +1 -1
  81. package/lib/types/types.d.ts +898 -898
  82. package/lib/types/types.js +1 -1
  83. package/lib/utils/YamlEditor.d.ts +62 -62
  84. package/lib/utils/YamlEditor.js +197 -197
  85. package/lib/utils/button.d.ts +49 -49
  86. package/lib/utils/button.js +75 -75
  87. package/lib/utils/common.d.ts +123 -123
  88. package/lib/utils/common.js +396 -396
  89. package/lib/utils/config.d.ts +72 -72
  90. package/lib/utils/config.js +254 -254
  91. package/lib/utils/exec.d.ts +22 -22
  92. package/lib/utils/exec.js +36 -36
  93. package/lib/utils/ffmpeg.d.ts +12 -12
  94. package/lib/utils/ffmpeg.js +25 -25
  95. package/lib/utils/handler.d.ts +76 -76
  96. package/lib/utils/handler.js +98 -98
  97. package/lib/utils/logger.d.ts +3 -3
  98. package/lib/utils/logger.js +104 -104
  99. package/lib/utils/segment.d.ts +276 -276
  100. package/lib/utils/segment.js +420 -420
  101. package/lib/utils/update.d.ts +69 -69
  102. package/lib/utils/update.js +145 -145
  103. package/lib/utils/updateVersion.d.ts +33 -33
  104. package/lib/utils/updateVersion.js +140 -140
  105. package/package.json +92 -91
@@ -1,382 +1,382 @@
1
- import Config from '../utils/config.js'
2
- import logger from '../utils/logger.js'
3
- /**
4
- * 事件拦截器
5
- * 利用可执行函数的特性,热更新所有拦截器
6
- * 所有拦截器返回的都是布尔值 为true说明通过 为false则未通过
7
- */
8
- export default new (class Review {
9
- GroupCD
10
- GroupUserCD
11
- App = Config['App']
12
- Config = Config['Config']
13
- CD
14
- mode
15
- alias
16
- GroupEnable
17
- UserEnable
18
- GroupMsgPrint
19
- PluginEnable
20
- constructor () {
21
- /** 群聊所有消息cd */
22
- this.GroupCD = {}
23
- /** 群聊个人cd */
24
- this.GroupUserCD = {}
25
- /** 事件cd */
26
- this.CD = (e, config) => true
27
- /** 响应模式 */
28
- this.mode = (e, config) => true
29
- /** 前缀、别名 */
30
- this.alias = (e, config) => true
31
- /** 群聊黑白名单 哪个群可以触发事件 */
32
- this.GroupEnable = e => true
33
- /** 用户黑白名单 谁可以触发事件 */
34
- this.UserEnable = e => true
35
- /** 群聊事件日志 哪个群可以打印日志 */
36
- this.GroupMsgPrint = e => true
37
- /** 插件黑白名单 哪个插件可以被触发 */
38
- this.PluginEnable = (app, config) => true
39
- // 延迟1秒执行
40
- setTimeout(() => {
41
- this.main()
42
- }, 1000)
1
+ import Config from '../utils/config.js'
2
+ import logger from '../utils/logger.js'
3
+ /**
4
+ * 事件拦截器
5
+ * 利用可执行函数的特性,热更新所有拦截器
6
+ * 所有拦截器返回的都是布尔值 为true说明通过 为false则未通过
7
+ */
8
+ export default new (class Review {
9
+ GroupCD
10
+ GroupUserCD
11
+ App = Config['App']
12
+ Config = Config['Config']
13
+ CD
14
+ mode
15
+ alias
16
+ GroupEnable
17
+ UserEnable
18
+ GroupMsgPrint
19
+ PluginEnable
20
+ constructor () {
21
+ /** 群聊所有消息cd */
22
+ this.GroupCD = {}
23
+ /** 群聊个人cd */
24
+ this.GroupUserCD = {}
25
+ /** 事件cd */
26
+ this.CD = (e, config) => true
27
+ /** 响应模式 */
28
+ this.mode = (e, config) => true
29
+ /** 前缀、别名 */
30
+ this.alias = (e, config) => true
31
+ /** 群聊黑白名单 哪个群可以触发事件 */
32
+ this.GroupEnable = e => true
33
+ /** 用户黑白名单 谁可以触发事件 */
34
+ this.UserEnable = e => true
35
+ /** 群聊事件日志 哪个群可以打印日志 */
36
+ this.GroupMsgPrint = e => true
37
+ /** 插件黑白名单 哪个插件可以被触发 */
38
+ this.PluginEnable = (app, config) => true
39
+ // 延迟1秒执行
40
+ setTimeout(() => {
41
+ this.main()
42
+ }, 1000)
43
43
  }
44
-
45
- main () {
46
- this.App = Config.App
47
- this.Config = Config.Config
48
- this.#CD()
49
- this.#mode()
50
- this.#alias()
51
- this.#GroupEnable()
52
- this.#UserEnable()
53
- this.#GroupMsgPrint()
54
- this.#PluginEnable()
44
+
45
+ main () {
46
+ this.App = Config.App
47
+ this.Config = Config.Config
48
+ this.#CD()
49
+ this.#mode()
50
+ this.#alias()
51
+ this.#GroupEnable()
52
+ this.#UserEnable()
53
+ this.#GroupMsgPrint()
54
+ this.#PluginEnable()
55
55
  }
56
-
57
- /**
58
- * 群聊黑白名单 允许哪个群触发事件
59
- */
60
- #GroupEnable () {
61
- /** 同时启用 */
62
- if (this.App.WhiteList.groups && this.App.BlackList.groups) {
63
- this.GroupEnable = e => {
64
- /** 白名单不为空 */
65
- if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
66
- const group_id = (Number(e.group_id) || String(e.group_id))
67
- return this.Config.WhiteList.groups.includes(group_id)
68
- }
69
- /** 白名单为空 检查黑名单是否为空 */
70
- if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
71
- const group_id = (Number(e.group_id) || String(e.group_id))
72
- return !this.Config.BlackList.groups.includes(group_id)
73
- }
74
- /** 黑白名单都为空 */
75
- return true
76
- }
77
- return true
78
- }
79
- /** 白名单启用 */
80
- if (this.App.WhiteList.groups) {
81
- this.GroupEnable = e => {
82
- if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
83
- const group_id = (Number(e.group_id) || String(e.group_id))
84
- return this.Config.WhiteList.groups.includes(group_id)
85
- }
86
- return true
87
- }
88
- return true
89
- }
90
- /** 黑名单启用 */
91
- if (this.App.BlackList.groups) {
92
- this.GroupEnable = e => {
93
- if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
94
- const group_id = (Number(e.group_id) || String(e.group_id))
95
- return !this.Config.BlackList.groups.includes(group_id)
96
- }
97
- return true
98
- }
99
- return true
100
- }
101
- /** 都没有启用 */
102
- this.GroupEnable = () => true
56
+
57
+ /**
58
+ * 群聊黑白名单 允许哪个群触发事件
59
+ */
60
+ #GroupEnable () {
61
+ /** 同时启用 */
62
+ if (this.App.WhiteList.groups && this.App.BlackList.groups) {
63
+ this.GroupEnable = e => {
64
+ /** 白名单不为空 */
65
+ if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
66
+ const group_id = (Number(e.group_id) || String(e.group_id))
67
+ return this.Config.WhiteList.groups.includes(group_id)
68
+ }
69
+ /** 白名单为空 检查黑名单是否为空 */
70
+ if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
71
+ const group_id = (Number(e.group_id) || String(e.group_id))
72
+ return !this.Config.BlackList.groups.includes(group_id)
73
+ }
74
+ /** 黑白名单都为空 */
75
+ return true
76
+ }
77
+ return true
78
+ }
79
+ /** 白名单启用 */
80
+ if (this.App.WhiteList.groups) {
81
+ this.GroupEnable = e => {
82
+ if (Array.isArray(this.Config.WhiteList.groups) && this.Config.WhiteList.groups.length) {
83
+ const group_id = (Number(e.group_id) || String(e.group_id))
84
+ return this.Config.WhiteList.groups.includes(group_id)
85
+ }
86
+ return true
87
+ }
88
+ return true
89
+ }
90
+ /** 黑名单启用 */
91
+ if (this.App.BlackList.groups) {
92
+ this.GroupEnable = e => {
93
+ if (Array.isArray(this.Config.BlackList.groups) && this.Config.BlackList.groups.length) {
94
+ const group_id = (Number(e.group_id) || String(e.group_id))
95
+ return !this.Config.BlackList.groups.includes(group_id)
96
+ }
97
+ return true
98
+ }
99
+ return true
100
+ }
101
+ /** 都没有启用 */
102
+ this.GroupEnable = () => true
103
103
  }
104
-
105
- /**
106
- * 用户黑白名单 允许那个用户触发事件
107
- */
108
- #UserEnable () {
109
- /** 同时启用 */
110
- if (this.App.WhiteList.users && this.App.BlackList.users) {
111
- this.UserEnable = e => {
112
- /** 白名单不为空 */
113
- if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
114
- const user_id = (Number(e.user_id) || String(e.user_id))
115
- return this.Config.WhiteList.users.includes(user_id)
116
- }
117
- /** 白名单为空 检查黑名单是否为空 */
118
- if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
119
- const user_id = (Number(e.user_id) || String(e.user_id))
120
- return !this.Config.BlackList.users.includes(user_id)
121
- }
122
- /** 黑白名单都为空 */
123
- return true
124
- }
125
- return true
126
- }
127
- /** 白名单启用 */
128
- if (this.App.WhiteList.users) {
129
- this.UserEnable = e => {
130
- if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
131
- const user_id = (Number(e.user_id) || String(e.user_id))
132
- return this.Config.WhiteList.users.includes(user_id)
133
- }
134
- return true
135
- }
136
- return true
137
- }
138
- /** 黑名单启用 */
139
- if (this.App.BlackList.users) {
140
- this.UserEnable = e => {
141
- if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
142
- const user_id = (Number(e.user_id) || String(e.user_id))
143
- return !this.Config.BlackList.users.includes(user_id)
144
- }
145
- return true
146
- }
147
- return true
148
- }
149
- /** 都没有启用 */
150
- this.UserEnable = () => true
104
+
105
+ /**
106
+ * 用户黑白名单 允许那个用户触发事件
107
+ */
108
+ #UserEnable () {
109
+ /** 同时启用 */
110
+ if (this.App.WhiteList.users && this.App.BlackList.users) {
111
+ this.UserEnable = e => {
112
+ /** 白名单不为空 */
113
+ if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
114
+ const user_id = (Number(e.user_id) || String(e.user_id))
115
+ return this.Config.WhiteList.users.includes(user_id)
116
+ }
117
+ /** 白名单为空 检查黑名单是否为空 */
118
+ if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
119
+ const user_id = (Number(e.user_id) || String(e.user_id))
120
+ return !this.Config.BlackList.users.includes(user_id)
121
+ }
122
+ /** 黑白名单都为空 */
123
+ return true
124
+ }
125
+ return true
126
+ }
127
+ /** 白名单启用 */
128
+ if (this.App.WhiteList.users) {
129
+ this.UserEnable = e => {
130
+ if (Array.isArray(this.Config.WhiteList.users) && this.Config.WhiteList.users.length) {
131
+ const user_id = (Number(e.user_id) || String(e.user_id))
132
+ return this.Config.WhiteList.users.includes(user_id)
133
+ }
134
+ return true
135
+ }
136
+ return true
137
+ }
138
+ /** 黑名单启用 */
139
+ if (this.App.BlackList.users) {
140
+ this.UserEnable = e => {
141
+ if (Array.isArray(this.Config.BlackList.users) && this.Config.BlackList.users.length) {
142
+ const user_id = (Number(e.user_id) || String(e.user_id))
143
+ return !this.Config.BlackList.users.includes(user_id)
144
+ }
145
+ return true
146
+ }
147
+ return true
148
+ }
149
+ /** 都没有启用 */
150
+ this.UserEnable = () => true
151
151
  }
152
-
153
- /**
154
- * 群聊事件日志 是否打印
155
- */
156
- #GroupMsgPrint () {
157
- /** 同时启用 */
158
- if (this.App.WhiteList.GroupMsgLog && this.App.BlackList.GroupMsgLog) {
159
- this.GroupMsgPrint = e => {
160
- /** 白名单不为空 */
161
- if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
162
- const group_id = (Number(e.group_id) || String(e.group_id))
163
- return this.Config.WhiteList.GroupMsgLog.includes(group_id)
164
- }
165
- /** 白名单为空 检查黑名单是否为空 */
166
- if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
167
- const group_id = (Number(e.group_id) || String(e.group_id))
168
- return !this.Config.BlackList.GroupMsgLog.includes(group_id)
169
- }
170
- /** 黑白名单都为空 */
171
- return true
172
- }
173
- return true
174
- }
175
- /** 白名单启用 */
176
- if (this.App.WhiteList.GroupMsgLog) {
177
- this.GroupMsgPrint = e => {
178
- if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
179
- const group_id = (Number(e.group_id) || String(e.group_id))
180
- return this.Config.WhiteList.GroupMsgLog.includes(group_id)
181
- }
182
- return true
183
- }
184
- return true
185
- }
186
- /** 黑名单启用 */
187
- if (this.App.BlackList.GroupMsgLog) {
188
- this.GroupMsgPrint = e => {
189
- if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
190
- const group_id = (Number(e.group_id) || String(e.group_id))
191
- return !this.Config.BlackList.GroupMsgLog.includes(group_id)
192
- }
193
- return true
194
- }
195
- return true
196
- }
197
- /** 都没有启用 */
198
- this.GroupMsgPrint = () => true
152
+
153
+ /**
154
+ * 群聊事件日志 是否打印
155
+ */
156
+ #GroupMsgPrint () {
157
+ /** 同时启用 */
158
+ if (this.App.WhiteList.GroupMsgLog && this.App.BlackList.GroupMsgLog) {
159
+ this.GroupMsgPrint = e => {
160
+ /** 白名单不为空 */
161
+ if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
162
+ const group_id = (Number(e.group_id) || String(e.group_id))
163
+ return this.Config.WhiteList.GroupMsgLog.includes(group_id)
164
+ }
165
+ /** 白名单为空 检查黑名单是否为空 */
166
+ if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
167
+ const group_id = (Number(e.group_id) || String(e.group_id))
168
+ return !this.Config.BlackList.GroupMsgLog.includes(group_id)
169
+ }
170
+ /** 黑白名单都为空 */
171
+ return true
172
+ }
173
+ return true
174
+ }
175
+ /** 白名单启用 */
176
+ if (this.App.WhiteList.GroupMsgLog) {
177
+ this.GroupMsgPrint = e => {
178
+ if (Array.isArray(this.Config.WhiteList.GroupMsgLog) && this.Config.WhiteList.GroupMsgLog.length) {
179
+ const group_id = (Number(e.group_id) || String(e.group_id))
180
+ return this.Config.WhiteList.GroupMsgLog.includes(group_id)
181
+ }
182
+ return true
183
+ }
184
+ return true
185
+ }
186
+ /** 黑名单启用 */
187
+ if (this.App.BlackList.GroupMsgLog) {
188
+ this.GroupMsgPrint = e => {
189
+ if (Array.isArray(this.Config.BlackList.GroupMsgLog) && this.Config.BlackList.GroupMsgLog.length) {
190
+ const group_id = (Number(e.group_id) || String(e.group_id))
191
+ return !this.Config.BlackList.GroupMsgLog.includes(group_id)
192
+ }
193
+ return true
194
+ }
195
+ return true
196
+ }
197
+ /** 都没有启用 */
198
+ this.GroupMsgPrint = () => true
199
199
  }
200
-
201
- /**
202
- * 黑白名单插件 哪个插件可以被触发
203
- */
204
- #PluginEnable () {
205
- /** 同时启用 */
206
- if (this.App.GroupConfig.enable && this.App.GroupConfig.disable) {
207
- this.PluginEnable = (app, config) => {
208
- /** 白名单不为空 */
209
- if (Array.isArray(config.enable) && config.enable.length) {
210
- /** 插件包是否处于功能白名单 */
211
- if (config.enable.includes(app.file.dir)) { return true }
212
- /** 插件是否处于功能白名单 */
213
- if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
214
- /** 插件名称是否处于功能白名单 */
215
- if (config.enable.includes(app.name)) { return true }
216
- logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
217
- return false
218
- }
219
- /** 白名单为空 检查黑名单是否为空 */
220
- if (Array.isArray(config.disable) && config.disable.length) {
221
- /** 插件包是否处于功能黑名单 */
222
- if (config.disable.includes(app.file.dir)) {
223
- logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
224
- return false
225
- }
226
- /** 插件是否处于功能黑名单 */
227
- if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
228
- logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
229
- return false
230
- }
231
- /** 插件名称是否处于功能黑名单 */
232
- if (config.disable.includes(app.name)) {
233
- logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
234
- return false
235
- }
236
- return true
237
- }
238
- /** 黑白名单都为空 */
239
- return true
240
- }
241
- return true
242
- }
243
- /** 白名单启用 */
244
- if (this.App.GroupConfig.enable) {
245
- this.PluginEnable = (app, config) => {
246
- if (Array.isArray(config.enable) && config.enable.length) {
247
- if (config.enable.includes(app.file.dir)) { return true }
248
- if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
249
- if (config.enable.includes(app.name)) { return true }
250
- logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
251
- return false
252
- }
253
- return true
254
- }
255
- return true
256
- }
257
- /** 黑名单启用 */
258
- if (this.App.GroupConfig.disable) {
259
- this.PluginEnable = (app, config) => {
260
- if (Array.isArray(config.disable) && config.disable.length) {
261
- if (config.disable.includes(app.file.dir)) {
262
- logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
263
- return false
264
- }
265
- if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
266
- logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
267
- return false
268
- }
269
- if (config.disable.includes(app.name)) {
270
- logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
271
- return false
272
- }
273
- return true
274
- }
275
- return true
276
- }
277
- return true
278
- }
279
- /** 都没有启用 */
280
- this.PluginEnable = () => true
281
- return true
200
+
201
+ /**
202
+ * 黑白名单插件 哪个插件可以被触发
203
+ */
204
+ #PluginEnable () {
205
+ /** 同时启用 */
206
+ if (this.App.GroupConfig.enable && this.App.GroupConfig.disable) {
207
+ this.PluginEnable = (app, config) => {
208
+ /** 白名单不为空 */
209
+ if (Array.isArray(config.enable) && config.enable.length) {
210
+ /** 插件包是否处于功能白名单 */
211
+ if (config.enable.includes(app.file.dir)) { return true }
212
+ /** 插件是否处于功能白名单 */
213
+ if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
214
+ /** 插件名称是否处于功能白名单 */
215
+ if (config.enable.includes(app.name)) { return true }
216
+ logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
217
+ return false
218
+ }
219
+ /** 白名单为空 检查黑名单是否为空 */
220
+ if (Array.isArray(config.disable) && config.disable.length) {
221
+ /** 插件包是否处于功能黑名单 */
222
+ if (config.disable.includes(app.file.dir)) {
223
+ logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
224
+ return false
225
+ }
226
+ /** 插件是否处于功能黑名单 */
227
+ if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
228
+ logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
229
+ return false
230
+ }
231
+ /** 插件名称是否处于功能黑名单 */
232
+ if (config.disable.includes(app.name)) {
233
+ logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
234
+ return false
235
+ }
236
+ return true
237
+ }
238
+ /** 黑白名单都为空 */
239
+ return true
240
+ }
241
+ return true
242
+ }
243
+ /** 白名单启用 */
244
+ if (this.App.GroupConfig.enable) {
245
+ this.PluginEnable = (app, config) => {
246
+ if (Array.isArray(config.enable) && config.enable.length) {
247
+ if (config.enable.includes(app.file.dir)) { return true }
248
+ if (config.enable.includes(`${app.file.dir}/${app.file.name}`)) { return true }
249
+ if (config.enable.includes(app.name)) { return true }
250
+ logger.debug(logger.green(`[功能白名单] 插件名称 [${app.name}] 不存在功能白名单中`))
251
+ return false
252
+ }
253
+ return true
254
+ }
255
+ return true
256
+ }
257
+ /** 黑名单启用 */
258
+ if (this.App.GroupConfig.disable) {
259
+ this.PluginEnable = (app, config) => {
260
+ if (Array.isArray(config.disable) && config.disable.length) {
261
+ if (config.disable.includes(app.file.dir)) {
262
+ logger.debug(logger.red(`[功能黑名单] 插件包 [${app.file.dir}] 处于功能黑名单`))
263
+ return false
264
+ }
265
+ if (config.disable.includes(`${app.file.dir}/${app.file.name}`)) {
266
+ logger.debug(logger.red(`[功能黑名单] 插件 [${app.file.dir}/${app.file.name}] 处于功能黑名单`))
267
+ return false
268
+ }
269
+ if (config.disable.includes(app.name)) {
270
+ logger.debug(logger.red(`[功能黑名单] 插件名称 [${app.name}] 处于功能黑名单`))
271
+ return false
272
+ }
273
+ return true
274
+ }
275
+ return true
276
+ }
277
+ return true
278
+ }
279
+ /** 都没有启用 */
280
+ this.PluginEnable = () => true
281
+ return true
282
282
  }
283
-
284
- /** 群聊cd */
285
- #CD () {
286
- /** 同时启用 */
287
- if (this.App.GroupConfig.GroupCD && this.App.GroupConfig.GroupUserCD) {
288
- this.CD = (e, config) => {
289
- const key = `${e.group_id}.${e.user_id}`
290
- /** cd中... */
291
- if (this.GroupCD[e.group_id] || this.GroupUserCD[key]) { return false }
292
- /** 全局 */
293
- this.GroupCD[e.group_id] = true
294
- setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
295
- /** 个人 */
296
- this.GroupUserCD[key] = true
297
- setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
298
- return true
299
- }
300
- return true
301
- }
302
- /** 启用单个群聊所有消息冷却时间 */
303
- if (this.App.GroupConfig.GroupCD) {
304
- this.CD = (e, config) => {
305
- /** cd中... */
306
- if (this.GroupCD[e.group_id]) { return false }
307
- /** 全局 */
308
- this.GroupCD[e.group_id] = true
309
- setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
310
- return true
311
- }
312
- return true
313
- }
314
- /** 启用单个群聊个人消息冷却时间 */
315
- if (this.App.GroupConfig.GroupUserCD) {
316
- this.CD = (e, config) => {
317
- const key = `${e.group_id}.${e.user_id}`
318
- /** cd中... */
319
- if (this.GroupUserCD[key]) { return false }
320
- /** 个人 */
321
- this.GroupUserCD[key] = true
322
- setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
323
- return true
324
- }
325
- return true
326
- }
327
- /** 都没有启用 */
328
- this.CD = () => true
283
+
284
+ /** 群聊cd */
285
+ #CD () {
286
+ /** 同时启用 */
287
+ if (this.App.GroupConfig.GroupCD && this.App.GroupConfig.GroupUserCD) {
288
+ this.CD = (e, config) => {
289
+ const key = `${e.group_id}.${e.user_id}`
290
+ /** cd中... */
291
+ if (this.GroupCD[e.group_id] || this.GroupUserCD[key]) { return false }
292
+ /** 全局 */
293
+ this.GroupCD[e.group_id] = true
294
+ setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
295
+ /** 个人 */
296
+ this.GroupUserCD[key] = true
297
+ setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
298
+ return true
299
+ }
300
+ return true
301
+ }
302
+ /** 启用单个群聊所有消息冷却时间 */
303
+ if (this.App.GroupConfig.GroupCD) {
304
+ this.CD = (e, config) => {
305
+ /** cd中... */
306
+ if (this.GroupCD[e.group_id]) { return false }
307
+ /** 全局 */
308
+ this.GroupCD[e.group_id] = true
309
+ setTimeout(() => delete this.GroupCD[e.group_id], config.GroupCD * 1000)
310
+ return true
311
+ }
312
+ return true
313
+ }
314
+ /** 启用单个群聊个人消息冷却时间 */
315
+ if (this.App.GroupConfig.GroupUserCD) {
316
+ this.CD = (e, config) => {
317
+ const key = `${e.group_id}.${e.user_id}`
318
+ /** cd中... */
319
+ if (this.GroupUserCD[key]) { return false }
320
+ /** 个人 */
321
+ this.GroupUserCD[key] = true
322
+ setTimeout(() => delete this.GroupUserCD[key], config.GroupUserCD * 1000)
323
+ return true
324
+ }
325
+ return true
326
+ }
327
+ /** 都没有启用 */
328
+ this.CD = () => true
329
329
  }
330
-
331
- /**
332
- * 响应模式
333
- */
334
- #mode () {
335
- /** 启用 */
336
- if (this.App.GroupConfig.mode) {
337
- this.mode = (e, config) => {
338
- const modeMap = {
339
- 0: () => true,
340
- 1: () => e.atBot,
341
- 2: () => e.isMaster,
342
- 3: () => !!e.alias,
343
- 4: () => {
344
- if (e.atBot) { return true }
345
- return !!e.alias
346
- },
347
- 5: () => {
348
- if (e.isMaster) { return true }
349
- if (e.atBot) { return true }
350
- return !!e.alias
351
- },
352
- }
353
- return modeMap[Number(config.mode) || 0]()
354
- }
355
- return true
356
- }
357
- /** 未启用 */
358
- this.mode = () => true
330
+
331
+ /**
332
+ * 响应模式
333
+ */
334
+ #mode () {
335
+ /** 启用 */
336
+ if (this.App.GroupConfig.mode) {
337
+ this.mode = (e, config) => {
338
+ const modeMap = {
339
+ 0: () => true,
340
+ 1: () => e.atBot,
341
+ 2: () => e.isMaster,
342
+ 3: () => !!e.alias,
343
+ 4: () => {
344
+ if (e.atBot) { return true }
345
+ return !!e.alias
346
+ },
347
+ 5: () => {
348
+ if (e.isMaster) { return true }
349
+ if (e.atBot) { return true }
350
+ return !!e.alias
351
+ },
352
+ }
353
+ return modeMap[Number(config.mode) || 0]()
354
+ }
355
+ return true
356
+ }
357
+ /** 未启用 */
358
+ this.mode = () => true
359
359
  }
360
-
361
- /**
362
- * 前缀、别名
363
- */
364
- #alias () {
365
- /** 启用 */
366
- if (this.App.GroupConfig.alias) {
367
- this.alias = (e, config) => {
368
- const aliasRegex = new RegExp(`^(${config.alias.join('|')})`)
369
- const match = e.msg.match(aliasRegex)
370
- if (match) {
371
- e.msg = e.msg.replace(aliasRegex, '').trim()
372
- e.alias = match[1]
373
- return true
374
- }
375
- return false
376
- }
377
- return true
378
- }
379
- /** 未启用 */
380
- this.alias = () => true
381
- }
382
- })()
360
+
361
+ /**
362
+ * 前缀、别名
363
+ */
364
+ #alias () {
365
+ /** 启用 */
366
+ if (this.App.GroupConfig.alias) {
367
+ this.alias = (e, config) => {
368
+ const aliasRegex = new RegExp(`^(${config.alias.join('|')})`)
369
+ const match = e.msg.match(aliasRegex)
370
+ if (match) {
371
+ e.msg = e.msg.replace(aliasRegex, '').trim()
372
+ e.alias = match[1]
373
+ return true
374
+ }
375
+ return false
376
+ }
377
+ return true
378
+ }
379
+ /** 未启用 */
380
+ this.alias = () => true
381
+ }
382
+ })()