djs-selfbot-v13 3.1.7 → 3.2.2
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/README.md +18 -35
- package/package.json +85 -100
- package/src/client/BaseClient.js +3 -4
- package/src/client/Client.js +249 -530
- package/src/client/actions/Action.js +18 -13
- package/src/client/actions/ActionsManager.js +7 -1
- package/src/client/actions/AutoModerationActionExecution.js +1 -0
- package/src/client/actions/AutoModerationRuleCreate.js +1 -0
- package/src/client/actions/AutoModerationRuleDelete.js +1 -0
- package/src/client/actions/AutoModerationRuleUpdate.js +1 -0
- package/src/client/actions/GuildMemberRemove.js +0 -1
- package/src/client/actions/GuildMemberUpdate.js +0 -1
- package/src/client/actions/MessageCreate.js +0 -4
- package/src/client/actions/PresenceUpdate.js +17 -16
- package/src/client/websocket/WebSocketManager.js +11 -31
- package/src/client/websocket/WebSocketShard.js +39 -38
- package/src/client/websocket/handlers/CALL_CREATE.js +3 -3
- package/src/client/websocket/handlers/CALL_DELETE.js +2 -2
- package/src/client/websocket/handlers/CALL_UPDATE.js +2 -2
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +16 -13
- package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +11 -11
- package/src/client/websocket/handlers/GUILD_CREATE.js +19 -13
- package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +0 -1
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +1 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +22 -0
- package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +12 -0
- package/src/client/websocket/handlers/READY.js +90 -140
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +7 -5
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +7 -5
- package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +32 -9
- package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +2 -8
- package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +1 -1
- package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
- package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +1 -5
- package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
- package/src/client/websocket/handlers/index.js +17 -20
- package/src/errors/Messages.js +25 -69
- package/src/index.js +13 -43
- package/src/managers/ApplicationCommandManager.js +9 -12
- package/src/managers/ApplicationCommandPermissionsManager.js +3 -11
- package/src/managers/ChannelManager.js +2 -3
- package/src/managers/ClientUserSettingManager.js +162 -280
- package/src/managers/GuildBanManager.js +47 -1
- package/src/managers/GuildChannelManager.js +2 -16
- package/src/managers/GuildForumThreadManager.js +24 -30
- package/src/managers/GuildManager.js +1 -1
- package/src/managers/GuildMemberManager.js +50 -222
- package/src/managers/GuildSettingManager.js +22 -15
- package/src/managers/MessageManager.js +42 -44
- package/src/managers/PermissionOverwriteManager.js +1 -1
- package/src/managers/ReactionUserManager.js +5 -5
- package/src/managers/RelationshipManager.js +83 -76
- package/src/managers/ThreadManager.js +12 -45
- package/src/managers/ThreadMemberManager.js +1 -1
- package/src/managers/UserManager.js +6 -10
- package/src/managers/UserNoteManager.js +53 -0
- package/src/rest/APIRequest.js +48 -20
- package/src/rest/DiscordAPIError.js +17 -16
- package/src/rest/RESTManager.js +1 -21
- package/src/rest/RequestHandler.js +35 -21
- package/src/structures/ApplicationCommand.js +19 -456
- package/src/structures/ApplicationRoleConnectionMetadata.js +3 -0
- package/src/structures/AutoModerationRule.js +5 -5
- package/src/structures/AutocompleteInteraction.js +1 -0
- package/src/structures/BaseGuildTextChannel.js +10 -12
- package/src/structures/BaseGuildVoiceChannel.js +16 -18
- package/src/structures/{Call.js → CallState.js} +17 -12
- package/src/structures/CategoryChannel.js +2 -0
- package/src/structures/Channel.js +2 -3
- package/src/structures/ClientPresence.js +20 -19
- package/src/structures/ClientUser.js +117 -338
- package/src/structures/ContextMenuInteraction.js +1 -1
- package/src/structures/DMChannel.js +29 -92
- package/src/structures/ForumChannel.js +0 -10
- package/src/structures/GroupDMChannel.js +387 -0
- package/src/structures/Guild.js +135 -271
- package/src/structures/GuildAuditLogs.js +0 -5
- package/src/structures/GuildChannel.js +16 -2
- package/src/structures/GuildMember.js +27 -145
- package/src/structures/Interaction.js +1 -62
- package/src/structures/Invite.js +35 -52
- package/src/structures/Message.js +220 -203
- package/src/structures/MessageAttachment.js +11 -0
- package/src/structures/MessageButton.js +1 -67
- package/src/structures/MessageEmbed.js +1 -1
- package/src/structures/MessageMentions.js +3 -2
- package/src/structures/MessagePayload.js +6 -46
- package/src/structures/MessagePoll.js +238 -0
- package/src/structures/MessageReaction.js +1 -1
- package/src/structures/MessageSelectMenu.js +1 -252
- package/src/structures/Modal.js +70 -188
- package/src/structures/Presence.js +787 -129
- package/src/structures/Role.js +18 -2
- package/src/structures/SelectMenuInteraction.js +2 -151
- package/src/structures/Team.js +0 -49
- package/src/structures/TextInputComponent.js +0 -70
- package/src/structures/ThreadChannel.js +0 -19
- package/src/structures/User.js +145 -339
- package/src/structures/UserContextMenuInteraction.js +2 -2
- package/src/structures/VoiceState.js +74 -39
- package/src/structures/WebEmbed.js +38 -52
- package/src/structures/Webhook.js +17 -11
- package/src/structures/interfaces/Application.js +146 -23
- package/src/structures/interfaces/TextBasedChannel.js +409 -256
- package/src/util/ApplicationFlags.js +1 -1
- package/src/util/AttachmentFlags.js +38 -0
- package/src/util/Constants.js +120 -285
- package/src/util/Formatters.js +16 -2
- package/src/util/InviteFlags.js +29 -0
- package/src/util/LimitedCollection.js +1 -1
- package/src/util/Options.js +48 -74
- package/src/util/Permissions.js +15 -0
- package/src/util/PurchasedFlags.js +2 -0
- package/src/util/RemoteAuth.js +221 -356
- package/src/util/RoleFlags.js +37 -0
- package/src/util/Sweepers.js +1 -1
- package/src/util/Util.js +158 -32
- package/typings/enums.d.ts +24 -73
- package/typings/index.d.ts +978 -1288
- package/typings/rawDataTypes.d.ts +68 -9
- package/src/client/actions/InteractionCreate.js +0 -115
- package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +0 -23
- package/src/client/websocket/handlers/GUILD_APPLICATION_COMMANDS_UPDATE.js +0 -11
- package/src/client/websocket/handlers/GUILD_MEMBER_LIST_UPDATE.js +0 -55
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -0
- package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -0
- package/src/client/websocket/handlers/INTERACTION_CREATE.js +0 -16
- package/src/client/websocket/handlers/INTERACTION_FAILURE.js +0 -18
- package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +0 -30
- package/src/client/websocket/handlers/MESSAGE_ACK.js +0 -16
- package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.js +0 -0
- package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +0 -0
- package/src/managers/DeveloperPortalManager.js +0 -104
- package/src/managers/GuildApplicationCommandManager.js +0 -28
- package/src/managers/GuildFolderManager.js +0 -24
- package/src/managers/SessionManager.js +0 -57
- package/src/rest/CaptchaSolver.js +0 -132
- package/src/structures/ClientApplication.js +0 -204
- package/src/structures/DeveloperPortalApplication.js +0 -520
- package/src/structures/GuildFolder.js +0 -75
- package/src/structures/InteractionResponse.js +0 -114
- package/src/structures/PartialGroupDMChannel.js +0 -433
- package/src/structures/RichPresence.js +0 -722
- package/src/structures/Session.js +0 -81
- package/src/util/Voice.js +0 -1456
- package/src/util/arRPC/index.js +0 -229
- package/src/util/arRPC/process/detectable.json +0 -1
- package/src/util/arRPC/process/index.js +0 -102
- package/src/util/arRPC/process/native/index.js +0 -5
- package/src/util/arRPC/process/native/linux.js +0 -37
- package/src/util/arRPC/process/native/win32.js +0 -25
- package/src/util/arRPC/transports/ipc.js +0 -281
- package/src/util/arRPC/transports/websocket.js +0 -128
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
const { Collection } = require('@discordjs/collection');
|
|
4
4
|
const GuildChannel = require('./GuildChannel');
|
|
5
5
|
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
|
6
|
-
const InteractionManager = require('../managers/InteractionManager');
|
|
7
6
|
const MessageManager = require('../managers/MessageManager');
|
|
8
7
|
const { VideoQualityModes } = require('../util/Constants');
|
|
9
8
|
const Permissions = require('../util/Permissions');
|
|
@@ -28,12 +27,6 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
28
27
|
*/
|
|
29
28
|
this.nsfw = Boolean(data.nsfw);
|
|
30
29
|
|
|
31
|
-
/**
|
|
32
|
-
* A manager of the interactions sent to this channel
|
|
33
|
-
* @type {InteractionManager}
|
|
34
|
-
*/
|
|
35
|
-
this.interactions = new InteractionManager(this);
|
|
36
|
-
|
|
37
30
|
this._patch(data);
|
|
38
31
|
}
|
|
39
32
|
|
|
@@ -95,7 +88,15 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
95
88
|
}
|
|
96
89
|
|
|
97
90
|
if ('nsfw' in data) {
|
|
98
|
-
this.nsfw =
|
|
91
|
+
this.nsfw = data.nsfw;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if ('status' in data) {
|
|
95
|
+
/**
|
|
96
|
+
* The status of the voice channel (max 500 characters)
|
|
97
|
+
* @type {?string}
|
|
98
|
+
*/
|
|
99
|
+
this.status = data.status;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
|
|
@@ -170,11 +171,11 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
170
171
|
* Sets the bitrate of the channel.
|
|
171
172
|
* @param {number} bitrate The new bitrate
|
|
172
173
|
* @param {string} [reason] Reason for changing the channel's bitrate
|
|
173
|
-
* @returns {Promise<
|
|
174
|
+
* @returns {Promise<BaseGuildVoiceChannel>}
|
|
174
175
|
* @example
|
|
175
176
|
* // Set the bitrate of a voice channel
|
|
176
|
-
*
|
|
177
|
-
* .then(
|
|
177
|
+
* channel.setBitrate(48_000)
|
|
178
|
+
* .then(channel => console.log(`Set bitrate to ${channel.bitrate}bps for ${channel.name}`))
|
|
178
179
|
* .catch(console.error);
|
|
179
180
|
*/
|
|
180
181
|
setBitrate(bitrate, reason) {
|
|
@@ -201,11 +202,11 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
201
202
|
* Sets the user limit of the channel.
|
|
202
203
|
* @param {number} userLimit The new user limit
|
|
203
204
|
* @param {string} [reason] Reason for changing the user limit
|
|
204
|
-
* @returns {Promise<
|
|
205
|
+
* @returns {Promise<BaseGuildVoiceChannel>}
|
|
205
206
|
* @example
|
|
206
207
|
* // Set the user limit of a voice channel
|
|
207
|
-
*
|
|
208
|
-
* .then(
|
|
208
|
+
* channel.setUserLimit(42)
|
|
209
|
+
* .then(channel => console.log(`Set user limit to ${channel.userLimit} for ${channel.name}`))
|
|
209
210
|
* .catch(console.error);
|
|
210
211
|
*/
|
|
211
212
|
setUserLimit(userLimit, reason) {
|
|
@@ -216,7 +217,7 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
216
217
|
* Sets the camera video quality mode of the channel.
|
|
217
218
|
* @param {VideoQualityMode|number} videoQualityMode The new camera video quality mode.
|
|
218
219
|
* @param {string} [reason] Reason for changing the camera video quality mode.
|
|
219
|
-
* @returns {Promise<
|
|
220
|
+
* @returns {Promise<BaseGuildVoiceChannel>}
|
|
220
221
|
*/
|
|
221
222
|
setVideoQualityMode(videoQualityMode, reason) {
|
|
222
223
|
return this.edit({ videoQualityMode }, reason);
|
|
@@ -229,9 +230,6 @@ class BaseGuildVoiceChannel extends GuildChannel {
|
|
|
229
230
|
sendTyping() {}
|
|
230
231
|
createMessageCollector() {}
|
|
231
232
|
awaitMessages() {}
|
|
232
|
-
createMessageComponentCollector() {}
|
|
233
|
-
awaitMessageComponent() {}
|
|
234
|
-
bulkDelete() {}
|
|
235
233
|
fetchWebhooks() {}
|
|
236
234
|
createWebhook() {}
|
|
237
235
|
setRateLimitPerUser() {}
|
|
@@ -7,7 +7,7 @@ const Base = require('./Base');
|
|
|
7
7
|
* Represents a call
|
|
8
8
|
* @extends {Base}
|
|
9
9
|
*/
|
|
10
|
-
class
|
|
10
|
+
class CallState extends Base {
|
|
11
11
|
constructor(client, data) {
|
|
12
12
|
super(client);
|
|
13
13
|
/**
|
|
@@ -16,14 +16,11 @@ class Call extends Base {
|
|
|
16
16
|
*/
|
|
17
17
|
this.channelId = data.channel_id;
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
* The list of user ID who is ringing
|
|
21
|
-
* @type {Collection<Snowflake, User>}
|
|
22
|
-
*/
|
|
23
|
-
this.ringing = new Collection();
|
|
19
|
+
this._ringing = [];
|
|
24
20
|
|
|
25
21
|
this._patch(data);
|
|
26
22
|
}
|
|
23
|
+
|
|
27
24
|
_patch(data) {
|
|
28
25
|
if ('region' in data) {
|
|
29
26
|
/**
|
|
@@ -33,26 +30,34 @@ class Call extends Base {
|
|
|
33
30
|
this.region = data.region;
|
|
34
31
|
}
|
|
35
32
|
if ('ringing' in data) {
|
|
36
|
-
|
|
37
|
-
this.ringing.set(userId, this.client.users.cache.get(userId));
|
|
38
|
-
}
|
|
33
|
+
this._ringing = data.ringing;
|
|
39
34
|
}
|
|
40
35
|
}
|
|
36
|
+
|
|
41
37
|
/**
|
|
42
38
|
* The channel of the call
|
|
43
|
-
* @type {?DMChannel|
|
|
39
|
+
* @type {?DMChannel|GroupDMChannel}
|
|
44
40
|
*/
|
|
45
41
|
get channel() {
|
|
46
42
|
return this.client.channels.cache.get(this.channelId);
|
|
47
43
|
}
|
|
44
|
+
|
|
48
45
|
/**
|
|
49
46
|
* Sets the voice region of the call
|
|
50
47
|
* @param {string} region Region of the call
|
|
51
48
|
* @returns {Promise<void>}
|
|
52
49
|
*/
|
|
53
|
-
|
|
50
|
+
setRTCRegion(region) {
|
|
54
51
|
return this.client.api.channels(this.channelId).call.patch({ data: { region } });
|
|
55
52
|
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The list of user ID who is ringing
|
|
56
|
+
* @type {Collection<Snowflake, User>}
|
|
57
|
+
*/
|
|
58
|
+
get ringing() {
|
|
59
|
+
return new Collection(this._ringing.map(id => [id, this.client.users.cache.get(id)]));
|
|
60
|
+
}
|
|
56
61
|
}
|
|
57
62
|
|
|
58
|
-
module.exports =
|
|
63
|
+
module.exports = CallState;
|
|
@@ -62,6 +62,8 @@ class CategoryChannel extends GuildChannel {
|
|
|
62
62
|
* @property {?DefaultReactionEmoji} [defaultReactionEmoji] The emoji to set as the default reaction emoji
|
|
63
63
|
* @property {number} [defaultThreadRateLimitPerUser] The rate limit per user (slowmode) to set on forum posts
|
|
64
64
|
* @property {?SortOrderType} [defaultSortOrder] The default sort order mode to set on the new channel
|
|
65
|
+
* @property {number} [defaultThreadRateLimitPerUser] The initial rate limit per user (slowmode)
|
|
66
|
+
* to set on newly created threads in a channel.
|
|
65
67
|
* @property {string} [reason] Reason for creating the new channel
|
|
66
68
|
*/
|
|
67
69
|
|
|
@@ -53,7 +53,6 @@ class Channel extends Base {
|
|
|
53
53
|
if ('flags' in data) {
|
|
54
54
|
/**
|
|
55
55
|
* The flags that are applied to the channel.
|
|
56
|
-
* <info>This is only `null` in a {@link PartialGroupDMChannel}. In all other cases, it is not `null`.</info>
|
|
57
56
|
* @type {?Readonly<ChannelFlags>}
|
|
58
57
|
*/
|
|
59
58
|
this.flags = new ChannelFlags(data.flags).freeze();
|
|
@@ -203,8 +202,8 @@ class Channel extends Base {
|
|
|
203
202
|
if ((data.recipients && data.type !== ChannelTypes.GROUP_DM) || data.type === ChannelTypes.DM) {
|
|
204
203
|
channel = new DMChannel(client, data);
|
|
205
204
|
} else if (data.type === ChannelTypes.GROUP_DM) {
|
|
206
|
-
const
|
|
207
|
-
channel = new
|
|
205
|
+
const GroupDMChannel = require('./GroupDMChannel');
|
|
206
|
+
channel = new GroupDMChannel(client, data);
|
|
208
207
|
}
|
|
209
208
|
} else {
|
|
210
209
|
guild ??= client.guilds.cache.get(data.guild_id);
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
const { Presence } = require('./Presence');
|
|
4
4
|
const { TypeError } = require('../errors');
|
|
5
|
-
const {
|
|
5
|
+
const { ActivityTypes, Opcodes } = require('../util/Constants');
|
|
6
|
+
|
|
7
|
+
const CustomStatusActivityTypes = [ActivityTypes.CUSTOM, ActivityTypes[ActivityTypes.CUSTOM]];
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Represents the client's presence.
|
|
@@ -20,8 +22,8 @@ class ClientPresence extends Presence {
|
|
|
20
22
|
*/
|
|
21
23
|
set(presence) {
|
|
22
24
|
const packet = this._parse(presence);
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
+
this._patch(packet);
|
|
26
|
+
packet.activities = this.activities.map(a => a.toJSON());
|
|
25
27
|
if (typeof presence.shardId === 'undefined') {
|
|
26
28
|
this.client.ws.broadcast({ op: Opcodes.STATUS_UPDATE, d: packet });
|
|
27
29
|
} else if (Array.isArray(presence.shardId)) {
|
|
@@ -31,8 +33,6 @@ class ClientPresence extends Presence {
|
|
|
31
33
|
} else {
|
|
32
34
|
this.client.ws.shards.get(presence.shardId).send({ op: Opcodes.STATUS_UPDATE, d: packet });
|
|
33
35
|
}
|
|
34
|
-
// Parse with default class
|
|
35
|
-
// this._patch(packet, false);
|
|
36
36
|
return this;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -46,28 +46,29 @@ class ClientPresence extends Presence {
|
|
|
46
46
|
const data = {
|
|
47
47
|
activities: [],
|
|
48
48
|
afk: typeof afk === 'boolean' ? afk : false,
|
|
49
|
-
since: 0,
|
|
49
|
+
since: typeof since === 'number' && !Number.isNaN(since) ? since : 0,
|
|
50
50
|
status: status ?? this.status,
|
|
51
51
|
};
|
|
52
52
|
if (activities?.length) {
|
|
53
53
|
for (const [i, activity] of activities.entries()) {
|
|
54
|
-
if (
|
|
55
|
-
|
|
54
|
+
if (typeof activity.name !== 'string') throw new TypeError('INVALID_TYPE', `activities[${i}].name`, 'string');
|
|
55
|
+
|
|
56
|
+
activity.type ??= ActivityTypes.PLAYING;
|
|
57
|
+
if (typeof activity.type === 'string') activity.type = ActivityTypes[activity.type];
|
|
58
|
+
|
|
59
|
+
if (CustomStatusActivityTypes.includes(activity.type) && !activity.state) {
|
|
60
|
+
activity.state = activity.name;
|
|
61
|
+
activity.name = 'Custom Status';
|
|
56
62
|
}
|
|
57
|
-
|
|
58
|
-
data.activities.push(
|
|
59
|
-
Object.assign(activity, {
|
|
60
|
-
type: typeof activity.type === 'number' ? activity.type : ActivityTypes[activity.type],
|
|
61
|
-
}),
|
|
62
|
-
);
|
|
63
|
+
|
|
64
|
+
data.activities.push(activity);
|
|
63
65
|
}
|
|
64
66
|
} else if (!activities && (status || afk || since) && this.activities.length) {
|
|
65
67
|
data.activities.push(
|
|
66
|
-
...this.activities.map(a =>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
),
|
|
68
|
+
...this.activities.map(a => {
|
|
69
|
+
if (typeof a.type === 'string') a.type = ActivityTypes[a.type];
|
|
70
|
+
return a;
|
|
71
|
+
}),
|
|
71
72
|
);
|
|
72
73
|
}
|
|
73
74
|
|