@alemonjs/discord 0.2.9 → 2.1.0-alpha.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 (53) hide show
  1. package/dist/assets/index.js +3 -3
  2. package/lib/env.js +1 -0
  3. package/lib/index.d.ts +2 -7
  4. package/lib/index.js +189 -271
  5. package/lib/sdk/api.d.ts +972 -0
  6. package/lib/sdk/{platform/discord/sdk/api.js → api.js} +27 -10
  7. package/lib/sdk/config.js +10 -0
  8. package/lib/sdk/intents.js +154 -0
  9. package/lib/sdk/message/CHANNEL_TOPIC_UPDATE.d.ts +11 -0
  10. package/lib/sdk/message/CHANNEL_UPDATE.d.ts +48 -0
  11. package/lib/sdk/message/GUILD_MEMBER_ADD.d.ts +28 -0
  12. package/lib/sdk/message/GUILD_MEMBER_REMOVE.d.ts +18 -0
  13. package/lib/sdk/message/GUILD_MEMBER_UPDATE.d.ts +33 -0
  14. package/lib/sdk/message/INTERACTION_CREATE.d.ts +126 -0
  15. package/lib/sdk/message/MESSAGE_CREATE.d.ts +59 -0
  16. package/lib/sdk/message/MESSAGE_DELETE.d.ts +11 -0
  17. package/lib/sdk/message/MESSAGE_REACTION_ADD.d.ts +42 -0
  18. package/lib/sdk/message/MESSAGE_UPDATE.d.ts +56 -0
  19. package/lib/sdk/message/PRESENCE_UPDATE.d.ts +69 -0
  20. package/lib/sdk/message/READY.d.ts +9 -0
  21. package/lib/sdk/message/TYPING_START.d.ts +35 -0
  22. package/lib/sdk/message/VOICE_CHANNEL_STATUS_UPDATE.d.ts +10 -0
  23. package/lib/sdk/message/VOICE_STATE_UPDATE.d.ts +41 -0
  24. package/lib/sdk/message.d.ts +101 -0
  25. package/lib/sdk/types.d.ts +5 -0
  26. package/lib/sdk/types.js +25 -0
  27. package/lib/sdk/wss.d.ts +27 -0
  28. package/lib/sdk/{platform/discord/sdk/wss.js → wss.js} +14 -7
  29. package/lib/sdk/wss.types.d.ts +30 -0
  30. package/lib/send.js +132 -0
  31. package/package.json +4 -1
  32. package/lib/sdk/platform/discord/sdk/api.d.ts +0 -896
  33. package/lib/sdk/platform/discord/sdk/config.js +0 -29
  34. package/lib/sdk/platform/discord/sdk/intents.js +0 -36
  35. package/lib/sdk/platform/discord/sdk/message/CHANNEL_TOPIC_UPDATE.d.ts +0 -11
  36. package/lib/sdk/platform/discord/sdk/message/CHANNEL_UPDATE.d.ts +0 -48
  37. package/lib/sdk/platform/discord/sdk/message/GUILD_MEMBER_ADD.d.ts +0 -28
  38. package/lib/sdk/platform/discord/sdk/message/GUILD_MEMBER_REMOVE.d.ts +0 -18
  39. package/lib/sdk/platform/discord/sdk/message/GUILD_MEMBER_UPDATE.d.ts +0 -33
  40. package/lib/sdk/platform/discord/sdk/message/MESSAGE_CREATE.d.ts +0 -59
  41. package/lib/sdk/platform/discord/sdk/message/MESSAGE_DELETE.d.ts +0 -11
  42. package/lib/sdk/platform/discord/sdk/message/MESSAGE_REACTION_ADD.d.ts +0 -42
  43. package/lib/sdk/platform/discord/sdk/message/MESSAGE_UPDATE.d.ts +0 -56
  44. package/lib/sdk/platform/discord/sdk/message/PRESENCE_UPDATE.d.ts +0 -63
  45. package/lib/sdk/platform/discord/sdk/message/READY.d.ts +0 -9
  46. package/lib/sdk/platform/discord/sdk/message/TYPING_START.d.ts +0 -35
  47. package/lib/sdk/platform/discord/sdk/message/VOICE_CHANNEL_STATUS_UPDATE.d.ts +0 -10
  48. package/lib/sdk/platform/discord/sdk/message/VOICE_STATE_UPDATE.d.ts +0 -41
  49. package/lib/sdk/platform/discord/sdk/message.d.ts +0 -37
  50. package/lib/sdk/platform/discord/sdk/types.d.ts +0 -4
  51. package/lib/sdk/platform/discord/sdk/wss.d.ts +0 -27
  52. package/lib/sdk/platform/discord/sdk/wss.types.d.ts +0 -26
  53. /package/lib/sdk/core/{utils/from.js → from.js} +0 -0
@@ -0,0 +1,69 @@
1
+ /**
2
+ * 表态 更新
3
+ * @param event
4
+ */
5
+ type PRESENCE_UPDATE_TYPE = {
6
+ user:
7
+ | {
8
+ id: number
9
+ }
10
+ | {
11
+ username: string
12
+ public_flags: number
13
+ id: string
14
+ global_name: string
15
+ discriminator: string
16
+ avatar_decoration_data: {
17
+ sku_id: string
18
+ asset: string
19
+ }
20
+ avatar: string
21
+ }
22
+ status: string
23
+ guild_id: string
24
+ client_status: {
25
+ desktop: string
26
+ }
27
+ broadcast: null
28
+ activities:
29
+ | {
30
+ type: number
31
+ timestamps: any
32
+ state: string
33
+ name: string
34
+ id: string
35
+ details: string
36
+ created_at: number
37
+ assets: any
38
+ application_id: string
39
+ }[]
40
+ | {
41
+ type: number
42
+ state: string
43
+ name: string
44
+ id: string
45
+ emoji: any
46
+ created_at: number
47
+ }[]
48
+ | {
49
+ type: number
50
+ name: string
51
+ id: string
52
+ created_at: number
53
+ }[]
54
+ | {
55
+ type: number
56
+ timestamps: any
57
+ state: string
58
+ session_id: string
59
+ name: string
60
+ id: string
61
+ details: string
62
+ created_at: number
63
+ buttons: any[]
64
+ assets: any
65
+ application_id: string
66
+ }[]
67
+ }
68
+
69
+ export type { PRESENCE_UPDATE_TYPE }
@@ -0,0 +1,9 @@
1
+ type READY_TYPE = {
2
+ user: {
3
+ id: any
4
+ avatar: string
5
+ username: string
6
+ }
7
+ }
8
+
9
+ export type { READY_TYPE }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 类型开始
3
+ * @param event
4
+ */
5
+ type TYPING_START_TYPE = {
6
+ user_id: string
7
+ timestamp: number
8
+ member: {
9
+ user: {
10
+ username: string
11
+ public_flags: number
12
+ id: string
13
+ global_name: string
14
+ display_name: string
15
+ discriminator: string
16
+ bot: boolean
17
+ avatar_decoration_data: null
18
+ avatar: string
19
+ }
20
+ roles: string[]
21
+ premium_since: string
22
+ pending: boolean
23
+ nick: string
24
+ mute: boolean
25
+ joined_at: string
26
+ flags: number
27
+ deaf: boolean
28
+ communication_disabled_until: null
29
+ avatar: null
30
+ }
31
+ channel_id: string
32
+ guild_id: string
33
+ }
34
+
35
+ export type { TYPING_START_TYPE }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 音频子频道状态更新
3
+ */
4
+ type VOICE_CHANNEL_STATUS_UPDATE_TYPE = {
5
+ status: null
6
+ id: string
7
+ guild_id: string
8
+ }
9
+
10
+ export type { VOICE_CHANNEL_STATUS_UPDATE_TYPE }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 音频状态更新
3
+ */
4
+ type VOICE_STATE_UPDATE_TYPE = {
5
+ member: {
6
+ user: {
7
+ username: string
8
+ public_flags: number
9
+ id: string
10
+ global_name: string
11
+ display_name: string
12
+ discriminator: string
13
+ bot: boolean
14
+ avatar_decoration_data: any
15
+ avatar: string
16
+ }
17
+ roles: string[]
18
+ premium_since: null
19
+ pending: boolean
20
+ nick: null
21
+ mute: boolean
22
+ joined_at: string
23
+ flags: number
24
+ deaf: boolean
25
+ communication_disabled_until: null
26
+ avatar: string
27
+ }
28
+ user_id: string
29
+ suppress: boolean
30
+ session_id: string
31
+ self_video: boolean
32
+ self_mute: true
33
+ self_deaf: boolean
34
+ request_to_speak_timestamp: null
35
+ mute: boolean
36
+ guild_id: string
37
+ deaf: boolean
38
+ channel_id: string
39
+ }
40
+
41
+ export type { VOICE_STATE_UPDATE_TYPE }
@@ -0,0 +1,101 @@
1
+ import { CHANNEL_TOPIC_UPDATE_TYPE } from './message/CHANNEL_TOPIC_UPDATE.js'
2
+ import { CHANNEL_UPDATE_TYPE } from './message/CHANNEL_UPDATE.js'
3
+ import { GUILD_MEMBER_ADD_TYPE } from './message/GUILD_MEMBER_ADD.js'
4
+ import { GUILD_MEMBER_REMOVE_TYPE } from './message/GUILD_MEMBER_REMOVE.js'
5
+ import { GUILD_MEMBER_UPDATE_TYPE } from './message/GUILD_MEMBER_UPDATE.js'
6
+ import { INTERACTION_CREATE_TYPE } from './message/INTERACTION_CREATE.js'
7
+ import { MESSAGE_CREATE_TYPE } from './message/MESSAGE_CREATE.js'
8
+ import { MESSAGE_DELETE_TYPE } from './message/MESSAGE_DELETE.js'
9
+ import { MESSAGE_REACTION_ADD_TYPE } from './message/MESSAGE_REACTION_ADD.js'
10
+ import { MESSAGE_UPDATE_TYPE } from './message/MESSAGE_UPDATE.js'
11
+ import { PRESENCE_UPDATE_TYPE } from './message/PRESENCE_UPDATE.js'
12
+ import { READY_TYPE } from './message/READY.js'
13
+ import { TYPING_START_TYPE } from './message/TYPING_START.js'
14
+ import { VOICE_CHANNEL_STATUS_UPDATE_TYPE } from './message/VOICE_CHANNEL_STATUS_UPDATE.js'
15
+ import { VOICE_STATE_UPDATE_TYPE } from './message/VOICE_STATE_UPDATE.js'
16
+
17
+ /**
18
+ * Discord 事件映射表
19
+ */
20
+ type DCEventMap = {
21
+ GUILD_CREATE: any
22
+ GUILD_UPDATE: any
23
+ GUILD_DELETE: any
24
+ GUILD_ROLE_CREATE: any
25
+ GUILD_ROLE_UPDATE: any
26
+ GUILD_ROLE_DELETE: any
27
+ CHANNEL_CREATE: any
28
+ CHANNEL_UPDATE: CHANNEL_UPDATE_TYPE
29
+ CHANNEL_DELETE: any
30
+ CHANNEL_PINS_UPDATE: any
31
+ CHANNEL_TOPIC_UPDATE: CHANNEL_TOPIC_UPDATE_TYPE
32
+ THREAD_CREATE: any
33
+ THREAD_UPDATE: any
34
+ THREAD_DELETE: any
35
+ THREAD_LIST_SYNC: any
36
+ THREAD_MEMBER_UPDATE: any
37
+ THREAD_MEMBERS_UPDATE: any
38
+ STAGE_INSTANCE_CREATE: any
39
+ STAGE_INSTANCE_UPDATE: any
40
+ STAGE_INSTANCE_DELETE: any
41
+ GUILD_MEMBER_ADD: GUILD_MEMBER_ADD_TYPE
42
+ GUILD_MEMBER_UPDATE: GUILD_MEMBER_UPDATE_TYPE
43
+ GUILD_MEMBER_REMOVE: GUILD_MEMBER_REMOVE_TYPE
44
+ GUILD_AUDIT_LOG_ENTRY_CREATE: any
45
+ GUILD_BAN_ADD: any
46
+ GUILD_BAN_REMOVE: any
47
+ GUILD_EMOJIS_UPDATE: any
48
+ GUILD_STICKERS_UPDATE: any
49
+ GUILD_SOUNDBOARD_SOUND_CREATE: any
50
+ GUILD_SOUNDBOARD_SOUND_UPDATE: any
51
+ GUILD_SOUNDBOARD_SOUND_DELETE: any
52
+ GUILD_SOUNDBOARD_SOUNDS_UPDATE: any
53
+ GUILD_INTEGRATIONS_UPDATE: any
54
+ INTEGRATION_CREATE: any
55
+ INTEGRATION_UPDATE: any
56
+ INTEGRATION_DELETE: any
57
+ WEBHOOKS_UPDATE: any
58
+ INVITE_CREATE: any
59
+ INVITE_DELETE: any
60
+ VOICE_STATE_UPDATE: VOICE_STATE_UPDATE_TYPE
61
+ VOICE_CHANNEL_STATUS_UPDATE: VOICE_CHANNEL_STATUS_UPDATE_TYPE
62
+ VOICE_CHANNEL_EFFECT_SEND: any
63
+ PRESENCE_UPDATE: PRESENCE_UPDATE_TYPE
64
+ MESSAGE_CREATE: MESSAGE_CREATE_TYPE
65
+ MESSAGE_UPDATE: MESSAGE_UPDATE_TYPE
66
+ MESSAGE_DELETE: MESSAGE_DELETE_TYPE
67
+ MESSAGE_DELETE_BULK: any
68
+ MESSAGE_REACTION_ADD: MESSAGE_REACTION_ADD_TYPE
69
+ MESSAGE_REACTION_REMOVE: any
70
+ MESSAGE_REACTION_REMOVE_ALL: any
71
+ MESSAGE_REACTION_REMOVE_EMOJI: any
72
+ TYPING_START: TYPING_START_TYPE
73
+ DIRECT_MESSAGE_CREATE: any
74
+ DIRECT_MESSAGE_UPDATE: any
75
+ DIRECT_MESSAGE_DELETE: any
76
+ DIRECT_MESSAGE_PINS_UPDATE: any
77
+ DIRECT_MESSAGE_REACTION_ADD: any
78
+ DIRECT_MESSAGE_REACTION_REMOVE: any
79
+ DIRECT_MESSAGE_REACTION_REMOVE_ALL: any
80
+ DIRECT_MESSAGE_REACTION_REMOVE_EMOJI: any
81
+ DIRECT_MESSAGE_TYPING_START: any
82
+ GUILD_SCHEDULED_EVENT_CREATE: any
83
+ GUILD_SCHEDULED_EVENT_UPDATE: any
84
+ GUILD_SCHEDULED_EVENT_DELETE: any
85
+ GUILD_SCHEDULED_EVENT_USER_ADD: any
86
+ GUILD_SCHEDULED_EVENT_USER_REMOVE: any
87
+ AUTO_MODERATION_RULE_CREATE: any
88
+ AUTO_MODERATION_RULE_UPDATE: any
89
+ AUTO_MODERATION_RULE_DELETE: any
90
+ AUTO_MODERATION_ACTION_EXECUTION: any
91
+ MESSAGE_POLL_VOTE_ADD: any
92
+ MESSAGE_POLL_VOTE_REMOVE: any
93
+ DIRECT_MESSAGE_POLL_VOTE_ADD: any
94
+ DIRECT_MESSAGE_POLL_VOTE_REMOVE: any
95
+ READY: READY_TYPE
96
+ ERROR: any
97
+ INTERACTION_CREATE: INTERACTION_CREATE_TYPE
98
+ RESUMED: any
99
+ }
100
+
101
+ export type { DCEventMap }
@@ -0,0 +1,5 @@
1
+ declare const AvailableIntentsEventsEnum: string[]
2
+ type DCIntentsEnum = (typeof AvailableIntentsEventsEnum)[number]
3
+
4
+ export { AvailableIntentsEventsEnum }
5
+ export type { DCIntentsEnum }
@@ -0,0 +1,25 @@
1
+ const AvailableIntentsEventsEnum = [
2
+ 'GUILDS',
3
+ 'GUILD_MEMBERS',
4
+ 'GUILD_MODERATION',
5
+ 'GUILD_EXPRESSIONS',
6
+ 'GUILD_INTEGRATIONS',
7
+ 'GUILD_WEBHOOKS',
8
+ 'GUILD_INVITES',
9
+ 'GUILD_VOICE_STATES',
10
+ 'GUILD_PRESENCES',
11
+ 'GUILD_MESSAGES',
12
+ 'GUILD_MESSAGE_REACTIONS',
13
+ 'GUILD_MESSAGE_TYPING',
14
+ 'DIRECT_MESSAGES',
15
+ 'DIRECT_MESSAGE_REACTIONS',
16
+ 'DIRECT_MESSAGE_TYPING',
17
+ 'MESSAGE_CONTENT',
18
+ 'GUILD_SCHEDULED_EVENTS',
19
+ 'AUTO_MODERATION_CONFIGURATION',
20
+ 'AUTO_MODERATION_EXECUTION',
21
+ 'GUILD_MESSAGE_POLLS',
22
+ 'DIRECT_MESSAGE_POLLS'
23
+ ];
24
+
25
+ export { AvailableIntentsEventsEnum };
@@ -0,0 +1,27 @@
1
+ import { DCAPI } from './api.js'
2
+ import { DISOCRDOptions } from './wss.types.js'
3
+ import { DCEventMap } from './message.js'
4
+
5
+ declare class DCClient extends DCAPI {
6
+ #private
7
+ /**
8
+ * 设置配置
9
+ * @param opstion
10
+ */
11
+ constructor(opstion: DISOCRDOptions)
12
+ /**
13
+ * 注册事件处理程序
14
+ * @param key 事件名称
15
+ * @param val 事件处理函数
16
+ */
17
+ on<T extends keyof DCEventMap>(key: T, val: (event: DCEventMap[T]) => any): this
18
+ /**
19
+ * 创建ws监听
20
+ * @param conversation
21
+ * @param shard
22
+ * @returns
23
+ */
24
+ connect(gatewayURL?: string): Promise<void>
25
+ }
26
+
27
+ export { DCClient }
@@ -19,6 +19,7 @@ class DCClient extends DCAPI {
19
19
  config.set('intent', opstion.intent);
20
20
  config.set('shard', opstion.shard);
21
21
  config.set('token', opstion.token);
22
+ config.set('gatewayURL', opstion.gatewayURL);
22
23
  return this;
23
24
  }
24
25
  /**
@@ -78,18 +79,19 @@ class DCClient extends DCAPI {
78
79
  * @param shard
79
80
  * @returns
80
81
  */
81
- async connect() {
82
+ async connect(gatewayURL) {
82
83
  // 清除序列号
83
84
  this.#seq = null;
84
85
  // 清除心跳
85
86
  clearTimeout(this.#timeout_id);
86
87
  // 获取网关
87
- const url = await this.gateway()
88
- .then(res => res?.url)
89
- .catch(err => {
90
- if (this.#events['ERROR'])
91
- this.#events['ERROR'](err);
92
- });
88
+ const url = gatewayURL ??
89
+ (await this.gateway()
90
+ .then(res => res?.url)
91
+ .catch(err => {
92
+ if (this.#events['ERROR'])
93
+ this.#events['ERROR'](err?.message ?? err);
94
+ }));
93
95
  // 没有网关
94
96
  if (!url) {
95
97
  console.error('[ws] 无法获取网关');
@@ -129,6 +131,11 @@ class DCClient extends DCAPI {
129
131
  console.log('[ws] session_id', this.#session_id);
130
132
  }
131
133
  }
134
+ // const events = ['PRESENCE_UPDATE','TYPING_START']
135
+ // if (!events.includes(t)) {
136
+ // console.log("t", t)
137
+ // console.log("d", d)
138
+ // }
132
139
  // 事件处理
133
140
  if (this.#events[t]) {
134
141
  try {
@@ -0,0 +1,30 @@
1
+ import { DCIntentsEnum } from './types.js'
2
+
3
+ /**
4
+ * ****
5
+ * discord
6
+ * ***
7
+ */
8
+ interface DISOCRDOptions {
9
+ /**
10
+ * 网关地址
11
+ */
12
+ gatewayURL?: string
13
+ /**
14
+ * 钥匙
15
+ */
16
+ token: string
17
+ /**
18
+ * 订阅(有默认值)
19
+ * ******
20
+ */
21
+ intent?: DCIntentsEnum[]
22
+ /**
23
+ * 分片(有默认值)
24
+ * ******
25
+ * [0, 1]
26
+ */
27
+ shard?: number[]
28
+ }
29
+
30
+ export type { DISOCRDOptions }
package/lib/send.js ADDED
@@ -0,0 +1,132 @@
1
+ import { createResult, ResultCode } from 'alemonjs';
2
+ import { readFileSync } from 'fs';
3
+
4
+ const ImageURLToBuffer = async (url) => {
5
+ const arrayBuffer = await fetch(url).then(res => res.arrayBuffer());
6
+ return Buffer.from(arrayBuffer);
7
+ };
8
+ const createButtonsData = (rows) => {
9
+ return rows.map(row => {
10
+ const val = row.value;
11
+ return {
12
+ type: 1,
13
+ components: val.map(button => {
14
+ const value = button.value;
15
+ let text = '';
16
+ if (typeof button.options?.data === 'object') {
17
+ text = button.options?.data.click;
18
+ }
19
+ else {
20
+ text = button.options.data;
21
+ }
22
+ return {
23
+ type: 2,
24
+ custom_id: text,
25
+ style: 1,
26
+ label: typeof value == 'object' ? value.title : value
27
+ };
28
+ })
29
+ };
30
+ });
31
+ };
32
+ const sendchannel = (client, param, val) => {
33
+ if (val.length < 0)
34
+ return Promise.all([]);
35
+ const channel_id = param?.channel_id ?? '';
36
+ // images
37
+ const images = val.filter(item => item.type == 'Image' || item.type == 'ImageURL' || item.type == 'ImageFile');
38
+ // buttons
39
+ const buttons = val.filter(item => item.type == 'BT.group');
40
+ // text
41
+ const content = val
42
+ .filter(item => item.type == 'Mention' || item.type == 'Text' || item.type == 'Link')
43
+ .map(item => {
44
+ if (item.type == 'Link') {
45
+ return `[${item.value}](${item?.options?.link ?? item.value})`;
46
+ }
47
+ else if (item.type == 'Mention') {
48
+ if (item.value == 'everyone' ||
49
+ item.value == 'all' ||
50
+ item.value == '' ||
51
+ typeof item.value != 'string') {
52
+ return `<@everyone>`;
53
+ }
54
+ if (item.options?.belong == 'user') {
55
+ return `<@${item.value}>`;
56
+ }
57
+ else if (item.options?.belong == 'channel') {
58
+ return `<#${item.value}>`;
59
+ }
60
+ return '';
61
+ }
62
+ else if (item.type == 'Text') {
63
+ if (item.options?.style == 'block') {
64
+ return `\`${item.value}\``;
65
+ }
66
+ else if (item.options?.style == 'italic') {
67
+ return `*${item.value}*`;
68
+ }
69
+ else if (item.options?.style == 'bold') {
70
+ return `**${item.value}**`;
71
+ }
72
+ else if (item.options?.style == 'strikethrough') {
73
+ return `~~${item.value}~~`;
74
+ }
75
+ return item.value;
76
+ }
77
+ })
78
+ .join('');
79
+ if (images.length > 0) {
80
+ let isText = false;
81
+ return Promise.all(images.map(async (item) => {
82
+ // content
83
+ let text = null;
84
+ if (!isText) {
85
+ text = content;
86
+ }
87
+ isText = true;
88
+ if (item.type == 'Image') {
89
+ return client.channelsMessagesImage(channel_id, item.value, { content: text });
90
+ }
91
+ else if (item.type == 'ImageURL') {
92
+ return client.channelsMessagesImage(channel_id, await ImageURLToBuffer(item.value), {
93
+ content: text
94
+ });
95
+ }
96
+ else if (item.type == 'ImageFile') {
97
+ const data = readFileSync(item.value);
98
+ return client.channelsMessagesImage(channel_id, data, { content: text });
99
+ }
100
+ }));
101
+ }
102
+ if (buttons && buttons.length > 0) {
103
+ return Promise.all(buttons.map(async (item) => {
104
+ const rows = item.value;
105
+ // 构造成按钮
106
+ const data = createButtonsData(rows);
107
+ const res = await client.channelsMessages(channel_id, {
108
+ content: content,
109
+ components: data
110
+ });
111
+ return createResult(ResultCode.Ok, 'client.groupOpenMessages', {
112
+ id: res.id
113
+ });
114
+ })).catch(err => [
115
+ createResult(ResultCode.Fail, err?.response?.data ?? err?.message ?? err, null)
116
+ ]);
117
+ }
118
+ if (content) {
119
+ return Promise.all([content].map(item => client.channelsMessages(channel_id, {
120
+ content: item
121
+ })));
122
+ }
123
+ return Promise.all([]);
124
+ };
125
+ const senduser = async (client, param, val) => {
126
+ if (val.length < 0)
127
+ return Promise.all([]);
128
+ const channel_id = param?.channel_id ?? (await client.userMeChannels(param.author_id))?.id;
129
+ return sendchannel(client, { channel_id }, val);
130
+ };
131
+
132
+ export { sendchannel, senduser };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alemonjs/discord",
3
- "version": "0.2.9",
3
+ "version": "2.1.0-alpha.0",
4
4
  "description": "阿柠檬discord平台连接",
5
5
  "author": "lemonade",
6
6
  "license": "MIT",
@@ -18,6 +18,9 @@
18
18
  "./package": "./package.json",
19
19
  "./desktop": "./lib/desktop.js"
20
20
  },
21
+ "devDependencies": {
22
+ "@types/qrcode": "^1.5.5"
23
+ },
21
24
  "alemonjs": {
22
25
  "desktop": {
23
26
  "platform": [