feat: User Required Action

This commit is contained in:
Elysia
2023-07-27 17:52:12 +07:00
parent 004dbca726
commit eb9d68bcc9
12 changed files with 109 additions and 14 deletions

View File

@@ -240,8 +240,6 @@ class Client extends BaseClient {
*/
this.password = this.options.password;
this.session_id = null;
if (this.options.messageSweepInterval > 0) {
process.emitWarning(
'The message sweeping client options are deprecated, use the global sweepers instead.',
@@ -260,7 +258,7 @@ class Client extends BaseClient {
* @readonly
*/
get sessionId() {
return this.session_id;
return this.ws.shards.first()?.sessionId;
}
/**
@@ -603,7 +601,7 @@ class Client extends BaseClient {
'X-Context-Properties': 'eyJsb2NhdGlvbiI6Ik1hcmtkb3duIExpbmsifQ==', // Markdown Link
},
data: {
session_id: this.session_id,
session_id: this.sessionId,
},
});
}

View File

@@ -4,6 +4,7 @@ let ClientUser;
const { VoiceConnection } = require('@discordjs/voice');
const chalk = require('chalk');
const { Events, Opcodes } = require('../../../util/Constants');
const Util = require('../../../util/Util');
const { VoiceConnection: VoiceConnection_patch } = require('../../../util/Voice');
let firstReady = false;
@@ -41,6 +42,7 @@ function patchVoice(client) {
}
module.exports = async (client, { d: data }, shard) => {
Util.clientRequiredAction(client, data.required_action);
if (!firstReady) {
if (client.options.checkUpdate) {
client.once('update', (currentVersion, newVersion) => {
@@ -99,7 +101,6 @@ module.exports = async (client, { d: data }, shard) => {
firstReady = true;
}
client.session_id = data.session_id;
if (client.user) {
client.user._patch(data.user);
} else {

View File

@@ -0,0 +1,5 @@
'use strict';
const Util = require('../../../util/Util');
module.exports = (client, { d: data }) => Util.clientRequiredAction(client, data.required_action);

View File

@@ -61,6 +61,7 @@ const handlers = Object.fromEntries([
['USER_GUILD_SETTINGS_UPDATE', require('./USER_GUILD_SETTINGS_UPDATE')],
// USER_SETTINGS_PROTO_UPDATE // opcode 0
['USER_NOTE_UPDATE', require('./USER_NOTE_UPDATE')],
['USER_REQUIRED_ACTION_UPDATE', require('./USER_REQUIRED_ACTION_UPDATE')],
['USER_UPDATE', require('./USER_UPDATE')],
['PRESENCE_UPDATE', require('./PRESENCE_UPDATE')],
['TYPING_START', require('./TYPING_START')],