@onebots/adapter-discord 1.0.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.
- package/LICENSE +21 -0
- package/README.md +202 -0
- package/lib/adapter.d.ts +175 -0
- package/lib/adapter.js +897 -0
- package/lib/bot.d.ts +293 -0
- package/lib/bot.js +526 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +8 -0
- package/lib/lite/bot.d.ts +305 -0
- package/lib/lite/bot.js +527 -0
- package/lib/lite/gateway.d.ts +119 -0
- package/lib/lite/gateway.js +349 -0
- package/lib/lite/index.d.ts +148 -0
- package/lib/lite/index.js +244 -0
- package/lib/lite/interactions.d.ts +134 -0
- package/lib/lite/interactions.js +238 -0
- package/lib/lite/rest.d.ts +102 -0
- package/lib/lite/rest.js +292 -0
- package/lib/types.d.ts +106 -0
- package/lib/types.js +64 -0
- package/package.json +65 -0
package/lib/bot.d.ts
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discord Bot 客户端
|
|
3
|
+
* 轻量版实现,直接封装 Discord API,支持 Node.js 和 Cloudflare Workers
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import { DiscordLite } from './lite/index.js';
|
|
7
|
+
import type { DiscordREST } from './lite/rest.js';
|
|
8
|
+
import type { DiscordConfig } from './types.js';
|
|
9
|
+
export interface DiscordUser {
|
|
10
|
+
id: string;
|
|
11
|
+
username: string;
|
|
12
|
+
discriminator: string;
|
|
13
|
+
global_name?: string | null;
|
|
14
|
+
avatar: string | null;
|
|
15
|
+
bot?: boolean;
|
|
16
|
+
displayAvatarURL: () => string;
|
|
17
|
+
tag?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface DiscordMessage {
|
|
20
|
+
id: string;
|
|
21
|
+
channel_id: string;
|
|
22
|
+
guild_id?: string;
|
|
23
|
+
author: DiscordUser;
|
|
24
|
+
content: string;
|
|
25
|
+
timestamp: string;
|
|
26
|
+
edited_timestamp?: string | null;
|
|
27
|
+
tts: boolean;
|
|
28
|
+
mention_everyone: boolean;
|
|
29
|
+
mentions: DiscordUser[];
|
|
30
|
+
attachments: DiscordAttachment[];
|
|
31
|
+
embeds: any[];
|
|
32
|
+
pinned: boolean;
|
|
33
|
+
type: number;
|
|
34
|
+
createdTimestamp: number;
|
|
35
|
+
channel: {
|
|
36
|
+
id: string;
|
|
37
|
+
type: number;
|
|
38
|
+
};
|
|
39
|
+
guild?: {
|
|
40
|
+
id: string;
|
|
41
|
+
name?: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface DiscordAttachment {
|
|
45
|
+
id: string;
|
|
46
|
+
filename: string;
|
|
47
|
+
size: number;
|
|
48
|
+
url: string;
|
|
49
|
+
proxy_url: string;
|
|
50
|
+
height?: number;
|
|
51
|
+
width?: number;
|
|
52
|
+
content_type?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface DiscordGuild {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
icon: string | null;
|
|
58
|
+
owner_id: string;
|
|
59
|
+
member_count?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface DiscordChannel {
|
|
62
|
+
id: string;
|
|
63
|
+
type: number;
|
|
64
|
+
guild_id?: string;
|
|
65
|
+
name?: string;
|
|
66
|
+
topic?: string | null;
|
|
67
|
+
nsfw?: boolean;
|
|
68
|
+
parent_id?: string | null;
|
|
69
|
+
}
|
|
70
|
+
export interface DiscordMember {
|
|
71
|
+
user: DiscordUser;
|
|
72
|
+
nick?: string | null;
|
|
73
|
+
roles: string[];
|
|
74
|
+
joined_at: string;
|
|
75
|
+
premium_since?: string | null;
|
|
76
|
+
pending?: boolean;
|
|
77
|
+
communication_disabled_until?: string | null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Discord Bot
|
|
81
|
+
* 基于轻量客户端实现,兼容 Node.js 和 Cloudflare Workers
|
|
82
|
+
*/
|
|
83
|
+
export declare class DiscordBot extends EventEmitter {
|
|
84
|
+
private client;
|
|
85
|
+
private config;
|
|
86
|
+
private ready;
|
|
87
|
+
private user;
|
|
88
|
+
private guilds;
|
|
89
|
+
constructor(config: DiscordConfig);
|
|
90
|
+
/**
|
|
91
|
+
* 解析 intents 配置
|
|
92
|
+
*/
|
|
93
|
+
private parseIntents;
|
|
94
|
+
/**
|
|
95
|
+
* 设置事件监听器
|
|
96
|
+
*/
|
|
97
|
+
private setupEventListeners;
|
|
98
|
+
/**
|
|
99
|
+
* 启动 Bot
|
|
100
|
+
*/
|
|
101
|
+
start(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* 停止 Bot
|
|
104
|
+
*/
|
|
105
|
+
stop(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* 获取 Bot 是否就绪
|
|
108
|
+
*/
|
|
109
|
+
isReady(): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* 发送消息到频道
|
|
112
|
+
*/
|
|
113
|
+
sendMessage(channelId: string, content: string | {
|
|
114
|
+
content?: string;
|
|
115
|
+
embeds?: any[];
|
|
116
|
+
files?: any[];
|
|
117
|
+
}): Promise<DiscordMessage>;
|
|
118
|
+
/**
|
|
119
|
+
* 发送私信
|
|
120
|
+
*/
|
|
121
|
+
sendDM(userId: string, content: string | {
|
|
122
|
+
content?: string;
|
|
123
|
+
embeds?: any[];
|
|
124
|
+
files?: any[];
|
|
125
|
+
}): Promise<DiscordMessage>;
|
|
126
|
+
/**
|
|
127
|
+
* 发送 Embed 消息
|
|
128
|
+
*/
|
|
129
|
+
sendEmbed(channelId: string, embeds: any[]): Promise<DiscordMessage>;
|
|
130
|
+
/**
|
|
131
|
+
* 发送带附件的消息
|
|
132
|
+
*/
|
|
133
|
+
sendWithAttachments(channelId: string, content: string, _attachments: any[]): Promise<DiscordMessage>;
|
|
134
|
+
/**
|
|
135
|
+
* 编辑消息
|
|
136
|
+
*/
|
|
137
|
+
editMessage(channelId: string, messageId: string, content: string): Promise<DiscordMessage>;
|
|
138
|
+
/**
|
|
139
|
+
* 删除消息
|
|
140
|
+
*/
|
|
141
|
+
deleteMessage(channelId: string, messageId: string): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* 获取消息
|
|
144
|
+
*/
|
|
145
|
+
getMessage(channelId: string, messageId: string): Promise<DiscordMessage>;
|
|
146
|
+
/**
|
|
147
|
+
* 获取消息历史
|
|
148
|
+
*/
|
|
149
|
+
getMessageHistory(channelId: string, limit?: number, before?: string): Promise<Map<string, DiscordMessage>>;
|
|
150
|
+
/**
|
|
151
|
+
* 添加消息反应
|
|
152
|
+
*/
|
|
153
|
+
addReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* 移除消息反应
|
|
156
|
+
*/
|
|
157
|
+
removeReaction(channelId: string, messageId: string, emoji: string, userId?: string): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* 获取机器人信息
|
|
160
|
+
*/
|
|
161
|
+
getBotUser(): DiscordUser | null;
|
|
162
|
+
/**
|
|
163
|
+
* 获取用户信息
|
|
164
|
+
*/
|
|
165
|
+
getUser(userId: string): Promise<DiscordUser>;
|
|
166
|
+
/**
|
|
167
|
+
* 获取成员信息
|
|
168
|
+
*/
|
|
169
|
+
getMember(guildId: string, userId: string): Promise<DiscordMember>;
|
|
170
|
+
/**
|
|
171
|
+
* 获取服务器列表
|
|
172
|
+
*/
|
|
173
|
+
getGuilds(): Map<string, DiscordGuild>;
|
|
174
|
+
/**
|
|
175
|
+
* 获取服务器信息
|
|
176
|
+
*/
|
|
177
|
+
getGuild(guildId: string): Promise<DiscordGuild>;
|
|
178
|
+
/**
|
|
179
|
+
* 获取服务器成员列表
|
|
180
|
+
*/
|
|
181
|
+
getGuildMembers(guildId: string, limit?: number): Promise<Map<string, DiscordMember>>;
|
|
182
|
+
/**
|
|
183
|
+
* 获取服务器成员信息
|
|
184
|
+
*/
|
|
185
|
+
getGuildMember(guildId: string, userId: string): Promise<DiscordMember>;
|
|
186
|
+
/**
|
|
187
|
+
* 踢出成员
|
|
188
|
+
*/
|
|
189
|
+
kickMember(guildId: string, userId: string, _reason?: string): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* 封禁成员
|
|
192
|
+
*/
|
|
193
|
+
banMember(guildId: string, userId: string, options?: {
|
|
194
|
+
reason?: string;
|
|
195
|
+
deleteMessageSeconds?: number;
|
|
196
|
+
}): Promise<void>;
|
|
197
|
+
/**
|
|
198
|
+
* 解除封禁
|
|
199
|
+
*/
|
|
200
|
+
unbanMember(guildId: string, userId: string, _reason?: string): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* 禁言成员(超时)
|
|
203
|
+
*/
|
|
204
|
+
timeoutMember(guildId: string, userId: string, duration: number, _reason?: string): Promise<DiscordMember>;
|
|
205
|
+
/**
|
|
206
|
+
* 解除禁言
|
|
207
|
+
*/
|
|
208
|
+
removeTimeout(guildId: string, userId: string, _reason?: string): Promise<DiscordMember>;
|
|
209
|
+
/**
|
|
210
|
+
* 修改成员昵称
|
|
211
|
+
*/
|
|
212
|
+
setMemberNickname(guildId: string, userId: string, nickname: string | null, _reason?: string): Promise<DiscordMember>;
|
|
213
|
+
/**
|
|
214
|
+
* 添加角色
|
|
215
|
+
*/
|
|
216
|
+
addRole(guildId: string, userId: string, roleId: string, _reason?: string): Promise<DiscordMember>;
|
|
217
|
+
/**
|
|
218
|
+
* 移除角色
|
|
219
|
+
*/
|
|
220
|
+
removeRole(guildId: string, userId: string, roleId: string, _reason?: string): Promise<DiscordMember>;
|
|
221
|
+
/**
|
|
222
|
+
* 获取频道
|
|
223
|
+
*/
|
|
224
|
+
getChannel(channelId: string): Promise<DiscordChannel | null>;
|
|
225
|
+
/**
|
|
226
|
+
* 获取服务器频道列表
|
|
227
|
+
*/
|
|
228
|
+
getGuildChannels(guildId: string): Promise<Map<string, DiscordChannel>>;
|
|
229
|
+
/**
|
|
230
|
+
* 创建文本频道
|
|
231
|
+
*/
|
|
232
|
+
createTextChannel(guildId: string, name: string, options?: {
|
|
233
|
+
topic?: string;
|
|
234
|
+
parent?: string;
|
|
235
|
+
nsfw?: boolean;
|
|
236
|
+
}): Promise<DiscordChannel>;
|
|
237
|
+
/**
|
|
238
|
+
* 删除频道
|
|
239
|
+
*/
|
|
240
|
+
deleteChannel(channelId: string): Promise<void>;
|
|
241
|
+
/**
|
|
242
|
+
* 更新频道
|
|
243
|
+
*/
|
|
244
|
+
updateChannel(channelId: string, options: {
|
|
245
|
+
name?: string;
|
|
246
|
+
topic?: string;
|
|
247
|
+
nsfw?: boolean;
|
|
248
|
+
parent?: string;
|
|
249
|
+
}): Promise<DiscordChannel>;
|
|
250
|
+
/**
|
|
251
|
+
* 获取服务器角色列表
|
|
252
|
+
*/
|
|
253
|
+
getGuildRoles(guildId: string): Promise<Map<string, any>>;
|
|
254
|
+
/**
|
|
255
|
+
* 获取角色信息
|
|
256
|
+
*/
|
|
257
|
+
getRole(guildId: string, roleId: string): Promise<any | null>;
|
|
258
|
+
/**
|
|
259
|
+
* 创建角色
|
|
260
|
+
*/
|
|
261
|
+
createRole(guildId: string, options: {
|
|
262
|
+
name: string;
|
|
263
|
+
color?: number;
|
|
264
|
+
hoist?: boolean;
|
|
265
|
+
mentionable?: boolean;
|
|
266
|
+
permissions?: bigint;
|
|
267
|
+
}): Promise<any>;
|
|
268
|
+
/**
|
|
269
|
+
* 删除角色
|
|
270
|
+
*/
|
|
271
|
+
deleteRole(guildId: string, roleId: string): Promise<void>;
|
|
272
|
+
/**
|
|
273
|
+
* 获取 REST 客户端
|
|
274
|
+
*/
|
|
275
|
+
getREST(): DiscordREST;
|
|
276
|
+
/**
|
|
277
|
+
* 获取原始 Discord Lite 客户端
|
|
278
|
+
*/
|
|
279
|
+
getClient(): DiscordLite;
|
|
280
|
+
/**
|
|
281
|
+
* 包装用户对象
|
|
282
|
+
*/
|
|
283
|
+
private wrapUser;
|
|
284
|
+
/**
|
|
285
|
+
* 包装成员对象
|
|
286
|
+
*/
|
|
287
|
+
private wrapMember;
|
|
288
|
+
/**
|
|
289
|
+
* 包装消息对象
|
|
290
|
+
*/
|
|
291
|
+
private wrapMessage;
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=bot.d.ts.map
|