Merge pull request #287 from aiko-chan-ai/dev

fix(SendSlash): BotId !== applicationId
This commit is contained in:
Cinnamon 2022-08-29 22:15:16 +07:00 committed by GitHub
commit bcbf2eea03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -79,6 +79,7 @@ class User extends Base {
* @readonly * @readonly
*/ */
this.application = null; this.application = null;
this._partial = true;
this._patch(data); this._patch(data);
} }
@ -207,6 +208,8 @@ class User extends Base {
_ProfilePatch(data) { _ProfilePatch(data) {
if (!data) return; if (!data) return;
this._partial = false;
if (data.connected_accounts.length > 0) { if (data.connected_accounts.length > 0) {
this.connectedAccounts = data.connected_accounts; this.connectedAccounts = data.connected_accounts;
} }
@ -240,6 +243,10 @@ class User extends Base {
member._ProfilePatch(data.guild_member_profile); member._ProfilePatch(data.guild_member_profile);
} }
if ('application' in data) {
this.application = new ClientApplication(this.client, data.application, this);
}
this.mutualGuilds = new Collection(data.mutual_guilds.map(obj => [obj.id, obj])); this.mutualGuilds = new Collection(data.mutual_guilds.map(obj => [obj.id, obj]));
} }

View File

@ -436,6 +436,7 @@ class TextBasedChannel {
if (!user || !user.bot || !user.application) { if (!user || !user.bot || !user.application) {
throw new Error('botId is not a bot or does not have an application slash command'); throw new Error('botId is not a bot or does not have an application slash command');
} }
if (user._partial) await user.getProfile();
if (!commandName || typeof commandName !== 'string') throw new Error('Command name is required'); if (!commandName || typeof commandName !== 'string') throw new Error('Command name is required');
// Using API to search (without opcode ~ehehe) // Using API to search (without opcode ~ehehe)
let commandTarget; let commandTarget;
@ -445,7 +446,7 @@ class TextBasedChannel {
include_applications: false, include_applications: false,
}; };
if (this.client.channels.cache.get(this.id)?.type == 'DM') { if (this.client.channels.cache.get(this.id)?.type == 'DM') {
query.application_id = botId; query.application_id = user.application.id;
} else { } else {
query.limit = 25; query.limit = 25;
query.query = commandName; query.query = commandName;
@ -454,7 +455,7 @@ class TextBasedChannel {
query, query,
}); });
for (const command of data.application_commands) { for (const command of data.application_commands) {
if (user.id == command.application_id) { if (user.id == command.application_id || user.application.id == command.application_id) {
const c = user.application?.commands?._add(command, true); const c = user.application?.commands?._add(command, true);
if (command.name == commandName) commandTarget = c; if (command.name == commandName) commandTarget = c;
} else { } else {