diff --git a/backend/src/plugins/Common/CommonPlugin.ts b/backend/src/plugins/Common/CommonPlugin.ts index 62ee3628..7f9c2204 100644 --- a/backend/src/plugins/Common/CommonPlugin.ts +++ b/backend/src/plugins/Common/CommonPlugin.ts @@ -76,7 +76,7 @@ export const CommonPlugin = zeppelinGuildPlugin()({ }); } - const replyMethod = context.replied ? "followUp" : "reply"; + const replyMethod = context.replied ? "editReply" : "reply"; return context[replyMethod]({ content: formattedBody, @@ -127,7 +127,7 @@ export const CommonPlugin = zeppelinGuildPlugin()({ }); } - const replyMethod = context.replied ? "followUp" : "reply"; + const replyMethod = context.replied ? "editReply" : "reply"; return context[replyMethod]({ content: formattedBody, diff --git a/backend/src/plugins/ModActions/commands/forcemute/ForceMuteSlashCmd.ts b/backend/src/plugins/ModActions/commands/forcemute/ForceMuteSlashCmd.ts index 6d6c2fb9..a306fc4a 100644 --- a/backend/src/plugins/ModActions/commands/forcemute/ForceMuteSlashCmd.ts +++ b/backend/src/plugins/ModActions/commands/forcemute/ForceMuteSlashCmd.ts @@ -71,7 +71,7 @@ export const ForceMuteSlashCmd = { ppId = interaction.user.id; } - const convertedTime = options.time ? convertDelayStringToMS(options.time) : null; + const convertedTime = options.time ? convertDelayStringToMS(options.time) ?? undefined : undefined; if (options.time && !convertedTime) { pluginData.getPlugin(CommonPlugin).sendErrorMessage(interaction, `Could not convert ${options.time} to a delay`); return; @@ -92,7 +92,7 @@ export const ForceMuteSlashCmd = { attachments, mod, ppId, - options.time, + convertedTime, options.reason, contactMethods, ); diff --git a/backend/src/plugins/ModActions/commands/forceunmute/ForceUnmuteSlashCmd.ts b/backend/src/plugins/ModActions/commands/forceunmute/ForceUnmuteSlashCmd.ts index 3c68a64e..6bf6ca90 100644 --- a/backend/src/plugins/ModActions/commands/forceunmute/ForceUnmuteSlashCmd.ts +++ b/backend/src/plugins/ModActions/commands/forceunmute/ForceUnmuteSlashCmd.ts @@ -54,12 +54,12 @@ export const ForceUnmuteSlashCmd = { ppId = interaction.user.id; } - const convertedTime = options.time ? convertDelayStringToMS(options.time) : null; + const convertedTime = options.time ? convertDelayStringToMS(options.time) ?? undefined : undefined; if (options.time && !convertedTime) { pluginData.getPlugin(CommonPlugin).sendErrorMessage(interaction, `Could not convert ${options.time} to a delay`); return; } - actualUnmuteCmd(pluginData, interaction, options.user, attachments, mod, ppId, options.time, options.reason); + actualUnmuteCmd(pluginData, interaction, options.user, attachments, mod, ppId, convertedTime, options.reason); }, }; diff --git a/backend/src/plugins/ModActions/commands/mute/MuteSlashCmd.ts b/backend/src/plugins/ModActions/commands/mute/MuteSlashCmd.ts index c84ce9ef..b3fb3f01 100644 --- a/backend/src/plugins/ModActions/commands/mute/MuteSlashCmd.ts +++ b/backend/src/plugins/ModActions/commands/mute/MuteSlashCmd.ts @@ -45,15 +45,6 @@ export const MuteSlashCmd = { async run({ interaction, options, pluginData }) { const attachments = retrieveMultipleOptions(NUMBER_ATTACHMENTS_CASE_CREATION, options, "attachment"); - - if ((!options.reason || options.reason.trim() === "") && attachments.length < 1) { - pluginData - .getPlugin(CommonPlugin) - .sendErrorMessage(interaction, "Text or attachment required", undefined, undefined, true); - - return; - } - const memberToMute = await resolveMember(pluginData.client, pluginData.guild, options.user.id); if (!memberToMute) { @@ -106,7 +97,7 @@ export const MuteSlashCmd = { ppId = interaction.user.id; } - const convertedTime = options.time ? convertDelayStringToMS(options.time) : null; + const convertedTime = options.time ? convertDelayStringToMS(options.time) ?? undefined : undefined; if (options.time && !convertedTime) { pluginData.getPlugin(CommonPlugin).sendErrorMessage(interaction, `Could not convert ${options.time} to a delay`); return; @@ -127,7 +118,7 @@ export const MuteSlashCmd = { attachments, mod, ppId, - options.time, + convertedTime, options.reason, contactMethods, ); diff --git a/backend/src/plugins/ModActions/commands/unmute/UnmuteSlashCmd.ts b/backend/src/plugins/ModActions/commands/unmute/UnmuteSlashCmd.ts index 97163b2b..5186e86b 100644 --- a/backend/src/plugins/ModActions/commands/unmute/UnmuteSlashCmd.ts +++ b/backend/src/plugins/ModActions/commands/unmute/UnmuteSlashCmd.ts @@ -102,12 +102,12 @@ export const UnmuteSlashCmd = { ppId = interaction.user.id; } - const convertedTime = options.time ? convertDelayStringToMS(options.time) : null; + const convertedTime = options.time ? convertDelayStringToMS(options.time) ?? undefined : undefined; if (options.time && !convertedTime) { pluginData.getPlugin(CommonPlugin).sendErrorMessage(interaction, `Could not convert ${options.time} to a delay`); return; } - actualUnmuteCmd(pluginData, interaction, options.user, attachments, mod, ppId, options.time, options.reason); + actualUnmuteCmd(pluginData, interaction, options.user, attachments, mod, ppId, convertedTime, options.reason); }, }; diff --git a/backend/src/utils/waitForInteraction.ts b/backend/src/utils/waitForInteraction.ts index 0cdd0437..59054d72 100644 --- a/backend/src/utils/waitForInteraction.ts +++ b/backend/src/utils/waitForInteraction.ts @@ -36,14 +36,14 @@ export async function waitForButtonConfirm( const sendMethod = () => { return contextIsInteraction ? context.replied - ? context.followUp.bind(context) + ? context.editReply.bind(context) : context.reply.bind(context) : "send" in context ? context.send.bind(context) : context.channel.send.bind(context.channel); }; - const extraParameters = contextIsInteraction ? { fetchReply: true } : {}; - const message = await sendMethod()({ ...toPost, components: [row], ...extraParameters }); + const extraParameters = contextIsInteraction ? { fetchReply: true, ephemeral: true } : {}; + const message = (await sendMethod()({ ...toPost, components: [row], ...extraParameters })) as Message; const collector = message.createMessageComponentCollector({ time: 10000 }); @@ -55,16 +55,16 @@ export async function waitForButtonConfirm( .catch((err) => console.trace(err.message)); } else { if (interaction.customId.startsWith(`confirmButton:${idMod}:`)) { - message.delete(); + if (!contextIsInteraction) message.delete(); resolve(true); } else if (interaction.customId.startsWith(`cancelButton:${idMod}:`)) { - message.delete(); + if (!contextIsInteraction) message.delete(); resolve(false); } } }); collector.on("end", () => { - if (message.deletable) message.delete().catch(noop); + if (!contextIsInteraction && message.deletable) message.delete().catch(noop); resolve(false); }); });