Skip to content

Commit

Permalink
Cache CommandInteraction.resolved users and members, cache interactio…
Browse files Browse the repository at this point in the history
…n.member and interaction.user
  • Loading branch information
JustCat80 committed Aug 23, 2021
1 parent bd11bd9 commit 0160823
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 10 deletions.
24 changes: 20 additions & 4 deletions lib/structures/CommandInteraction.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,26 @@ 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;
}
//Members
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;
}
Expand Down Expand Up @@ -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);
}

}
Expand Down
11 changes: 8 additions & 3 deletions lib/structures/ComponentInteraction.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
const Interaction = require("./Interaction");
const Message = require("./Message");
const Member = require("./Member");
const User = require("./User");
const {InteractionResponseTypes} = require("../Constants");

/**
Expand Down Expand Up @@ -34,15 +33,21 @@ 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) {
this.message = new Message(info.message, this._client);
}

if(info.user !== undefined) {
this.user = new User(info.user, this._client);
this.user = this._client.users.update(info.user, client);
}

}
Expand Down
11 changes: 8 additions & 3 deletions lib/structures/UnknownInteraction.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
const Interaction = require("./Interaction");
const Message = require("./Message");
const Member = require("./Member");
const User = require("./User");
const {InteractionResponseTypes} = require("../Constants");

/**
Expand Down Expand Up @@ -35,15 +34,21 @@ 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) {
this.message = new Message(info.message, this._client);
}

if(info.user !== undefined) {
this.user = new User(info.user, this._client);
this.user = this._client.users.update(info.user, client);
}

}
Expand Down

0 comments on commit 0160823

Please sign in to comment.