diff --git a/src/plugins/Logs.ts b/src/plugins/Logs.ts index 0cad062c..1a92590a 100644 --- a/src/plugins/Logs.ts +++ b/src/plugins/Logs.ts @@ -171,11 +171,17 @@ export class LogsPlugin extends ZeppelinPlugin { try { formatted = await renderTemplate(format, { ...data, - userMention: user => { + userMention: async user => { if (!user) return ""; - if (user.user) user = user.user; - const member = this.guild.members.get(user.id); + let member: Member; + if (user.user) { + member = user; + user = member.user; + } else { + member = await this.getMember(user.id); + } + const memberConfig = this.getMatchingConfig({ member, userId: user.id }); if (memberConfig.ping_user) { @@ -389,11 +395,11 @@ export class LogsPlugin extends ZeppelinPlugin { } @d.event("userUpdate") - onUserUpdate(user: User, oldUser: User) { + async onUserUpdate(user: User, oldUser: User) { if (!oldUser) return; if (user.username !== oldUser.username || user.discriminator !== oldUser.discriminator) { - const member = this.guild.members.get(user.id) || { id: user.id, user }; + const member = (await this.getMember(user.id)) || { id: user.id, user }; this.guildLogs.log(LogType.MEMBER_USERNAME_CHANGE, { member: stripObjectToScalars(member, ["user"]), oldName: `${oldUser.username}#${oldUser.discriminator}`, diff --git a/src/plugins/ModActions.ts b/src/plugins/ModActions.ts index 43fa266a..95b040b9 100644 --- a/src/plugins/ModActions.ts +++ b/src/plugins/ModActions.ts @@ -1079,7 +1079,7 @@ export class ModActionsPlugin extends ZeppelinPlugin { // Verify we can act on each of the users specified for (const userId of args.userIds) { - const member = this.guild.members.get(userId); + const member = this.guild.members.get(userId); // TODO: Get members on demand? if (member && !this.canActOn(msg.member, member)) { this.sendErrorMessage(msg.channel, "Cannot massban one or more users: insufficient permissions"); return; diff --git a/src/plugins/Mutes.ts b/src/plugins/Mutes.ts index 285248e3..d7f22df6 100644 --- a/src/plugins/Mutes.ts +++ b/src/plugins/Mutes.ts @@ -341,13 +341,7 @@ export class MutesPlugin extends ZeppelinPlugin { for (const [index, mute] of filteredMutes.entries()) { const muteWithDetails = { ...mute }; - let member = this.guild.members.get(mute.user_id); - if (!member) { - try { - member = await this.bot.getRESTGuildMember(this.guildId, mute.user_id); - this.guild.members.add(member); - } catch (e) {} // tslint:disable-line - } + const member = await this.getMember(mute.user_id); if (!member) { if (!bannedIds) { @@ -531,7 +525,7 @@ export class MutesPlugin extends ZeppelinPlugin { let cleared = 0; for (const mute of activeMutes) { - const member = this.guild.members.get(mute.user_id); + const member = await this.getMember(mute.user_id); if (!member) continue; if (!member.roles.includes(muteRole)) { @@ -559,7 +553,7 @@ export class MutesPlugin extends ZeppelinPlugin { protected async clearExpiredMutes() { const expiredMutes = await this.mutes.getExpiredMutes(); for (const mute of expiredMutes) { - const member = this.guild.members.get(mute.user_id); + const member = await this.getMember(mute.user_id); if (!member) continue; try { diff --git a/src/plugins/ReactionRoles.ts b/src/plugins/ReactionRoles.ts index 04cbd6e3..4a6f732f 100644 --- a/src/plugins/ReactionRoles.ts +++ b/src/plugins/ReactionRoles.ts @@ -162,7 +162,7 @@ export class ReactionRolesPlugin extends ZeppelinPlugin { - const member = await this.guild.members.get(memberId); + const member = await this.getMember(memberId); if (member) { const newRoleIds = new Set(member.roles); for (const change of newPendingRoleChangeObj.changes) { @@ -336,7 +336,7 @@ export class ReactionRolesPlugin extends ZeppelinPlugin { if (thisMsgLock.interrupted) return; // Make sure this user is affected by the slowmode - const member = this.guild.members.get(msg.user_id); + const member = await this.getMember(msg.user_id); const isAffected = this.hasPermission("is_affected", { channelId: channel.id, userId: msg.user_id, member }); if (!isAffected) return thisMsgLock.unlock(); diff --git a/src/plugins/Tags.ts b/src/plugins/Tags.ts index 36452d14..4ec08d9a 100644 --- a/src/plugins/Tags.ts +++ b/src/plugins/Tags.ts @@ -203,7 +203,7 @@ export class TagsPlugin extends ZeppelinPlugin { } async onMessageCreate(msg: SavedMessage) { - const member = this.guild.members.get(msg.user_id); + const member = await this.getMember(msg.user_id); if (!this.hasPermission("can_use", { member, channelId: msg.channel_id })) return; if (!msg.data.content) return;