oceanic.js 1.7.1-dev.bfbbbda → 1.7.1-dev.ceedfe2
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/dist/lib/Client.js +18 -1
- package/dist/lib/Constants.d.ts +27 -8
- package/dist/lib/Constants.js +46 -26
- package/dist/lib/gateway/ShardManager.js +2 -1
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +7 -3
- package/dist/lib/rest/RequestHandler.js +2 -2
- package/dist/lib/routes/Channels.d.ts +4 -4
- package/dist/lib/routes/Channels.js +4 -4
- package/dist/lib/structures/AutocompleteInteraction.d.ts +3 -1
- package/dist/lib/structures/AutocompleteInteraction.js +4 -1
- package/dist/lib/structures/Channel.js +5 -1
- package/dist/lib/structures/ClientApplication.d.ts +1 -1
- package/dist/lib/structures/ClientApplication.js +2 -2
- package/dist/lib/structures/CommandInteraction.d.ts +3 -1
- package/dist/lib/structures/CommandInteraction.js +4 -1
- package/dist/lib/structures/ComponentInteraction.d.ts +3 -1
- package/dist/lib/structures/ComponentInteraction.js +4 -1
- package/dist/lib/structures/ForumChannel.d.ts +5 -94
- package/dist/lib/structures/ForumChannel.js +5 -223
- package/dist/lib/structures/MediaChannel.d.ts +11 -0
- package/dist/lib/structures/MediaChannel.js +19 -0
- package/dist/lib/structures/Member.d.ts +3 -3
- package/dist/lib/structures/Member.js +5 -5
- package/dist/lib/structures/Message.js +3 -2
- package/dist/lib/structures/ModalSubmitInteraction.d.ts +3 -1
- package/dist/lib/structures/ModalSubmitInteraction.js +4 -1
- package/dist/lib/structures/TextableChannel.d.ts +1 -1
- package/dist/lib/structures/TextableChannel.js +1 -1
- package/dist/lib/structures/TextableVoiceChannel.d.ts +1 -1
- package/dist/lib/structures/TextableVoiceChannel.js +2 -2
- package/dist/lib/structures/ThreadOnlyChannel.d.ts +98 -0
- package/dist/lib/structures/ThreadOnlyChannel.js +231 -0
- package/dist/lib/structures/User.d.ts +6 -3
- package/dist/lib/structures/User.js +20 -4
- package/dist/lib/types/channels.d.ts +22 -15
- package/dist/lib/types/events.d.ts +2 -2
- package/dist/lib/types/gateway.d.ts +6 -1
- package/dist/lib/types/interactions.d.ts +15 -39
- package/dist/lib/types/json.d.ts +24 -16
- package/dist/lib/types/users.d.ts +4 -3
- package/dist/package.json +9 -8
- package/esm.mjs +4 -0
- package/package.json +9 -8
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/** @module ThreadOnlyChannel */
|
|
5
|
+
const GuildChannel_1 = tslib_1.__importDefault(require("./GuildChannel"));
|
|
6
|
+
const PermissionOverwrite_1 = tslib_1.__importDefault(require("./PermissionOverwrite"));
|
|
7
|
+
const PublicThreadChannel_1 = tslib_1.__importDefault(require("./PublicThreadChannel"));
|
|
8
|
+
const Permission_1 = tslib_1.__importDefault(require("./Permission"));
|
|
9
|
+
const TypedCollection_1 = tslib_1.__importDefault(require("../util/TypedCollection"));
|
|
10
|
+
const Constants_1 = require("../Constants");
|
|
11
|
+
const Errors_1 = require("../util/Errors");
|
|
12
|
+
/** Represents a thread only channel. */
|
|
13
|
+
class ThreadOnlyChannel extends GuildChannel_1.default {
|
|
14
|
+
/** The usable tags for threads. */
|
|
15
|
+
availableTags;
|
|
16
|
+
/** The default auto archive duration for threads. */
|
|
17
|
+
defaultAutoArchiveDuration;
|
|
18
|
+
/** The default forum layout used to display threads. */
|
|
19
|
+
defaultForumLayout;
|
|
20
|
+
/** The default reaction emoji for threads. */
|
|
21
|
+
defaultReactionEmoji;
|
|
22
|
+
/** The default sort order mode used to sort threads. */
|
|
23
|
+
defaultSortOrder;
|
|
24
|
+
/** The default amount of seconds between non-moderators sending messages in threads. */
|
|
25
|
+
defaultThreadRateLimitPerUser;
|
|
26
|
+
/** The flags for this channel, see {@link Constants.ChannelFlags | ChannelFlags}. */
|
|
27
|
+
flags;
|
|
28
|
+
/** The most recently created thread. */
|
|
29
|
+
lastThread;
|
|
30
|
+
/** The ID of most recently created thread. */
|
|
31
|
+
lastThreadID;
|
|
32
|
+
/** If this channel is age gated. */
|
|
33
|
+
nsfw;
|
|
34
|
+
/** The permission overwrites of this channel. */
|
|
35
|
+
permissionOverwrites;
|
|
36
|
+
/** The position of this channel on the sidebar. */
|
|
37
|
+
position;
|
|
38
|
+
/** The amount of seconds between non-moderators creating threads. */
|
|
39
|
+
rateLimitPerUser;
|
|
40
|
+
/** The threads in this channel. */
|
|
41
|
+
threads;
|
|
42
|
+
/** The `guidelines` of this forum channel. */
|
|
43
|
+
topic;
|
|
44
|
+
constructor(data, client) {
|
|
45
|
+
super(data, client);
|
|
46
|
+
this.availableTags = [];
|
|
47
|
+
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
|
|
48
|
+
this.defaultForumLayout = data.default_forum_layout;
|
|
49
|
+
this.defaultReactionEmoji = null;
|
|
50
|
+
this.defaultSortOrder = null;
|
|
51
|
+
this.defaultThreadRateLimitPerUser = data.default_thread_rate_limit_per_user;
|
|
52
|
+
this.flags = data.flags;
|
|
53
|
+
this.lastThreadID = data.last_message_id;
|
|
54
|
+
this.nsfw = data.nsfw;
|
|
55
|
+
this.permissionOverwrites = new TypedCollection_1.default(PermissionOverwrite_1.default, client);
|
|
56
|
+
this.position = data.position;
|
|
57
|
+
this.rateLimitPerUser = data.rate_limit_per_user;
|
|
58
|
+
this.threads = new TypedCollection_1.default(PublicThreadChannel_1.default, client, this.client.util._getLimit("channelThreads", this.id));
|
|
59
|
+
this.topic = data.topic;
|
|
60
|
+
this.update(data);
|
|
61
|
+
}
|
|
62
|
+
update(data) {
|
|
63
|
+
super.update(data);
|
|
64
|
+
if (data.available_tags !== undefined) {
|
|
65
|
+
this.availableTags = data.available_tags.map(tag => ({
|
|
66
|
+
emoji: tag.emoji_id === null && tag.emoji_name === null ? null : { id: tag.emoji_id, name: tag.emoji_name },
|
|
67
|
+
id: tag.id,
|
|
68
|
+
moderated: tag.moderated,
|
|
69
|
+
name: tag.name
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
if (data.default_auto_archive_duration !== undefined) {
|
|
73
|
+
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
|
|
74
|
+
}
|
|
75
|
+
if (data.default_forum_layout !== undefined) {
|
|
76
|
+
this.defaultForumLayout = data.default_forum_layout;
|
|
77
|
+
}
|
|
78
|
+
if (data.default_reaction_emoji !== undefined) {
|
|
79
|
+
this.defaultReactionEmoji = data.default_reaction_emoji === null || (data.default_reaction_emoji.emoji_id === null && data.default_reaction_emoji.emoji_name === null) ? null : { id: data.default_reaction_emoji.emoji_id, name: data.default_reaction_emoji.emoji_name };
|
|
80
|
+
}
|
|
81
|
+
if (data.default_sort_order !== undefined) {
|
|
82
|
+
this.defaultSortOrder = data.default_sort_order;
|
|
83
|
+
}
|
|
84
|
+
if (data.default_thread_rate_limit_per_user !== undefined) {
|
|
85
|
+
this.defaultThreadRateLimitPerUser = data.default_thread_rate_limit_per_user;
|
|
86
|
+
}
|
|
87
|
+
if (data.flags !== undefined) {
|
|
88
|
+
this.flags = data.flags;
|
|
89
|
+
}
|
|
90
|
+
if (data.last_message_id !== undefined) {
|
|
91
|
+
this.lastThread = data.last_message_id === null ? null : this.threads.get(data.last_message_id);
|
|
92
|
+
this.lastThreadID = data.last_message_id;
|
|
93
|
+
}
|
|
94
|
+
if (data.nsfw !== undefined) {
|
|
95
|
+
this.nsfw = data.nsfw;
|
|
96
|
+
}
|
|
97
|
+
if (data.permission_overwrites !== undefined) {
|
|
98
|
+
for (const id of this.permissionOverwrites.keys()) {
|
|
99
|
+
if (!data.permission_overwrites.some(overwrite => overwrite.id === id)) {
|
|
100
|
+
this.permissionOverwrites.delete(id);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
for (const overwrite of data.permission_overwrites) {
|
|
104
|
+
this.permissionOverwrites.update(overwrite);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (data.position !== undefined) {
|
|
108
|
+
this.position = data.position;
|
|
109
|
+
}
|
|
110
|
+
if (data.rate_limit_per_user !== undefined) {
|
|
111
|
+
this.rateLimitPerUser = data.rate_limit_per_user;
|
|
112
|
+
}
|
|
113
|
+
if (data.topic !== undefined && data.topic !== null) {
|
|
114
|
+
this.topic = data.topic;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
get parent() {
|
|
118
|
+
return super.parent;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Create an invite for this channel. If the guild is not a `COMMUNITY` server, invites can only be made to last 30 days.
|
|
122
|
+
* @param options The options for the invite.
|
|
123
|
+
*/
|
|
124
|
+
async createInvite(options) {
|
|
125
|
+
return this.client.rest.channels.createInvite(this.id, options);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create a webhook in this channel.
|
|
129
|
+
* @param options The options to create the webhook with.
|
|
130
|
+
*/
|
|
131
|
+
async createWebhook(options) {
|
|
132
|
+
return this.client.rest.webhooks.create(this.id, options);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Delete a permission overwrite on this channel.
|
|
136
|
+
* @param overwriteID The ID of the permission overwrite to delete.
|
|
137
|
+
* @param reason The reason for deleting the permission overwrite.
|
|
138
|
+
*/
|
|
139
|
+
async deletePermission(overwriteID, reason) {
|
|
140
|
+
return this.client.rest.channels.deletePermission(this.id, overwriteID, reason);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Edit a permission overwrite on this channel.
|
|
144
|
+
* @param overwriteID The ID of the permission overwrite to edit.
|
|
145
|
+
* @param options The options for editing the permission overwrite.
|
|
146
|
+
*/
|
|
147
|
+
async editPermission(overwriteID, options) {
|
|
148
|
+
return this.client.rest.channels.editPermission(this.id, overwriteID, options);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get the invites of this channel.
|
|
152
|
+
*/
|
|
153
|
+
async getInvites() {
|
|
154
|
+
return this.client.rest.channels.getInvites(this.id);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the public archived threads in this channel.
|
|
158
|
+
* @param options The options for getting the public archived threads.
|
|
159
|
+
*/
|
|
160
|
+
async getPublicArchivedThreads(options) {
|
|
161
|
+
return this.client.rest.channels.getPublicArchivedThreads(this.id, options);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get the webhooks in this channel.
|
|
165
|
+
*/
|
|
166
|
+
async getWebhooks() {
|
|
167
|
+
return this.client.rest.webhooks.getForChannel(this.id);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get the permissions of a member. If providing an id, the member must be cached.
|
|
171
|
+
* @param member The member to get the permissions of.
|
|
172
|
+
*/
|
|
173
|
+
permissionsOf(member) {
|
|
174
|
+
if (typeof member === "string") {
|
|
175
|
+
member = this.guild.members.get(member);
|
|
176
|
+
}
|
|
177
|
+
if (!member) {
|
|
178
|
+
throw new Errors_1.UncachedError(`Cannot use ${this.constructor.name}#permissionsOf with an ID when the member is not cached.`);
|
|
179
|
+
}
|
|
180
|
+
let permission = this.guild.permissionsOf(member).allow;
|
|
181
|
+
if (permission & Constants_1.Permissions.ADMINISTRATOR) {
|
|
182
|
+
return new Permission_1.default(Constants_1.AllPermissions);
|
|
183
|
+
}
|
|
184
|
+
let overwrite = this.permissionOverwrites.get(this.guildID);
|
|
185
|
+
if (overwrite) {
|
|
186
|
+
permission = (permission & ~overwrite.deny) | overwrite.allow;
|
|
187
|
+
}
|
|
188
|
+
let deny = 0n;
|
|
189
|
+
let allow = 0n;
|
|
190
|
+
for (const id of member.roles) {
|
|
191
|
+
if ((overwrite = this.permissionOverwrites.get(id))) {
|
|
192
|
+
deny |= overwrite.deny;
|
|
193
|
+
allow |= overwrite.allow;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
permission = (permission & ~deny) | allow;
|
|
197
|
+
overwrite = this.permissionOverwrites.get(member.id);
|
|
198
|
+
if (overwrite) {
|
|
199
|
+
permission = (permission & ~overwrite.deny) | overwrite.allow;
|
|
200
|
+
}
|
|
201
|
+
return new Permission_1.default(permission);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Create a thread in this forum channel.
|
|
205
|
+
* @param options The options for starting the thread.
|
|
206
|
+
*/
|
|
207
|
+
async startThread(options) {
|
|
208
|
+
return this.client.rest.channels.startThreadInThreadOnlyChannl(this.id, options);
|
|
209
|
+
}
|
|
210
|
+
toJSON() {
|
|
211
|
+
return {
|
|
212
|
+
...super.toJSON(),
|
|
213
|
+
availableTags: this.availableTags,
|
|
214
|
+
defaultAutoArchiveDuration: this.defaultAutoArchiveDuration,
|
|
215
|
+
defaultForumLayout: this.defaultForumLayout,
|
|
216
|
+
defaultReactionEmoji: this.defaultReactionEmoji,
|
|
217
|
+
defaultSortOrder: this.defaultSortOrder,
|
|
218
|
+
defaultThreadRateLimitPerUser: this.defaultThreadRateLimitPerUser,
|
|
219
|
+
flags: this.flags,
|
|
220
|
+
lastThreadID: this.lastThreadID,
|
|
221
|
+
permissionOverwrites: this.permissionOverwrites.map(overwrite => overwrite.toJSON()),
|
|
222
|
+
position: this.position,
|
|
223
|
+
rateLimitPerUser: this.rateLimitPerUser,
|
|
224
|
+
threads: this.threads.map(thread => thread.id),
|
|
225
|
+
topic: this.topic,
|
|
226
|
+
type: this.type
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.default = ThreadOnlyChannel;
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhyZWFkT25seUNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3RydWN0dXJlcy9UaHJlYWRPbmx5Q2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnQ0FBZ0M7QUFDaEMsMEVBQTBDO0FBQzFDLHdGQUF3RDtBQUN4RCx3RkFBd0Q7QUFHeEQsc0VBQXNDO0FBZ0J0QyxzRkFBc0Q7QUFDdEQsNENBTXNCO0FBRXRCLDJDQUErQztBQUUvQyx3Q0FBd0M7QUFDeEMsTUFBcUIsaUJBQWtCLFNBQVEsc0JBQVk7SUFDdkQsbUNBQW1DO0lBQ25DLGFBQWEsQ0FBa0I7SUFDL0IscURBQXFEO0lBQ3JELDBCQUEwQixDQUE0QjtJQUN0RCx3REFBd0Q7SUFDeEQsa0JBQWtCLENBQW1CO0lBQ3JDLDhDQUE4QztJQUM5QyxvQkFBb0IsQ0FBb0I7SUFDeEMsd0RBQXdEO0lBQ3hELGdCQUFnQixDQUF3QjtJQUN4Qyx3RkFBd0Y7SUFDeEYsNkJBQTZCLENBQVM7SUFDdEMscUZBQXFGO0lBQ3JGLEtBQUssQ0FBUztJQUNkLHdDQUF3QztJQUN4QyxVQUFVLENBQThCO0lBQ3hDLDhDQUE4QztJQUM5QyxZQUFZLENBQWdCO0lBQzVCLG9DQUFvQztJQUNwQyxJQUFJLENBQVU7SUFDZCxpREFBaUQ7SUFDakQsb0JBQW9CLENBQTZEO0lBQ2pGLG1EQUFtRDtJQUNuRCxRQUFRLENBQVM7SUFDakIscUVBQXFFO0lBQ3JFLGdCQUFnQixDQUFTO0lBQ3pCLG1DQUFtQztJQUNuQyxPQUFPLENBQXVFO0lBQzlFLDhDQUE4QztJQUM5QyxLQUFLLENBQWdCO0lBRXJCLFlBQVksSUFBMEIsRUFBRSxNQUFjO1FBQ2xELEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FB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
|
|
@@ -17,8 +17,10 @@ export default class User extends Base {
|
|
|
17
17
|
banner?: string | null;
|
|
18
18
|
/** If this user is a bot. */
|
|
19
19
|
bot: boolean;
|
|
20
|
-
/** The 4 digits after
|
|
20
|
+
/** The 4 digits after this user's username, if they have not been migrated. If migrated, this will be a single "0". */
|
|
21
21
|
discriminator: string;
|
|
22
|
+
/** The user's display name, if set. */
|
|
23
|
+
globalName: string | null;
|
|
22
24
|
/** The user's public [flags](https://discord.com/developers/docs/resources/user#user-object-user-flags). */
|
|
23
25
|
publicFlags: number;
|
|
24
26
|
/** If this user is an official discord system user. */
|
|
@@ -27,11 +29,12 @@ export default class User extends Base {
|
|
|
27
29
|
username: string;
|
|
28
30
|
constructor(data: RawUser, client: Client);
|
|
29
31
|
protected update(data: Partial<RawUser>): void;
|
|
30
|
-
|
|
32
|
+
private get isMigrated();
|
|
33
|
+
/** The default avatar value of this user. */
|
|
31
34
|
get defaultAvatar(): number;
|
|
32
35
|
/** A string that will mention this user. */
|
|
33
36
|
get mention(): string;
|
|
34
|
-
/** a combination of
|
|
37
|
+
/** This user's display name, if migrated, else a combination of the user's username and discriminator. */
|
|
35
38
|
get tag(): string;
|
|
36
39
|
/**
|
|
37
40
|
* The url of this user's avatar decoration. This will always be a png.
|
|
@@ -16,8 +16,10 @@ class User extends Base_1.default {
|
|
|
16
16
|
banner;
|
|
17
17
|
/** If this user is a bot. */
|
|
18
18
|
bot;
|
|
19
|
-
/** The 4 digits after
|
|
19
|
+
/** The 4 digits after this user's username, if they have not been migrated. If migrated, this will be a single "0". */
|
|
20
20
|
discriminator;
|
|
21
|
+
/** The user's display name, if set. */
|
|
22
|
+
globalName;
|
|
21
23
|
/** The user's public [flags](https://discord.com/developers/docs/resources/user#user-object-user-flags). */
|
|
22
24
|
publicFlags;
|
|
23
25
|
/** If this user is an official discord system user. */
|
|
@@ -29,6 +31,7 @@ class User extends Base_1.default {
|
|
|
29
31
|
this.avatar = null;
|
|
30
32
|
this.bot = !!data.bot;
|
|
31
33
|
this.discriminator = data.discriminator;
|
|
34
|
+
this.globalName = data.global_name;
|
|
32
35
|
this.publicFlags = 0;
|
|
33
36
|
this.system = !!data.system;
|
|
34
37
|
this.username = data.username;
|
|
@@ -50,6 +53,9 @@ class User extends Base_1.default {
|
|
|
50
53
|
if (data.discriminator !== undefined) {
|
|
51
54
|
this.discriminator = data.discriminator;
|
|
52
55
|
}
|
|
56
|
+
if (data.global_name !== undefined) {
|
|
57
|
+
this.globalName = data.global_name;
|
|
58
|
+
}
|
|
53
59
|
if (data.public_flags !== undefined) {
|
|
54
60
|
this.publicFlags = data.public_flags;
|
|
55
61
|
}
|
|
@@ -57,16 +63,25 @@ class User extends Base_1.default {
|
|
|
57
63
|
this.username = data.username;
|
|
58
64
|
}
|
|
59
65
|
}
|
|
60
|
-
|
|
66
|
+
get isMigrated() {
|
|
67
|
+
return this.globalName !== null && (this.discriminator === undefined || this.discriminator === "0");
|
|
68
|
+
}
|
|
69
|
+
/** The default avatar value of this user. */
|
|
61
70
|
get defaultAvatar() {
|
|
71
|
+
if (this.isMigrated) {
|
|
72
|
+
return Number(BigInt(this.id) >> 22n) % 6;
|
|
73
|
+
}
|
|
62
74
|
return Number(this.discriminator) % 5;
|
|
63
75
|
}
|
|
64
76
|
/** A string that will mention this user. */
|
|
65
77
|
get mention() {
|
|
66
78
|
return `<@${this.id}>`;
|
|
67
79
|
}
|
|
68
|
-
/** a combination of
|
|
80
|
+
/** This user's display name, if migrated, else a combination of the user's username and discriminator. */
|
|
69
81
|
get tag() {
|
|
82
|
+
if (this.isMigrated) {
|
|
83
|
+
return this.globalName;
|
|
84
|
+
}
|
|
70
85
|
return `${this.username}#${this.discriminator}`;
|
|
71
86
|
}
|
|
72
87
|
/**
|
|
@@ -106,6 +121,7 @@ class User extends Base_1.default {
|
|
|
106
121
|
banner: this.banner,
|
|
107
122
|
bot: this.bot,
|
|
108
123
|
discriminator: this.discriminator,
|
|
124
|
+
globalName: this.globalName,
|
|
109
125
|
publicFlags: this.publicFlags,
|
|
110
126
|
system: this.system,
|
|
111
127
|
username: this.username
|
|
@@ -113,4 +129,4 @@ class User extends Base_1.default {
|
|
|
113
129
|
}
|
|
114
130
|
}
|
|
115
131
|
exports.default = User;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zdHJ1Y3R1cmVzL1VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUJBQW1CO0FBQ25CLDBEQUEwQjtBQUcxQiwrREFBeUM7QUFLekMseUJBQXlCO0FBQ3pCLE1BQXFCLElBQUssU0FBUSxjQUFJO0lBQ2xDLHdHQUF3RztJQUN4RyxXQUFXLENBQWlCO0lBQzVCLDhCQUE4QjtJQUM5QixNQUFNLENBQWdCO0lBQ3RCLG9GQUFvRjtJQUNwRixnQkFBZ0IsQ0FBaUI7SUFDakMsdUdBQXVHO0lBQ3ZHLE1BQU0sQ0FBaUI7SUFDdkIsNkJBQTZCO0lBQzdCLEdBQUcsQ0FBVTtJQUNiLHVIQUF1SDtJQUN2SCxhQUFhLENBQVM7SUFDdEIsdUNBQXVDO0lBQ3ZDLFVBQVUsQ0FBZ0I7SUFDMUIsNEdBQTRHO0lBQzVHLFdBQVcsQ0FBUztJQUNwQix1REFBdUQ7SUFDdkQsTUFBTSxDQUFVO0lBQ2hCLDJCQUEyQjtJQUMzQixRQUFRLENBQVM7SUFDakIsWUFBWSxJQUFhLEVBQUUsTUFBYztRQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFB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
|
|
@@ -35,7 +35,8 @@ import type {
|
|
|
35
35
|
VoiceChannelTypes,
|
|
36
36
|
InteractionChannelTypes,
|
|
37
37
|
InviteChannelTypes,
|
|
38
|
-
ImplementedChannelTypes
|
|
38
|
+
ImplementedChannelTypes,
|
|
39
|
+
ThreadOnlyChannelTypes
|
|
39
40
|
} from "../Constants";
|
|
40
41
|
import type Member from "../structures/Member";
|
|
41
42
|
import type AnnouncementChannel from "../structures/AnnouncementChannel";
|
|
@@ -83,7 +84,6 @@ export interface RawChannel {
|
|
|
83
84
|
rate_limit_per_user?: number;
|
|
84
85
|
recipients?: Array<RawUser>;
|
|
85
86
|
rtc_region?: string | null;
|
|
86
|
-
template?: string;
|
|
87
87
|
thread_metadata?: RawThreadMetadata;
|
|
88
88
|
topic?: string | null;
|
|
89
89
|
total_message_sent?: number;
|
|
@@ -104,7 +104,9 @@ export type RawThreadChannel = RawAnnouncementThreadChannel | RawPublicThreadCha
|
|
|
104
104
|
export interface RawAnnouncementThreadChannel extends Required<Pick<RawChannel, "id" | "guild_id" | "parent_id" | "owner_id" | "last_message_id" | "thread_metadata" | "message_count" | "member_count" | "rate_limit_per_user" | "flags" | "total_message_sent" | "newly_created" | "member">> { name: string; type: ChannelTypes.ANNOUNCEMENT_THREAD; }
|
|
105
105
|
export interface RawPublicThreadChannel extends Omit<RawAnnouncementThreadChannel, "type">, Required<Pick<RawChannel, "applied_tags">> { type: ChannelTypes.PUBLIC_THREAD; }
|
|
106
106
|
export interface RawPrivateThreadChannel extends Omit<RawAnnouncementThreadChannel, "type" | "member"> { member: RawChannel["member"]; type: ChannelTypes.PRIVATE_THREAD; }
|
|
107
|
-
export interface
|
|
107
|
+
export interface RawThreadOnlyChannel extends Omit<RawGuildChannel, "type">, Required<Pick<RawChannel, "position" | "topic" | "flags" | "permission_overwrites" | "rate_limit_per_user" | "nsfw" | "available_tags" | "default_reaction_emoji" | "last_message_id" | "default_sort_order" | "default_thread_rate_limit_per_user" | "default_auto_archive_duration" | "default_forum_layout">> { type: ThreadOnlyChannels; }
|
|
108
|
+
export interface RawForumChannel extends Omit<RawThreadOnlyChannel, "type"> { type: ChannelTypes.GUILD_FORUM; }
|
|
109
|
+
export interface RawMediaChannel extends Omit<RawThreadOnlyChannel, "type"> { type: ChannelTypes.GUILD_MEDIA; }
|
|
108
110
|
|
|
109
111
|
export interface PartialChannel extends Pick<RawChannel, "id" | "name" | "type"> {}
|
|
110
112
|
export interface RawInteractionResolvedChannel extends Omit<Required<Pick<RawChannel, "id" | "type" | "permissions">>, "name">, Pick<RawChannel, "thread_metadata" | "parent_id"> { name: string | null; }
|
|
@@ -253,23 +255,26 @@ export interface EditStageChannelOptions extends EditAnyGuildChannelOptions, Pic
|
|
|
253
255
|
export interface EditThreadChannelOptions extends EditPublicThreadChannelOptions, EditPrivateThreadChannelOptions {}
|
|
254
256
|
export interface EditPublicThreadChannelOptions extends Pick<EditGuildChannelOptions, "name" | "archived" | "autoArchiveDuration" | "locked" | "rateLimitPerUser" | "flags" | "appliedTags"> {}
|
|
255
257
|
export interface EditPrivateThreadChannelOptions extends EditPublicThreadChannelOptions, Pick<EditGuildChannelOptions, "invitable"> {}
|
|
256
|
-
export interface EditForumChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "availableTags" | "defaultReactionEmoji" | "defaultSortOrder" |"defaultThreadRateLimitPerUser" | "flags" | "nsfw" | "rateLimitPerUser" | "topic"> {}
|
|
258
|
+
export interface EditForumChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "availableTags" | "defaultReactionEmoji" | "defaultSortOrder" |"defaultThreadRateLimitPerUser" | "flags" | "nsfw" | "rateLimitPerUser" | "topic" | "defaultForumLayout"> {}
|
|
259
|
+
export interface EditMediaChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "availableTags" | "defaultReactionEmoji" | "defaultSortOrder" |"defaultThreadRateLimitPerUser" | "flags" | "nsfw" | "rateLimitPerUser" | "topic"> {}
|
|
257
260
|
|
|
261
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
258
262
|
export interface EditChannelOptionsMap {
|
|
259
|
-
[ChannelTypes.
|
|
263
|
+
[ChannelTypes.GUILD_TEXT]: EditTextChannelOptions;
|
|
260
264
|
[ChannelTypes.DM]: never;
|
|
265
|
+
[ChannelTypes.GUILD_VOICE]: EditVoiceChannelOptions;
|
|
261
266
|
[ChannelTypes.GROUP_DM]: EditGroupDMOptions;
|
|
262
|
-
[ChannelTypes.GUILD_ANNOUNCEMENT]: EditAnnouncementChannelOptions;
|
|
263
267
|
[ChannelTypes.GUILD_CATEGORY]: EditAnyGuildChannelOptions;
|
|
268
|
+
[ChannelTypes.GUILD_ANNOUNCEMENT]: EditAnnouncementChannelOptions;
|
|
269
|
+
[ChannelTypes.ANNOUNCEMENT_THREAD]: EditPublicThreadChannelOptions;
|
|
270
|
+
[ChannelTypes.PUBLIC_THREAD]: EditPublicThreadChannelOptions;
|
|
271
|
+
[ChannelTypes.PRIVATE_THREAD]: EditPrivateThreadChannelOptions;
|
|
272
|
+
[ChannelTypes.GUILD_STAGE_VOICE]: EditStageChannelOptions;
|
|
264
273
|
[ChannelTypes.GUILD_DIRECTORY]: never;
|
|
265
274
|
[ChannelTypes.GUILD_FORUM]: EditForumChannelOptions;
|
|
266
|
-
[ChannelTypes.
|
|
267
|
-
[ChannelTypes.GUILD_TEXT]: EditTextChannelOptions;
|
|
268
|
-
[ChannelTypes.GUILD_VOICE]: EditVoiceChannelOptions;
|
|
269
|
-
[ChannelTypes.PRIVATE_THREAD]: EditPrivateThreadChannelOptions;
|
|
270
|
-
[ChannelTypes.PUBLIC_THREAD]: EditPublicThreadChannelOptions;
|
|
275
|
+
[ChannelTypes.GUILD_MEDIA]: EditMediaChannelOptions;
|
|
271
276
|
}
|
|
272
|
-
|
|
277
|
+
/* eslint-enable @typescript-eslint/member-ordering */
|
|
273
278
|
|
|
274
279
|
export interface AddGroupRecipientOptions {
|
|
275
280
|
/** The access token of the user to add. */
|
|
@@ -740,6 +745,7 @@ export type TextableGuildChannelsWithoutThreads = typeof TextableGuildChannelTyp
|
|
|
740
745
|
export type VoiceChannels = typeof VoiceChannelTypes[number];
|
|
741
746
|
export type InviteChannels = typeof InviteChannelTypes[number];
|
|
742
747
|
export type InteractionChannels = typeof InteractionChannelTypes[number];
|
|
748
|
+
export type ThreadOnlyChannels = typeof ThreadOnlyChannelTypes[number];
|
|
743
749
|
|
|
744
750
|
|
|
745
751
|
export type AnyChannel = ChannelTypeMap[ChannelTypes];
|
|
@@ -757,6 +763,7 @@ export type AnyTextableGuildChannelWithoutThreads = ChannelTypeMap[TextableGuild
|
|
|
757
763
|
export type AnyVoiceChannel = ChannelTypeMap[VoiceChannels];
|
|
758
764
|
export type AnyInviteChannel = ChannelTypeMap[InviteChannels];
|
|
759
765
|
export type AnyInteractionChannel = ChannelTypeMap[InteractionChannels];
|
|
766
|
+
export type AnyThreadOnlyChannel = ChannelTypeMap[ThreadOnlyChannels];
|
|
760
767
|
|
|
761
768
|
export interface PartialInviteChannel {
|
|
762
769
|
icon?: string | null;
|
|
@@ -919,12 +926,12 @@ export interface StartThreadWithoutMessageOptions extends StartThreadFromMessage
|
|
|
919
926
|
type: ThreadChannels;
|
|
920
927
|
}
|
|
921
928
|
|
|
922
|
-
export interface
|
|
929
|
+
export interface StartThreadInThreadOnlyChannelOptions extends StartThreadFromMessageOptions {
|
|
923
930
|
/** The message to start the thread with. */
|
|
924
|
-
message:
|
|
931
|
+
message: ThreadOnlyChannelThreadStarterMessageOptions;
|
|
925
932
|
}
|
|
926
933
|
|
|
927
|
-
export type
|
|
934
|
+
export type ThreadOnlyChannelThreadStarterMessageOptions = Pick<CreateMessageOptions, "content" | "embeds" | "allowedMentions" | "components" | "stickerIDs" | "attachments" | "flags" | "files">;
|
|
928
935
|
|
|
929
936
|
export interface GetArchivedThreadsOptions {
|
|
930
937
|
/** A **timestamp** to get threads before. */
|
|
@@ -21,7 +21,7 @@ import type {
|
|
|
21
21
|
JSONAnnouncementThreadChannel,
|
|
22
22
|
JSONAutoModerationRule,
|
|
23
23
|
JSONCategoryChannel,
|
|
24
|
-
|
|
24
|
+
JSONThreadOnlyChannel,
|
|
25
25
|
JSONGuild,
|
|
26
26
|
JSONIntegration,
|
|
27
27
|
JSONMember,
|
|
@@ -89,7 +89,7 @@ export interface ClientEvents {
|
|
|
89
89
|
/** @event Emitted when a channel's pins are updated (message pinned, message unpinned). Requires the `GUILDS` intent for guild channels, and `DIRECT_MESSAGES` for direct messages. */
|
|
90
90
|
channelPinsUpdate: [channel: AnyTextableChannel | Uncached, timestamp: Date | null];
|
|
91
91
|
/** @event Emitted when a channel is updated. Requires the `GUILDS` intent. */
|
|
92
|
-
channelUpdate: [channel: TextChannel, oldChannel: JSONTextChannel | null] | [channel: VoiceChannel, oldChannel: JSONVoiceChannel | null] | [channel: CategoryChannel, oldChannel: JSONCategoryChannel | null] | [channel: AnnouncementChannel, oldChannel: JSONAnnouncementChannel | null] | [channel: StageChannel, oldChannel: JSONStageChannel | null] | [channel: ForumChannel, oldChannel:
|
|
92
|
+
channelUpdate: [channel: TextChannel, oldChannel: JSONTextChannel | null] | [channel: VoiceChannel, oldChannel: JSONVoiceChannel | null] | [channel: CategoryChannel, oldChannel: JSONCategoryChannel | null] | [channel: AnnouncementChannel, oldChannel: JSONAnnouncementChannel | null] | [channel: StageChannel, oldChannel: JSONStageChannel | null] | [channel: ForumChannel, oldChannel: JSONThreadOnlyChannel | null];
|
|
93
93
|
/** @event Emitted when a shard connects. */
|
|
94
94
|
connect: [id: number];
|
|
95
95
|
/** @event Emitted with various information for debugging. */
|
|
@@ -106,6 +106,11 @@ interface GatewayOptions {
|
|
|
106
106
|
* @defaultValue (lastDelay, attempts) => Math.pow(attempts + 1, 0.7) * 20000
|
|
107
107
|
*/
|
|
108
108
|
reconnectDelay?: ReconnectDelayFunction;
|
|
109
|
+
/**
|
|
110
|
+
* If a check should be made before connecting, which will remove any disallowed intents. This requires making a request to {@link Miscellaneous~Miscellaneous.getApplication | `/applications/@me`}. Any removed intents will be emitted via the `warn` event.
|
|
111
|
+
* @defaultValue false
|
|
112
|
+
*/
|
|
113
|
+
removeDisallowedIntents?: boolean;
|
|
109
114
|
/**
|
|
110
115
|
* If existing voice connections should be populated. This will disconnect connections from other sessions.
|
|
111
116
|
* @defaultValue false
|
|
@@ -120,7 +125,7 @@ interface GatewayOptions {
|
|
|
120
125
|
ws?: WSClientOptions;
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
export interface ShardManagerInstanceOptions extends Required<
|
|
128
|
+
export interface ShardManagerInstanceOptions extends Required<Omit<GatewayOptions, "concurrency" | "connectionProperties" | "intents" | "maxShards" | "presence">> {
|
|
124
129
|
concurrency: number;
|
|
125
130
|
connectionProperties: Required<GatewayOptions["connectionProperties"]>;
|
|
126
131
|
intents: number;
|
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
ApplicationCommandOptionTypes,
|
|
18
18
|
ApplicationCommandTypes,
|
|
19
19
|
ComponentTypes,
|
|
20
|
+
GuildFeature,
|
|
20
21
|
InteractionResponseTypes,
|
|
21
22
|
InteractionTypes,
|
|
22
23
|
MessageComponentTypes,
|
|
@@ -84,6 +85,7 @@ export interface RawInteraction {
|
|
|
84
85
|
application_id: string;
|
|
85
86
|
channel_id?: string;
|
|
86
87
|
data?: RawInteractionData;
|
|
88
|
+
guild?: InteractionGuild;
|
|
87
89
|
guild_id?: string;
|
|
88
90
|
guild_locale?: string;
|
|
89
91
|
id: string;
|
|
@@ -253,59 +255,33 @@ export interface AutocompleteChoice {
|
|
|
253
255
|
|
|
254
256
|
|
|
255
257
|
export type GuildAutocompleteInteraction = AutocompleteInteraction<AnyTextableGuildChannel>;
|
|
256
|
-
export interface PrivateAutocompleteInteraction extends
|
|
257
|
-
guild: null;
|
|
258
|
-
guildID: null;
|
|
259
|
-
guildLocale: undefined;
|
|
260
|
-
member: null;
|
|
261
|
-
memberPermissions: null;
|
|
262
|
-
}
|
|
258
|
+
export interface PrivateAutocompleteInteraction extends AutocompleteInteraction<AnyPrivateChannel | Uncached> {}
|
|
263
259
|
export type AnyAutocompleteInteraction = GuildAutocompleteInteraction | PrivateAutocompleteInteraction;
|
|
264
260
|
|
|
265
261
|
export type GuildCommandInteraction = CommandInteraction<AnyTextableGuildChannel>;
|
|
266
|
-
export interface PrivateCommandInteraction extends
|
|
267
|
-
guild: null;
|
|
268
|
-
guildID: null;
|
|
269
|
-
guildLocale: undefined;
|
|
270
|
-
member: null;
|
|
271
|
-
memberPermissions: null;
|
|
272
|
-
}
|
|
262
|
+
export interface PrivateCommandInteraction extends CommandInteraction<AnyPrivateChannel | Uncached> {}
|
|
273
263
|
export type AnyCommandInteraction = GuildCommandInteraction | PrivateCommandInteraction;
|
|
274
264
|
|
|
275
|
-
export interface GuildComponentButtonInteraction extends
|
|
276
|
-
export interface GuildComponentSelectMenuInteraction extends
|
|
265
|
+
export interface GuildComponentButtonInteraction extends ComponentInteraction<ComponentTypes.BUTTON, AnyTextableGuildChannel> { data: MessageComponentButtonInteractionData; }
|
|
266
|
+
export interface GuildComponentSelectMenuInteraction extends ComponentInteraction<SelectMenuTypes, AnyTextableGuildChannel> { data: MessageComponentSelectMenuInteractionData; }
|
|
277
267
|
export type GuildComponentInteraction = GuildComponentButtonInteraction | GuildComponentSelectMenuInteraction;
|
|
278
268
|
|
|
279
|
-
export interface PrivateComponentButtonInteraction extends
|
|
280
|
-
|
|
281
|
-
guild: null;
|
|
282
|
-
guildID: null;
|
|
283
|
-
guildLocale: undefined;
|
|
284
|
-
member: null;
|
|
285
|
-
memberPermissions: null;
|
|
286
|
-
}
|
|
287
|
-
export interface PrivateComponentSelectMenuInteraction extends Omit<ComponentInteraction<SelectMenuTypes, AnyPrivateChannel | Uncached>, "appPermissions" | "guild" | "guildID" | "guildLocale" | "member" | "memberPermissions" | "data"> {
|
|
288
|
-
data: MessageComponentSelectMenuInteractionData;
|
|
289
|
-
guild: null;
|
|
290
|
-
guildID: null;
|
|
291
|
-
guildLocale: undefined;
|
|
292
|
-
member: null;
|
|
293
|
-
memberPermissions: null;
|
|
294
|
-
}
|
|
269
|
+
export interface PrivateComponentButtonInteraction extends ComponentInteraction<ComponentTypes.BUTTON, AnyPrivateChannel | Uncached> {}
|
|
270
|
+
export interface PrivateComponentSelectMenuInteraction extends ComponentInteraction<SelectMenuTypes, AnyPrivateChannel | Uncached> {}
|
|
295
271
|
export type PrivateComponentInteraction = PrivateComponentButtonInteraction | PrivateComponentSelectMenuInteraction;
|
|
296
272
|
export type AnyComponentButtonInteraction = GuildComponentButtonInteraction | PrivateComponentButtonInteraction;
|
|
297
273
|
export type AnyComponentSelectMenuInteraction = GuildComponentSelectMenuInteraction | PrivateComponentSelectMenuInteraction;
|
|
298
274
|
export type AnyComponentInteraction = AnyComponentButtonInteraction | AnyComponentSelectMenuInteraction;
|
|
299
275
|
|
|
300
276
|
export type GuildModalSubmitInteraction = ModalSubmitInteraction<AnyTextableGuildChannel>;
|
|
301
|
-
export interface PrivateModalSubmitInteraction extends
|
|
302
|
-
guild: null;
|
|
303
|
-
guildID: null;
|
|
304
|
-
guildLocale: undefined;
|
|
305
|
-
member: null;
|
|
306
|
-
memberPermissions: null;
|
|
307
|
-
}
|
|
277
|
+
export interface PrivateModalSubmitInteraction extends ModalSubmitInteraction<AnyPrivateChannel | Uncached> {}
|
|
308
278
|
export type AnyModalSubmitInteraction = GuildModalSubmitInteraction | PrivateModalSubmitInteraction;
|
|
309
279
|
|
|
310
280
|
export type SubCommandArray = [subcommand: string] | [subcommandGroup: string, subcommand: string];
|
|
311
281
|
export type AutoCompleteFocusedOption = InteractionOptionsString | InteractionOptionsNumber | InteractionOptionsInteger;
|
|
282
|
+
|
|
283
|
+
export interface InteractionGuild {
|
|
284
|
+
features: Array<GuildFeature>;
|
|
285
|
+
id: string;
|
|
286
|
+
locale: string;
|
|
287
|
+
}
|