djs-selfbot-v13 3.1.7 → 3.1.8
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 +1 -1
- package/README.md +18 -45
- package/package.json +8 -37
- package/src/client/BaseClient.js +2 -3
- package/src/client/Client.js +187 -539
- 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/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 +7 -0
- package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +1 -0
- package/src/client/websocket/handlers/READY.js +47 -137
- package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +7 -5
- package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +6 -4
- 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 +15 -20
- package/src/errors/Messages.js +24 -69
- package/src/index.js +12 -43
- package/src/managers/ApplicationCommandManager.js +9 -12
- package/src/managers/ApplicationCommandPermissionsManager.js +3 -11
- package/src/managers/ChannelManager.js +3 -4
- package/src/managers/ClientUserSettingManager.js +161 -279
- package/src/managers/GuildBanManager.js +1 -1
- package/src/managers/GuildChannelManager.js +2 -0
- package/src/managers/GuildForumThreadManager.js +22 -28
- package/src/managers/GuildMemberManager.js +40 -216
- 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 +81 -74
- 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 +42 -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 +12 -8
- package/src/structures/ClientUser.js +117 -336
- 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 +228 -202
- 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 +4 -46
- package/src/structures/MessageReaction.js +1 -1
- package/src/structures/MessageSelectMenu.js +1 -252
- package/src/structures/Modal.js +75 -180
- package/src/structures/Presence.js +2 -2
- package/src/structures/RichPresence.js +14 -34
- 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 +117 -345
- 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 +411 -256
- package/src/util/ApplicationFlags.js +1 -1
- package/src/util/AttachmentFlags.js +38 -0
- package/src/util/Constants.js +106 -284
- 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 -68
- package/src/util/Permissions.js +5 -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 +76 -36
- package/typings/enums.d.ts +18 -73
- package/typings/index.d.ts +873 -1225
- 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/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
|
@@ -1,105 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const {
|
|
5
|
-
const chalk = require('chalk');
|
|
6
|
-
const { Events, Opcodes } = require('../../../util/Constants');
|
|
7
|
-
const { VoiceConnection: VoiceConnection_patch } = require('../../../util/Voice');
|
|
8
|
-
let firstReady = false;
|
|
9
|
-
|
|
10
|
-
function patchVoice(client) {
|
|
11
|
-
try {
|
|
12
|
-
/* eslint-disable */
|
|
13
|
-
VoiceConnection.prototype.configureNetworking = VoiceConnection_patch.prototype.configureNetworking;
|
|
14
|
-
client.emit(
|
|
15
|
-
'debug',
|
|
16
|
-
`${chalk.greenBright('[OK]')} Patched ${chalk.cyanBright(
|
|
17
|
-
'VoiceConnection.prototype.configureNetworking',
|
|
18
|
-
)} [${chalk.bgMagentaBright('@discordjs/voice')} - ${chalk.redBright('v0.16.0')}]`,
|
|
19
|
-
);
|
|
20
|
-
/* eslint-enable */
|
|
21
|
-
} catch (e) {
|
|
22
|
-
client.emit(
|
|
23
|
-
'debug',
|
|
24
|
-
`${chalk.redBright('[Fail]')} Patched ${chalk.cyanBright(
|
|
25
|
-
'VoiceConnection.prototype.configureNetworking',
|
|
26
|
-
)} [${chalk.bgMagentaBright('@discordjs/voice')} - ${chalk.redBright('v0.16.0')}]\n${e.stack}`,
|
|
27
|
-
);
|
|
28
|
-
client.emit(
|
|
29
|
-
Events.ERROR,
|
|
30
|
-
`${chalk.redBright('[Fail]')} Patched ${chalk.cyanBright(
|
|
31
|
-
'VoiceConnection.prototype.configureNetworking',
|
|
32
|
-
)} [${chalk.bgMagentaBright('@discordjs/voice')} - ${chalk.redBright('v0.16.0')}]`,
|
|
33
|
-
);
|
|
34
|
-
client.emit(
|
|
35
|
-
Events.ERROR,
|
|
36
|
-
`${chalk.redBright('[Error]')} Please install ${chalk.bgMagentaBright(
|
|
37
|
-
'@discordjs/voice',
|
|
38
|
-
)} version ${chalk.redBright('v0.16.0')}`,
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
module.exports = async (client, { d: data }, shard) => {
|
|
44
|
-
if (!firstReady) {
|
|
45
|
-
if (client.options.checkUpdate) {
|
|
46
|
-
client.once('update', (currentVersion, newVersion) => {
|
|
47
|
-
if (!newVersion) {
|
|
48
|
-
console.log(`
|
|
49
|
-
${chalk.redBright('[WARNING]')} Cannot check new djs-selfbot-v13 version.
|
|
50
|
-
Current: ${chalk.blueBright(currentVersion)}
|
|
51
|
-
|
|
52
|
-
If you don't want to show this message, set ${chalk.cyanBright('checkUpdate')} to false
|
|
53
|
-
|
|
54
|
-
const client = new Client({
|
|
55
|
-
checkUpdate: false,
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
and using event update
|
|
59
|
-
https://discordjs-self-v13.netlify.app/#/docs/docs/main/class/Client?scrollTo=e-update\n`);
|
|
60
|
-
} else if (currentVersion !== newVersion && !currentVersion.includes('-')) {
|
|
61
|
-
console.log(`
|
|
62
|
-
${chalk.yellowBright('[WARNING]')} New djs-selfbot-v13 version.
|
|
63
|
-
Current: ${chalk.redBright(currentVersion)} => Latest: ${chalk.greenBright(newVersion)}
|
|
64
|
-
|
|
65
|
-
If you don't want to show this message, set ${chalk.cyanBright('checkUpdate')} to false
|
|
66
|
-
|
|
67
|
-
const client = new Client({
|
|
68
|
-
checkUpdate: false,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
and using event update
|
|
72
|
-
https://discordjs-self-v13.netlify.app/#/docs/docs/main/class/Client?scrollTo=e-update\n`);
|
|
73
|
-
} else {
|
|
74
|
-
console.log(
|
|
75
|
-
`
|
|
76
|
-
${chalk.greenBright('[OK]')} djs-selfbot-v13 is up to date. Current: ${chalk.blueBright(currentVersion)}
|
|
77
|
-
|
|
78
|
-
If you don't want to show this message, set ${chalk.cyanBright('checkUpdate')} to false
|
|
79
|
-
|
|
80
|
-
const client = new Client({
|
|
81
|
-
checkUpdate: false,
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
and using event update
|
|
85
|
-
https://discordjs-self-v13.netlify.app/#/docs/docs/main/class/Client?scrollTo=e-update\n`,
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
client.checkUpdate();
|
|
90
|
-
}
|
|
3
|
+
const USER_REQUIRED_ACTION = require('./USER_REQUIRED_ACTION_UPDATE');
|
|
4
|
+
const { Opcodes } = require('../../../util/Constants');
|
|
91
5
|
|
|
92
|
-
|
|
93
|
-
patchVoice(client);
|
|
94
|
-
}
|
|
6
|
+
let ClientUser;
|
|
95
7
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
firstReady = true;
|
|
100
|
-
}
|
|
8
|
+
module.exports = (client, { d: data }, shard) => {
|
|
9
|
+
// Check
|
|
10
|
+
USER_REQUIRED_ACTION(client, { d: data });
|
|
101
11
|
|
|
102
|
-
client.session_id = data.session_id;
|
|
103
12
|
if (client.user) {
|
|
104
13
|
client.user._patch(data.user);
|
|
105
14
|
} else {
|
|
@@ -108,31 +17,8 @@ module.exports = async (client, { d: data }, shard) => {
|
|
|
108
17
|
client.users.cache.set(client.user.id, client.user);
|
|
109
18
|
}
|
|
110
19
|
|
|
111
|
-
client.settings._patch(data.user_settings);
|
|
112
|
-
|
|
113
|
-
client.user.connectedAccounts = data.connected_accounts ?? [];
|
|
114
|
-
|
|
115
|
-
client.relationships._setup(data.relationships);
|
|
116
|
-
|
|
117
|
-
client.user._patchNote(data.notes);
|
|
118
|
-
|
|
119
|
-
const syncTime = Date.now();
|
|
120
20
|
for (const private_channel of data.private_channels) {
|
|
121
|
-
|
|
122
|
-
// Rate limit warning
|
|
123
|
-
if (client.options.DMSync) {
|
|
124
|
-
client.ws.broadcast({
|
|
125
|
-
op: Opcodes.DM_UPDATE,
|
|
126
|
-
d: {
|
|
127
|
-
channel_id: channel.id,
|
|
128
|
-
},
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (client.options.DMSync) {
|
|
133
|
-
console.warn(
|
|
134
|
-
`Gateway Rate Limit Warning: Sending ${data.private_channels.length} Requests / ${Date.now() - syncTime || 1} ms`,
|
|
135
|
-
);
|
|
21
|
+
client.channels._add(private_channel);
|
|
136
22
|
}
|
|
137
23
|
|
|
138
24
|
for (const guild of data.guilds) {
|
|
@@ -140,31 +26,55 @@ module.exports = async (client, { d: data }, shard) => {
|
|
|
140
26
|
client.guilds._add(guild);
|
|
141
27
|
}
|
|
142
28
|
|
|
29
|
+
const largeGuilds = data.guilds.filter(g => g.large);
|
|
30
|
+
client.emit('debug', `[READY] Received ${data.guilds.length} guilds, ${largeGuilds.length} large guilds`);
|
|
31
|
+
|
|
32
|
+
// User Notes
|
|
33
|
+
client.notes._reload(data.notes);
|
|
34
|
+
|
|
35
|
+
// Relationship
|
|
36
|
+
client.relationships._setup(data.relationships);
|
|
37
|
+
|
|
38
|
+
// ClientSetting
|
|
39
|
+
client.settings._patch(data.user_settings);
|
|
40
|
+
|
|
41
|
+
// GuildSetting
|
|
143
42
|
for (const gSetting of Array.isArray(data.user_guild_settings) ? data.user_guild_settings : []) {
|
|
144
43
|
const guild = client.guilds.cache.get(gSetting.guild_id);
|
|
145
44
|
if (guild) guild.settings._patch(gSetting);
|
|
146
45
|
}
|
|
46
|
+
// Todo: data.auth_session_id_hash
|
|
147
47
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
client.emit('debug', `[READY] Received ${data.guilds.length} guilds, ${largeGuilds.length} large guilds`);
|
|
151
|
-
|
|
152
|
-
// Receive messages in large guilds
|
|
153
|
-
for (const guild of largeGuilds) {
|
|
154
|
-
await client.sleep(client.options.messageCreateEventGuildTimeout);
|
|
48
|
+
if (largeGuilds.length) {
|
|
155
49
|
client.ws.broadcast({
|
|
156
|
-
op: Opcodes.
|
|
50
|
+
op: Opcodes.GUILD_SUBSCRIPTIONS_BULK,
|
|
157
51
|
d: {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
52
|
+
subscriptions: largeGuilds.reduce((accumulator, guild) => {
|
|
53
|
+
accumulator[guild.id] = {
|
|
54
|
+
typing: true,
|
|
55
|
+
threads: true,
|
|
56
|
+
activities: true,
|
|
57
|
+
member_updates: true,
|
|
58
|
+
thread_member_lists: [],
|
|
59
|
+
members: [],
|
|
60
|
+
channels: {},
|
|
61
|
+
};
|
|
62
|
+
return accumulator;
|
|
63
|
+
}, {}),
|
|
165
64
|
},
|
|
166
65
|
});
|
|
167
66
|
}
|
|
168
67
|
|
|
169
|
-
|
|
68
|
+
Promise.all(
|
|
69
|
+
data.private_channels.map(async (c, index) => {
|
|
70
|
+
if (client.options.DMChannelVoiceStatusSync < 1) return;
|
|
71
|
+
client.ws.broadcast({
|
|
72
|
+
op: Opcodes.DM_UPDATE,
|
|
73
|
+
d: {
|
|
74
|
+
channel_id: c.id,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
await client.sleep(client.options.DMChannelVoiceStatusSync * index);
|
|
78
|
+
}),
|
|
79
|
+
).then(() => shard.checkReady());
|
|
170
80
|
};
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { Events
|
|
3
|
+
const { Events } = require('../../../util/Constants');
|
|
4
4
|
|
|
5
5
|
module.exports = (client, { d: data }) => {
|
|
6
6
|
if (data.user) {
|
|
7
7
|
client.users._add(data.user);
|
|
8
8
|
}
|
|
9
9
|
client.relationships.cache.set(data.id, data.type);
|
|
10
|
+
client.relationships.friendNicknames.set(data.id, data.nickname);
|
|
11
|
+
client.relationships.sinceCache.set(data.id, new Date(data.since || 0));
|
|
10
12
|
/**
|
|
11
|
-
* Emitted
|
|
13
|
+
* Emitted when a relationship is created, relevant to the current user.
|
|
12
14
|
* @event Client#relationshipAdd
|
|
13
|
-
* @param {Snowflake} user
|
|
14
|
-
* @param {
|
|
15
|
+
* @param {Snowflake} user Target userId
|
|
16
|
+
* @param {boolean} shouldNotify Whether the client should notify the user of this relationship's creation
|
|
15
17
|
*/
|
|
16
|
-
client.emit(Events.RELATIONSHIP_ADD, data.id,
|
|
18
|
+
client.emit(Events.RELATIONSHIP_ADD, data.id, Boolean(data.should_notify));
|
|
17
19
|
};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { Events
|
|
3
|
+
const { Events } = require('../../../util/Constants');
|
|
4
4
|
|
|
5
5
|
module.exports = (client, { d: data }) => {
|
|
6
6
|
client.relationships.cache.delete(data.id);
|
|
7
|
-
client.
|
|
7
|
+
client.relationships.friendNicknames.delete(data.id);
|
|
8
|
+
client.relationships.sinceCache.delete(data.id);
|
|
8
9
|
/**
|
|
9
|
-
* Emitted
|
|
10
|
+
* Emitted when a relationship is removed, relevant to the current user.
|
|
10
11
|
* @event Client#relationshipRemove
|
|
11
12
|
* @param {Snowflake} user The userID that was updated
|
|
12
13
|
* @param {RelationshipTypes} type The type of the old relationship
|
|
14
|
+
* @param {string | null} nickname The nickname of the user in this relationship (1-32 characters)
|
|
13
15
|
*/
|
|
14
|
-
client.emit(Events.RELATIONSHIP_REMOVE, data.id,
|
|
16
|
+
client.emit(Events.RELATIONSHIP_REMOVE, data.id, data.type, data.nickname);
|
|
15
17
|
};
|
|
@@ -1,18 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { Events
|
|
3
|
+
const { Events } = require('../../../util/Constants');
|
|
4
4
|
|
|
5
5
|
module.exports = (client, { d: data }) => {
|
|
6
|
-
client.relationships.cache.set(data.id, data.type);
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* @typedef {Object} RelationshipUpdateObject
|
|
8
|
+
* @property {RelationshipTypes} type The type of relationship
|
|
9
|
+
* @property {Date} since When the user requested a relationship
|
|
10
|
+
* @property {string | null} nickname The nickname of the user in this relationship (1-32 characters)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Emitted when a relationship is updated, relevant to the current user (e.g. friend nickname changed).
|
|
14
|
+
* <info>This is not sent when the type of a relationship changes; see {@link Client#relationshipAdd} and {@link Client#relationshipRemove} for that.</info>
|
|
9
15
|
* @event Client#relationshipUpdate
|
|
10
16
|
* @param {Snowflake} user The userID that was updated
|
|
11
|
-
* @param {
|
|
12
|
-
* @param {
|
|
17
|
+
* @param {RelationshipUpdateObject} oldData Old data
|
|
18
|
+
* @param {RelationshipUpdateObject} newData New data
|
|
13
19
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
const oldType = client.relationships.cache.get(data.id);
|
|
21
|
+
const oldSince = client.relationships.sinceCache.get(data.id);
|
|
22
|
+
const oldNickname = client.relationships.friendNicknames.get(data.id);
|
|
23
|
+
// Update
|
|
24
|
+
if (data.type) client.relationships.cache.set(data.id, data.type);
|
|
25
|
+
if (data.nickname) client.relationships.friendNicknames.set(data.id, data.nickname);
|
|
26
|
+
if (data.since) client.relationships.sinceCache.set(data.id, new Date(data.since || 0));
|
|
27
|
+
client.emit(
|
|
28
|
+
Events.RELATIONSHIP_UPDATE,
|
|
29
|
+
data.id,
|
|
30
|
+
{
|
|
31
|
+
type: oldType,
|
|
32
|
+
nickname: oldNickname,
|
|
33
|
+
since: oldSince,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: data.type,
|
|
37
|
+
nickname: data.nickname,
|
|
38
|
+
since: new Date(data.since || 0),
|
|
39
|
+
},
|
|
40
|
+
);
|
|
18
41
|
};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
module.exports = (client, { d: data }) => {
|
|
4
4
|
const guild = client.guilds.cache.get(data.guild_id);
|
|
5
|
-
guild?.settings._patch(data);
|
|
6
|
-
/**
|
|
7
|
-
* Emitted whenever guild settings are updated
|
|
8
|
-
* @event Client#userGuildSettingsUpdate
|
|
9
|
-
* @param {Guild} guild Guild
|
|
10
|
-
*/
|
|
11
|
-
return client.emit(Events.USER_GUILD_SETTINGS_UPDATE, guild);
|
|
5
|
+
if (guild) guild?.settings._patch(data);
|
|
12
6
|
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
module.exports = (client, { d: data }) => {
|
|
4
|
+
let msg;
|
|
5
|
+
switch (data.required_action) {
|
|
6
|
+
case undefined:
|
|
7
|
+
case null: {
|
|
8
|
+
msg = 'All required actions have been completed.';
|
|
9
|
+
break;
|
|
10
|
+
}
|
|
11
|
+
case 'AGREEMENTS': {
|
|
12
|
+
msg = 'You need to accept the new Terms of Service and Privacy Policy.';
|
|
13
|
+
// https://discord.com/api/v9/users/@me/agreements
|
|
14
|
+
client.api
|
|
15
|
+
.users('@me')
|
|
16
|
+
.agreements.patch({
|
|
17
|
+
data: {
|
|
18
|
+
terms: true,
|
|
19
|
+
privacy: true,
|
|
20
|
+
},
|
|
21
|
+
})
|
|
22
|
+
.then(() => {
|
|
23
|
+
client.emit(
|
|
24
|
+
'debug',
|
|
25
|
+
'[USER_REQUIRED_ACTION] Successfully accepted the new Terms of Service and Privacy Policy.',
|
|
26
|
+
);
|
|
27
|
+
})
|
|
28
|
+
.catch(e => {
|
|
29
|
+
client.emit(
|
|
30
|
+
'debug',
|
|
31
|
+
`[USER_REQUIRED_ACTION] Failed to accept the new Terms of Service and Privacy Policy: ${e}`,
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'REQUIRE_CAPTCHA': {
|
|
37
|
+
msg = 'You need to complete a captcha.';
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
case 'REQUIRE_VERIFIED_EMAIL': {
|
|
41
|
+
msg = 'You need to verify your email.';
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'REQUIRE_REVERIFIED_EMAIL': {
|
|
45
|
+
msg = 'You need to reverify your email.';
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case 'REQUIRE_VERIFIED_PHONE': {
|
|
49
|
+
msg = 'You need to verify your phone number.';
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'REQUIRE_REVERIFIED_PHONE': {
|
|
53
|
+
msg = 'You need to reverify your phone number.';
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case 'REQUIRE_VERIFIED_EMAIL_OR_VERIFIED_PHONE': {
|
|
57
|
+
msg = 'You need to verify your email or verify your phone number.';
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case 'REQUIRE_REVERIFIED_EMAIL_OR_VERIFIED_PHONE': {
|
|
61
|
+
msg = 'You need to reverify your email or verify your phone number.';
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case 'REQUIRE_VERIFIED_EMAIL_OR_REVERIFIED_PHONE': {
|
|
65
|
+
msg = 'You need to verify your email or reverify your phone number.';
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case 'REQUIRE_REVERIFIED_EMAIL_OR_REVERIFIED_PHONE': {
|
|
69
|
+
msg = 'You need to reverify your email or reverify your phone number.';
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
default: {
|
|
73
|
+
msg = `Unknown required action: ${data.required_action}`;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
client.emit('debug', `[USER_REQUIRED_ACTION] ${msg}`);
|
|
78
|
+
};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
module.exports = (client, { d: data }) => {
|
|
4
4
|
client.settings._patch(data);
|
|
5
|
-
if (('status' in data || 'custom_status' in data) && client.options.syncStatus) {
|
|
6
|
-
client.customStatusAuto(client);
|
|
7
|
-
}
|
|
8
|
-
return client.emit(Events.USER_SETTINGS_UPDATE, data);
|
|
9
5
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { Events } = require('../../../util/Constants');
|
|
4
|
+
|
|
5
|
+
module.exports = (client, { d: data }) => {
|
|
6
|
+
const channel = client.channels.cache.get(data.id);
|
|
7
|
+
if (channel) {
|
|
8
|
+
const old = channel._clone();
|
|
9
|
+
channel.status = data.status;
|
|
10
|
+
client.emit(Events.CHANNEL_UPDATE, old, channel);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
const handlers = Object.fromEntries([
|
|
4
4
|
['READY', require('./READY')],
|
|
5
5
|
['RESUMED', require('./RESUMED')],
|
|
6
|
-
['RELATIONSHIP_ADD', require('./RELATIONSHIP_ADD')],
|
|
7
|
-
['RELATIONSHIP_REMOVE', require('./RELATIONSHIP_REMOVE')],
|
|
8
|
-
['RELATIONSHIP_UPDATE', require('./RELATIONSHIP_UPDATE')],
|
|
9
|
-
['APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE', require('./APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE')],
|
|
10
6
|
['APPLICATION_COMMAND_CREATE', require('./APPLICATION_COMMAND_CREATE')],
|
|
11
7
|
['APPLICATION_COMMAND_DELETE', require('./APPLICATION_COMMAND_DELETE')],
|
|
12
8
|
['APPLICATION_COMMAND_UPDATE', require('./APPLICATION_COMMAND_UPDATE')],
|
|
@@ -15,9 +11,6 @@ const handlers = Object.fromEntries([
|
|
|
15
11
|
['AUTO_MODERATION_RULE_CREATE', require('./AUTO_MODERATION_RULE_CREATE')],
|
|
16
12
|
['AUTO_MODERATION_RULE_DELETE', require('./AUTO_MODERATION_RULE_DELETE')],
|
|
17
13
|
['AUTO_MODERATION_RULE_UPDATE', require('./AUTO_MODERATION_RULE_UPDATE')],
|
|
18
|
-
['CALL_CREATE', require('./CALL_CREATE')],
|
|
19
|
-
['CALL_UPDATE', require('./CALL_UPDATE')],
|
|
20
|
-
['CALL_DELETE', require('./CALL_DELETE')],
|
|
21
14
|
['GUILD_CREATE', require('./GUILD_CREATE')],
|
|
22
15
|
['GUILD_DELETE', require('./GUILD_DELETE')],
|
|
23
16
|
['GUILD_UPDATE', require('./GUILD_UPDATE')],
|
|
@@ -27,8 +20,6 @@ const handlers = Object.fromEntries([
|
|
|
27
20
|
['GUILD_MEMBER_REMOVE', require('./GUILD_MEMBER_REMOVE')],
|
|
28
21
|
['GUILD_MEMBER_UPDATE', require('./GUILD_MEMBER_UPDATE')],
|
|
29
22
|
['GUILD_MEMBERS_CHUNK', require('./GUILD_MEMBERS_CHUNK')],
|
|
30
|
-
['GUILD_MEMBER_LIST_UPDATE', require('./GUILD_MEMBER_LIST_UPDATE.js')],
|
|
31
|
-
['GUILD_APPLICATION_COMMANDS_UPDATE', require('./GUILD_APPLICATION_COMMANDS_UPDATE.js')],
|
|
32
23
|
['GUILD_INTEGRATIONS_UPDATE', require('./GUILD_INTEGRATIONS_UPDATE')],
|
|
33
24
|
['GUILD_ROLE_CREATE', require('./GUILD_ROLE_CREATE')],
|
|
34
25
|
['GUILD_ROLE_DELETE', require('./GUILD_ROLE_DELETE')],
|
|
@@ -40,9 +31,6 @@ const handlers = Object.fromEntries([
|
|
|
40
31
|
['CHANNEL_DELETE', require('./CHANNEL_DELETE')],
|
|
41
32
|
['CHANNEL_UPDATE', require('./CHANNEL_UPDATE')],
|
|
42
33
|
['CHANNEL_PINS_UPDATE', require('./CHANNEL_PINS_UPDATE')],
|
|
43
|
-
['CHANNEL_RECIPIENT_ADD', require('./CHANNEL_RECIPIENT_ADD')],
|
|
44
|
-
['CHANNEL_RECIPIENT_REMOVE', require('./CHANNEL_RECIPIENT_REMOVE')],
|
|
45
|
-
['MESSAGE_ACK', require('./MESSAGE_ACK')],
|
|
46
34
|
['MESSAGE_CREATE', require('./MESSAGE_CREATE')],
|
|
47
35
|
['MESSAGE_DELETE', require('./MESSAGE_DELETE')],
|
|
48
36
|
['MESSAGE_UPDATE', require('./MESSAGE_UPDATE')],
|
|
@@ -57,20 +45,12 @@ const handlers = Object.fromEntries([
|
|
|
57
45
|
['THREAD_LIST_SYNC', require('./THREAD_LIST_SYNC')],
|
|
58
46
|
['THREAD_MEMBER_UPDATE', require('./THREAD_MEMBER_UPDATE')],
|
|
59
47
|
['THREAD_MEMBERS_UPDATE', require('./THREAD_MEMBERS_UPDATE')],
|
|
60
|
-
['USER_SETTINGS_UPDATE', require('./USER_SETTINGS_UPDATE')], // Opcode 0
|
|
61
|
-
['USER_GUILD_SETTINGS_UPDATE', require('./USER_GUILD_SETTINGS_UPDATE')],
|
|
62
|
-
// USER_SETTINGS_PROTO_UPDATE // opcode 0
|
|
63
|
-
['USER_NOTE_UPDATE', require('./USER_NOTE_UPDATE')],
|
|
64
48
|
['USER_UPDATE', require('./USER_UPDATE')],
|
|
65
49
|
['PRESENCE_UPDATE', require('./PRESENCE_UPDATE')],
|
|
66
50
|
['TYPING_START', require('./TYPING_START')],
|
|
67
51
|
['VOICE_STATE_UPDATE', require('./VOICE_STATE_UPDATE')],
|
|
68
52
|
['VOICE_SERVER_UPDATE', require('./VOICE_SERVER_UPDATE')],
|
|
69
53
|
['WEBHOOKS_UPDATE', require('./WEBHOOKS_UPDATE')],
|
|
70
|
-
['INTERACTION_CREATE', require('./INTERACTION_CREATE')],
|
|
71
|
-
['INTERACTION_SUCCESS', require('./INTERACTION_SUCCESS')],
|
|
72
|
-
['INTERACTION_MODAL_CREATE', require('./INTERACTION_MODAL_CREATE')],
|
|
73
|
-
['INTERACTION_FAILURE', require('./INTERACTION_FAILURE')],
|
|
74
54
|
['STAGE_INSTANCE_CREATE', require('./STAGE_INSTANCE_CREATE')],
|
|
75
55
|
['STAGE_INSTANCE_UPDATE', require('./STAGE_INSTANCE_UPDATE')],
|
|
76
56
|
['STAGE_INSTANCE_DELETE', require('./STAGE_INSTANCE_DELETE')],
|
|
@@ -81,6 +61,21 @@ const handlers = Object.fromEntries([
|
|
|
81
61
|
['GUILD_SCHEDULED_EVENT_USER_ADD', require('./GUILD_SCHEDULED_EVENT_USER_ADD')],
|
|
82
62
|
['GUILD_SCHEDULED_EVENT_USER_REMOVE', require('./GUILD_SCHEDULED_EVENT_USER_REMOVE')],
|
|
83
63
|
['GUILD_AUDIT_LOG_ENTRY_CREATE', require('./GUILD_AUDIT_LOG_ENTRY_CREATE')],
|
|
64
|
+
// Selfbot
|
|
65
|
+
['RELATIONSHIP_ADD', require('./RELATIONSHIP_ADD')],
|
|
66
|
+
['RELATIONSHIP_REMOVE', require('./RELATIONSHIP_REMOVE')],
|
|
67
|
+
['RELATIONSHIP_UPDATE', require('./RELATIONSHIP_UPDATE')],
|
|
68
|
+
['USER_NOTE_UPDATE', require('./USER_NOTE_UPDATE')],
|
|
69
|
+
['CHANNEL_RECIPIENT_ADD', require('./CHANNEL_RECIPIENT_ADD')],
|
|
70
|
+
['CHANNEL_RECIPIENT_REMOVE', require('./CHANNEL_RECIPIENT_REMOVE')],
|
|
71
|
+
['INTERACTION_MODAL_CREATE', require('./INTERACTION_MODAL_CREATE')],
|
|
72
|
+
['USER_REQUIRED_ACTION_UPDATE', require('./USER_REQUIRED_ACTION_UPDATE')],
|
|
73
|
+
['CALL_CREATE', require('./CALL_CREATE')],
|
|
74
|
+
['CALL_UPDATE', require('./CALL_UPDATE')],
|
|
75
|
+
['CALL_DELETE', require('./CALL_DELETE')],
|
|
76
|
+
['USER_SETTINGS_UPDATE', require('./USER_SETTINGS_UPDATE')],
|
|
77
|
+
['USER_GUILD_SETTINGS_UPDATE', require('./USER_GUILD_SETTINGS_UPDATE')],
|
|
78
|
+
['VOICE_CHANNEL_STATUS_UPDATE', require('./VOICE_CHANNEL_STATUS_UPDATE')],
|
|
84
79
|
]);
|
|
85
80
|
|
|
86
81
|
module.exports = handlers;
|