From 016082370e77de436c816f57e3f42a0b374d53f1 Mon Sep 17 00:00:00 2001 From: Catboy Date: Mon, 23 Aug 2021 00:18:03 -0500 Subject: [PATCH] Cache CommandInteraction.resolved users and members, cache interaction.member and interaction.user --- lib/structures/CommandInteraction.js | 24 ++++++++++++++++++++---- lib/structures/ComponentInteraction.js | 11 ++++++++--- lib/structures/UnknownInteraction.js | 11 ++++++++--- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/lib/structures/CommandInteraction.js b/lib/structures/CommandInteraction.js index 8168c33d1..08e52ecd3 100644 --- a/lib/structures/CommandInteraction.js +++ b/lib/structures/CommandInteraction.js @@ -48,7 +48,7 @@ class CommandInteraction extends Interaction { if(info.data.resolved.users !== undefined) { const usermap = new Collection(User); Object.entries(info.data.resolved.users).forEach(([id, user]) => { - usermap.set(id, new User(user, this._client)); + usermap.set(id, this._client.users.update(user, client)); }); this.data.resolved.users = usermap; } @@ -56,8 +56,18 @@ class CommandInteraction extends Interaction { if(info.data.resolved.members !== undefined) { const membermap = new Collection(Member); Object.entries(info.data.resolved.members).forEach(([id, member]) => { + member.id = id; member.user = {id}; - membermap.set(id, new Member(member, this._client.guilds.get(info.guild_id), this._client)); + if(this.channel.guild) { + membermap.set(id, this.channel.guild.members.update(member, this.channel.guild)); + } else { + const guild = this._client.guilds.get(info.guild_id); + if(guild) { + membermap.set(id, guild.members.update(member, guild)); + } else { + membermap.set(id, new Member(member, guild, this._client)); + } + } }); this.data.resolved.members = membermap; } @@ -92,11 +102,17 @@ class CommandInteraction extends Interaction { } if(info.member !== undefined) { - this.member = new Member(info.member, this._client.guilds.get(info.guild_id), this._client); + if(this.channel.guild) { + info.member.id = info.member.user.id; + this.member = this.channel.guild.members.update(info.member, this.channel.guild); + } else { + const guild = this._client.guilds.get(info.guild_id); + this.member = new Member(info.member, guild, this._client); + } } if(info.user !== undefined) { - this.user = new User(info.user, this._client); + this.user = this._client.users.update(info.user, client); } } diff --git a/lib/structures/ComponentInteraction.js b/lib/structures/ComponentInteraction.js index 91914b314..a98bf45d0 100644 --- a/lib/structures/ComponentInteraction.js +++ b/lib/structures/ComponentInteraction.js @@ -3,7 +3,6 @@ const Interaction = require("./Interaction"); const Message = require("./Message"); const Member = require("./Member"); -const User = require("./User"); const {InteractionResponseTypes} = require("../Constants"); /** @@ -34,7 +33,13 @@ class ComponentInteraction extends Interaction { } if(info.member !== undefined) { - this.member = new Member(info.member, this._client.guilds.get(info.guild_id), this._client); + if(this.channel.guild) { + info.member.id = info.member.user.id; + this.member = this.channel.guild.members.update(info.member, this.channel.guild); + } else { + const guild = this._client.guilds.get(info.guild_id); + this.member = new Member(info.member, guild, this._client); + } } if(info.message !== undefined) { @@ -42,7 +47,7 @@ class ComponentInteraction extends Interaction { } if(info.user !== undefined) { - this.user = new User(info.user, this._client); + this.user = this._client.users.update(info.user, client); } } diff --git a/lib/structures/UnknownInteraction.js b/lib/structures/UnknownInteraction.js index e8257e6af..afb5fcbc2 100644 --- a/lib/structures/UnknownInteraction.js +++ b/lib/structures/UnknownInteraction.js @@ -3,7 +3,6 @@ const Interaction = require("./Interaction"); const Message = require("./Message"); const Member = require("./Member"); -const User = require("./User"); const {InteractionResponseTypes} = require("../Constants"); /** @@ -35,7 +34,13 @@ class UnknownInteraction extends Interaction { } if(info.member !== undefined) { - this.member = new Member(info.member, this._client.guilds.get(info.guild_id), this._client); + if(this.channel.guild) { + info.member.id = info.member.user.id; + this.member = this.channel.guild.members.update(info.member, this.channel.guild); + } else { + const guild = this._client.guilds.get(info.guild_id); + this.member = new Member(info.member, guild, this._client); + } } if(info.message !== undefined) { @@ -43,7 +48,7 @@ class UnknownInteraction extends Interaction { } if(info.user !== undefined) { - this.user = new User(info.user, this._client); + this.user = this._client.users.update(info.user, client); } }