From 4b82bb9827e48daa71141db26925d3886830952c Mon Sep 17 00:00:00 2001 From: Tiago R Date: Wed, 27 Dec 2023 15:27:31 +0000 Subject: [PATCH] better error handling Signed-off-by: GitHub --- .../Mutes/events/ReapplyActiveMuteOnJoinEvt.ts | 11 +++++++++-- .../src/plugins/Mutes/functions/renewTimeoutMute.ts | 8 ++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/backend/src/plugins/Mutes/events/ReapplyActiveMuteOnJoinEvt.ts b/backend/src/plugins/Mutes/events/ReapplyActiveMuteOnJoinEvt.ts index 0b0ba34f..6db4f27c 100644 --- a/backend/src/plugins/Mutes/events/ReapplyActiveMuteOnJoinEvt.ts +++ b/backend/src/plugins/Mutes/events/ReapplyActiveMuteOnJoinEvt.ts @@ -13,6 +13,7 @@ export const ReapplyActiveMuteOnJoinEvt = mutesEvt({ event: "guildMemberAdd", async listener({ pluginData, args: { member } }) { const mute = await pluginData.state.mutes.findExistingMuteForUserId(member.id); + const logs = pluginData.getPlugin(LogsPlugin); if (!mute) { return; } @@ -26,11 +27,17 @@ export const ReapplyActiveMuteOnJoinEvt = mutesEvt({ if (!member.isCommunicationDisabled()) { const expiresAt = mute.expires_at ? moment.utc(mute.expires_at).valueOf() : null; const timeoutExpiresAt = getTimeoutExpiryTime(expiresAt); - await member.disableCommunicationUntil(timeoutExpiresAt).catch(noop); + if (member.moderatable) { + await member.disableCommunicationUntil(timeoutExpiresAt).catch(noop); + } else { + logs.logBotAlert({ + body: `Cannot mute user, specified user is not moderatable`, + }); + } } } - pluginData.getPlugin(LogsPlugin).logMemberMuteRejoin({ + logs.logMemberMuteRejoin({ member, }); }, diff --git a/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts b/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts index 63e31124..8363cf9f 100644 --- a/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts +++ b/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts @@ -4,6 +4,7 @@ import moment from "moment-timezone"; import { MAX_TIMEOUT_DURATION } from "../../../data/Mutes"; import { Mute } from "../../../data/entities/Mute"; import { DBDateFormat, noop, resolveMember } from "../../../utils"; +import { LogsPlugin } from "../../Logs/LogsPlugin.js"; import { MutesPluginType } from "../types"; export async function renewTimeoutMute(pluginData: GuildPluginData, mute: Mute) { @@ -24,6 +25,13 @@ export async function renewTimeoutMute(pluginData: GuildPluginData