diff --git a/backend/src/plugins/Mutes/functions/muteUser.ts b/backend/src/plugins/Mutes/functions/muteUser.ts index 0dc425d4..4d07a8d9 100644 --- a/backend/src/plugins/Mutes/functions/muteUser.ts +++ b/backend/src/plugins/Mutes/functions/muteUser.ts @@ -47,7 +47,7 @@ export async function muteUser( throw new RecoverablePluginError(ERRORS.INVALID_USER); } - const member = await resolveMember(pluginData.client, pluginData.guild, user.id); // Grab the fresh member so we don't have stale role info + const member = await resolveMember(pluginData.client, pluginData.guild, user.id, true); // Grab the fresh member so we don't have stale role info const config = pluginData.config.getMatchingConfig({ member, userId }); if (member) { diff --git a/backend/src/utils.ts b/backend/src/utils.ts index 30b376f3..fb7c3c7d 100644 --- a/backend/src/utils.ts +++ b/backend/src/utils.ts @@ -1088,12 +1088,12 @@ export async function resolveUser(bot, value) { * Resolves a guild Member from the passed user id, user mention, or full username (with discriminator). * If the member is not found in the cache, it's fetched from the API. */ -export async function resolveMember(bot: Client, guild: Guild, value: string): Promise { +export async function resolveMember(bot: Client, guild: Guild, value: string, fresh = false): Promise { const userId = resolveUserId(bot, value); if (!userId) return null; // If we have the member cached, return that directly - if (guild.members.has(userId)) { + if (guild.members.has(userId) && !fresh) { return guild.members.get(userId) || null; }