diff --git a/backend/src/pluginUtils.ts b/backend/src/pluginUtils.ts index fe6c973f..0b87ca25 100644 --- a/backend/src/pluginUtils.ts +++ b/backend/src/pluginUtils.ts @@ -143,25 +143,32 @@ export function sendSuccessMessage( body: string, ): Promise { const emoji = pluginData.fullConfig.success_emoji || undefined; - return channel.createMessage(successMessage(body, emoji)).catch(err => { - logger.warn( - `Failed to send success message to ${channel.id} (${(channel as GuildTextableChannel).guild?.id}): ${err.code} ${ - err.message - }`, - ); - return undefined; - }); + return channel + .createMessage(successMessage(body, emoji)) // Force line break + .catch(err => { + const channelInfo = (channel as GuildTextableChannel).guild + ? `${channel.id} (${(channel as GuildTextableChannel).guild.id})` + : `${channel.id}`; + logger.warn(`Failed to send success message to ${channelInfo}): ${err.code} ${err.message}`); + return undefined; + }); } -export function sendErrorMessage(pluginData: AnyPluginData, channel, body) { +export function sendErrorMessage( + pluginData: AnyPluginData, + channel: TextableChannel, + body: string, +): Promise { const emoji = pluginData.fullConfig.error_emoji || undefined; - return channel.createMessage(errorMessage(body, emoji)).catch(err => { - logger.warn( - `Failed to send error message to ${channel.id} (${(channel as GuildTextableChannel).guild?.id}): ${err.code} ${ - err.message - }`, - ); - }); + return channel + .createMessage(errorMessage(body, emoji)) // Force line break + .catch(err => { + const channelInfo = (channel as GuildTextableChannel).guild + ? `${channel.id} (${(channel as GuildTextableChannel).guild.id})` + : `${channel.id}`; + logger.warn(`Failed to send error message to ${channelInfo}): ${err.code} ${err.message}`); + return undefined; + }); } export function getBaseUrl(pluginData: AnyPluginData) { diff --git a/backend/src/plugins/ModActions/commands/AddCaseCmd.ts b/backend/src/plugins/ModActions/commands/AddCaseCmd.ts index 9c965933..7bd06bf8 100644 --- a/backend/src/plugins/ModActions/commands/AddCaseCmd.ts +++ b/backend/src/plugins/ModActions/commands/AddCaseCmd.ts @@ -30,7 +30,8 @@ export const AddCaseCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } // If the user exists as a guild member, make sure we can act on them first diff --git a/backend/src/plugins/ModActions/commands/BanCmd.ts b/backend/src/plugins/ModActions/commands/BanCmd.ts index 4196aded..197a4672 100644 --- a/backend/src/plugins/ModActions/commands/BanCmd.ts +++ b/backend/src/plugins/ModActions/commands/BanCmd.ts @@ -34,7 +34,8 @@ export const BanCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToBan = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/ModActions/commands/CasesUserCmd.ts b/backend/src/plugins/ModActions/commands/CasesUserCmd.ts index 916ac3a2..12fdf125 100644 --- a/backend/src/plugins/ModActions/commands/CasesUserCmd.ts +++ b/backend/src/plugins/ModActions/commands/CasesUserCmd.ts @@ -37,7 +37,8 @@ export const CasesUserCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const cases = await pluginData.state.cases.with("notes").getByUserId(user.id); diff --git a/backend/src/plugins/ModActions/commands/ForcebanCmd.ts b/backend/src/plugins/ModActions/commands/ForcebanCmd.ts index c7f4e52c..d586cbf8 100644 --- a/backend/src/plugins/ModActions/commands/ForcebanCmd.ts +++ b/backend/src/plugins/ModActions/commands/ForcebanCmd.ts @@ -32,7 +32,8 @@ export const ForcebanCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } // If the user exists as a guild member, make sure we can act on them first diff --git a/backend/src/plugins/ModActions/commands/ForcemuteCmd.ts b/backend/src/plugins/ModActions/commands/ForcemuteCmd.ts index 7c3e68b5..af680374 100644 --- a/backend/src/plugins/ModActions/commands/ForcemuteCmd.ts +++ b/backend/src/plugins/ModActions/commands/ForcemuteCmd.ts @@ -34,7 +34,8 @@ export const ForcemuteCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToMute = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/ModActions/commands/ForceunmuteCmd.ts b/backend/src/plugins/ModActions/commands/ForceunmuteCmd.ts index 177676ab..e86a6408 100644 --- a/backend/src/plugins/ModActions/commands/ForceunmuteCmd.ts +++ b/backend/src/plugins/ModActions/commands/ForceunmuteCmd.ts @@ -32,7 +32,8 @@ export const ForceUnmuteCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } // Check if they're muted in the first place diff --git a/backend/src/plugins/ModActions/commands/MuteCmd.ts b/backend/src/plugins/ModActions/commands/MuteCmd.ts index 709dbbb7..ada23e2f 100644 --- a/backend/src/plugins/ModActions/commands/MuteCmd.ts +++ b/backend/src/plugins/ModActions/commands/MuteCmd.ts @@ -44,7 +44,8 @@ export const MuteCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToMute = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/ModActions/commands/NoteCmd.ts b/backend/src/plugins/ModActions/commands/NoteCmd.ts index 1c8b3478..5e203328 100644 --- a/backend/src/plugins/ModActions/commands/NoteCmd.ts +++ b/backend/src/plugins/ModActions/commands/NoteCmd.ts @@ -21,7 +21,8 @@ export const NoteCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const userName = `${user.username}#${user.discriminator}`; diff --git a/backend/src/plugins/ModActions/commands/UnbanCmd.ts b/backend/src/plugins/ModActions/commands/UnbanCmd.ts index 9db1f85d..07a3edf8 100644 --- a/backend/src/plugins/ModActions/commands/UnbanCmd.ts +++ b/backend/src/plugins/ModActions/commands/UnbanCmd.ts @@ -29,7 +29,8 @@ export const UnbanCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } // The moderator who did the action is the message author or, if used, the specified -mod diff --git a/backend/src/plugins/ModActions/commands/UnmuteCmd.ts b/backend/src/plugins/ModActions/commands/UnmuteCmd.ts index eac1bdb8..f6efdd39 100644 --- a/backend/src/plugins/ModActions/commands/UnmuteCmd.ts +++ b/backend/src/plugins/ModActions/commands/UnmuteCmd.ts @@ -34,7 +34,8 @@ export const UnmuteCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToUnmute = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/ModActions/commands/WarnCmd.ts b/backend/src/plugins/ModActions/commands/WarnCmd.ts index 0329103b..617b0f05 100644 --- a/backend/src/plugins/ModActions/commands/WarnCmd.ts +++ b/backend/src/plugins/ModActions/commands/WarnCmd.ts @@ -30,7 +30,8 @@ export const WarnCmd = modActionsCmd({ async run({ pluginData, message: msg, args }) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToWarn = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts b/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts index 1df90eef..18ee2137 100644 --- a/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts +++ b/backend/src/plugins/ModActions/functions/actualKickMemberCmd.ts @@ -25,7 +25,8 @@ export async function actualKickMemberCmd( ) { const user = await resolveUser(pluginData.client, args.user); if (!user.id) { - return sendErrorMessage(pluginData, msg.channel, `User not found`); + sendErrorMessage(pluginData, msg.channel, `User not found`); + return; } const memberToKick = await resolveMember(pluginData.client, pluginData.guild, user.id); diff --git a/backend/src/plugins/NameHistory/commands/NamesCmd.ts b/backend/src/plugins/NameHistory/commands/NamesCmd.ts index dfb1f3cb..78456820 100644 --- a/backend/src/plugins/NameHistory/commands/NamesCmd.ts +++ b/backend/src/plugins/NameHistory/commands/NamesCmd.ts @@ -20,7 +20,8 @@ export const NamesCmd = nameHistoryCmd({ const usernames = await pluginData.state.usernameHistory.getByUserId(args.userId); if (nicknames.length === 0 && usernames.length === 0) { - return sendErrorMessage(pluginData, msg.channel, "No name history found"); + sendErrorMessage(pluginData, msg.channel, "No name history found"); + return; } const nicknameRows = nicknames.map( diff --git a/backend/src/plugins/Post/commands/SchedluedPostsDeleteCmd.ts b/backend/src/plugins/Post/commands/SchedluedPostsDeleteCmd.ts index cc5222ec..98810fc1 100644 --- a/backend/src/plugins/Post/commands/SchedluedPostsDeleteCmd.ts +++ b/backend/src/plugins/Post/commands/SchedluedPostsDeleteCmd.ts @@ -16,7 +16,8 @@ export const ScheduledPostsDeleteCmd = postCmd({ scheduledPosts.sort(sorter("post_at")); const post = scheduledPosts[args.num - 1]; if (!post) { - return sendErrorMessage(pluginData, msg.channel, "Scheduled post not found"); + sendErrorMessage(pluginData, msg.channel, "Scheduled post not found"); + return; } await pluginData.state.scheduledPosts.delete(post.id); diff --git a/backend/src/plugins/Post/commands/ScheduledPostsShowCmd.ts b/backend/src/plugins/Post/commands/ScheduledPostsShowCmd.ts index 0e76f134..25ecdede 100644 --- a/backend/src/plugins/Post/commands/ScheduledPostsShowCmd.ts +++ b/backend/src/plugins/Post/commands/ScheduledPostsShowCmd.ts @@ -18,7 +18,8 @@ export const ScheduledPostsShowCmd = postCmd({ scheduledPosts.sort(sorter("post_at")); const post = scheduledPosts[args.num - 1]; if (!post) { - return sendErrorMessage(pluginData, msg.channel, "Scheduled post not found"); + sendErrorMessage(pluginData, msg.channel, "Scheduled post not found"); + return; } postMessage(pluginData, msg.channel as TextChannel, post.content, post.attachments, post.enable_mentions); diff --git a/backend/src/plugins/Post/util/actualPostCmd.ts b/backend/src/plugins/Post/util/actualPostCmd.ts index 5c74aa7f..b8c8cbc8 100644 --- a/backend/src/plugins/Post/util/actualPostCmd.ts +++ b/backend/src/plugins/Post/util/actualPostCmd.ts @@ -39,14 +39,12 @@ export async function actualPostCmd( if (opts.repeat) { if (opts.repeat < MIN_REPEAT_TIME) { - return sendErrorMessage( - pluginData, - msg.channel, - `Minimum time for -repeat is ${humanizeDuration(MIN_REPEAT_TIME)}`, - ); + sendErrorMessage(pluginData, msg.channel, `Minimum time for -repeat is ${humanizeDuration(MIN_REPEAT_TIME)}`); + return; } if (opts.repeat > MAX_REPEAT_TIME) { - return sendErrorMessage(pluginData, msg.channel, `Max time for -repeat is ${humanizeDuration(MAX_REPEAT_TIME)}`); + sendErrorMessage(pluginData, msg.channel, `Max time for -repeat is ${humanizeDuration(MAX_REPEAT_TIME)}`); + return; } } @@ -56,7 +54,8 @@ export async function actualPostCmd( // Schedule the post to be posted later postAt = await parseScheduleTime(pluginData, msg.author.id, opts.schedule); if (!postAt) { - return sendErrorMessage(pluginData, msg.channel, "Invalid schedule time"); + sendErrorMessage(pluginData, msg.channel, "Invalid schedule time"); + return; } } else if (opts.repeat) { postAt = moment.utc().add(opts.repeat, "ms"); @@ -72,35 +71,37 @@ export async function actualPostCmd( // Invalid time if (!repeatUntil) { - return sendErrorMessage(pluginData, msg.channel, "Invalid time specified for -repeat-until"); + sendErrorMessage(pluginData, msg.channel, "Invalid time specified for -repeat-until"); + return; } if (repeatUntil.isBefore(moment.utc())) { - return sendErrorMessage(pluginData, msg.channel, "You can't set -repeat-until in the past"); + sendErrorMessage(pluginData, msg.channel, "You can't set -repeat-until in the past"); + return; } if (repeatUntil.isAfter(MAX_REPEAT_UNTIL)) { - return sendErrorMessage( + sendErrorMessage( pluginData, msg.channel, "Unfortunately, -repeat-until can only be at most 100 years into the future. Maybe 99 years would be enough?", ); + return; } } else if (opts["repeat-times"]) { repeatTimes = opts["repeat-times"]; if (repeatTimes <= 0) { - return sendErrorMessage(pluginData, msg.channel, "-repeat-times must be 1 or more"); + sendErrorMessage(pluginData, msg.channel, "-repeat-times must be 1 or more"); + return; } } if (repeatUntil && repeatTimes) { - return sendErrorMessage(pluginData, msg.channel, "You can only use one of -repeat-until or -repeat-times at once"); + sendErrorMessage(pluginData, msg.channel, "You can only use one of -repeat-until or -repeat-times at once"); + return; } if (opts.repeat && !repeatUntil && !repeatTimes) { - return sendErrorMessage( - pluginData, - msg.channel, - "You must specify -repeat-until or -repeat-times for repeated messages", - ); + sendErrorMessage(pluginData, msg.channel, "You must specify -repeat-until or -repeat-times for repeated messages"); + return; } if (opts.repeat) { @@ -114,7 +115,8 @@ export async function actualPostCmd( // Save schedule/repeat information in DB if (postAt) { if (postAt < moment.utc()) { - return sendErrorMessage(pluginData, msg.channel, "Post can't be scheduled to be posted in the past"); + sendErrorMessage(pluginData, msg.channel, "Post can't be scheduled to be posted in the past"); + return; } await pluginData.state.scheduledPosts.create({ diff --git a/backend/src/plugins/Roles/commands/AddRoleCmd.ts b/backend/src/plugins/Roles/commands/AddRoleCmd.ts index a17042c9..20395f27 100644 --- a/backend/src/plugins/Roles/commands/AddRoleCmd.ts +++ b/backend/src/plugins/Roles/commands/AddRoleCmd.ts @@ -17,17 +17,20 @@ export const AddRoleCmd = rolesCmd({ async run({ message: msg, args, pluginData }) { if (!canActOn(pluginData, msg.member, args.member, true)) { - return sendErrorMessage(pluginData, msg.channel, "Cannot add roles to this user: insufficient permissions"); + sendErrorMessage(pluginData, msg.channel, "Cannot add roles to this user: insufficient permissions"); + return; } const roleId = await resolveRoleId(pluginData.client, pluginData.guild.id, args.role); if (!roleId) { - return sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + return; } const config = pluginData.config.getForMessage(msg); if (!config.assignable_roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + return; } // Sanity check: make sure the role is configured properly @@ -36,11 +39,13 @@ export const AddRoleCmd = rolesCmd({ pluginData.state.logs.log(LogType.BOT_ALERT, { body: `Unknown role configured for 'roles' plugin: ${roleId}`, }); - return sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + return; } if (args.member.roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "Member already has that role"); + sendErrorMessage(pluginData, msg.channel, "Member already has that role"); + return; } pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_ADD, args.member.id); diff --git a/backend/src/plugins/Roles/commands/MassAddRoleCmd.ts b/backend/src/plugins/Roles/commands/MassAddRoleCmd.ts index 4f0f458c..b2e3000f 100644 --- a/backend/src/plugins/Roles/commands/MassAddRoleCmd.ts +++ b/backend/src/plugins/Roles/commands/MassAddRoleCmd.ts @@ -28,22 +28,25 @@ export const MassAddRoleCmd = rolesCmd({ for (const member of members) { if (!canActOn(pluginData, msg.member, member, true)) { - return sendErrorMessage( + sendErrorMessage( pluginData, msg.channel, "Cannot add roles to 1 or more specified members: insufficient permissions", ); + return; } } const roleId = await resolveRoleId(pluginData.client, pluginData.guild.id, args.role); if (!roleId) { - return sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + return; } const config = pluginData.config.getForMessage(msg); if (!config.assignable_roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + return; } const role = pluginData.guild.roles.get(roleId); @@ -51,7 +54,8 @@ export const MassAddRoleCmd = rolesCmd({ pluginData.state.logs.log(LogType.BOT_ALERT, { body: `Unknown role configured for 'roles' plugin: ${roleId}`, }); - return sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot assign that role"); + return; } const membersWithoutTheRole = members.filter(m => !m.roles.includes(roleId)); diff --git a/backend/src/plugins/Roles/commands/MassRemoveRoleCmd.ts b/backend/src/plugins/Roles/commands/MassRemoveRoleCmd.ts index 593e4c07..966f2e4a 100644 --- a/backend/src/plugins/Roles/commands/MassRemoveRoleCmd.ts +++ b/backend/src/plugins/Roles/commands/MassRemoveRoleCmd.ts @@ -28,22 +28,25 @@ export const MassRemoveRoleCmd = rolesCmd({ for (const member of members) { if (!canActOn(pluginData, msg.member, member, true)) { - return sendErrorMessage( + sendErrorMessage( pluginData, msg.channel, "Cannot add roles to 1 or more specified members: insufficient permissions", ); + return; } } const roleId = await resolveRoleId(pluginData.client, pluginData.guild.id, args.role); if (!roleId) { - return sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + return; } const config = pluginData.config.getForMessage(msg); if (!config.assignable_roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + return; } const role = pluginData.guild.roles.get(roleId); @@ -51,7 +54,8 @@ export const MassRemoveRoleCmd = rolesCmd({ pluginData.state.logs.log(LogType.BOT_ALERT, { body: `Unknown role configured for 'roles' plugin: ${roleId}`, }); - return sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + return; } const membersWithTheRole = members.filter(m => m.roles.includes(roleId)); diff --git a/backend/src/plugins/Roles/commands/RemoveRoleCmd.ts b/backend/src/plugins/Roles/commands/RemoveRoleCmd.ts index f3af983b..d078e1f6 100644 --- a/backend/src/plugins/Roles/commands/RemoveRoleCmd.ts +++ b/backend/src/plugins/Roles/commands/RemoveRoleCmd.ts @@ -17,17 +17,20 @@ export const RemoveRoleCmd = rolesCmd({ async run({ message: msg, args, pluginData }) { if (!canActOn(pluginData, msg.member, args.member, true)) { - return sendErrorMessage(pluginData, msg.channel, "Cannot remove roles from this user: insufficient permissions"); + sendErrorMessage(pluginData, msg.channel, "Cannot remove roles from this user: insufficient permissions"); + return; } const roleId = await resolveRoleId(pluginData.client, pluginData.guild.id, args.role); if (!roleId) { - return sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + sendErrorMessage(pluginData, msg.channel, "Invalid role id"); + return; } const config = pluginData.config.getForMessage(msg); if (!config.assignable_roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + return; } // Sanity check: make sure the role is configured properly @@ -36,11 +39,13 @@ export const RemoveRoleCmd = rolesCmd({ pluginData.state.logs.log(LogType.BOT_ALERT, { body: `Unknown role configured for 'roles' plugin: ${roleId}`, }); - return sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + sendErrorMessage(pluginData, msg.channel, "You cannot remove that role"); + return; } if (!args.member.roles.includes(roleId)) { - return sendErrorMessage(pluginData, msg.channel, "Member doesn't have that role"); + sendErrorMessage(pluginData, msg.channel, "Member doesn't have that role"); + return; } pluginData.state.logs.ignoreLog(LogType.MEMBER_ROLE_REMOVE, args.member.id); diff --git a/backend/src/plugins/Slowmode/commands/SlowmodeSetCmd.ts b/backend/src/plugins/Slowmode/commands/SlowmodeSetCmd.ts index 1da1dc29..f237bc97 100644 --- a/backend/src/plugins/Slowmode/commands/SlowmodeSetCmd.ts +++ b/backend/src/plugins/Slowmode/commands/SlowmodeSetCmd.ts @@ -126,11 +126,8 @@ export const SlowmodeSetCmd = slowmodeCmd({ rateLimitPerUser: rateLimitSeconds, }); } catch (e) { - return sendErrorMessage( - pluginData, - msg.channel, - `Failed to set native slowmode: ${disableInlineCode(e.message)}`, - ); + sendErrorMessage(pluginData, msg.channel, `Failed to set native slowmode: ${disableInlineCode(e.message)}`); + return; } } else { // If there is an existing native slowmode, disable that first diff --git a/backend/src/plugins/Utility/search.ts b/backend/src/plugins/Utility/search.ts index ca3829dd..c369e7ba 100644 --- a/backend/src/plugins/Utility/search.ts +++ b/backend/src/plugins/Utility/search.ts @@ -83,18 +83,21 @@ export async function displaySearch( } } catch (e) { if (e instanceof SearchError) { - return sendErrorMessage(pluginData, msg.channel, e.message); + sendErrorMessage(pluginData, msg.channel, e.message); + return; } if (e instanceof InvalidRegexError) { - return sendErrorMessage(pluginData, msg.channel, e.message); + sendErrorMessage(pluginData, msg.channel, e.message); + return; } throw e; } if (searchResult.totalResults === 0) { - return sendErrorMessage(pluginData, msg.channel, "No results found"); + sendErrorMessage(pluginData, msg.channel, "No results found"); + return; } const resultWord = searchResult.totalResults === 1 ? "matching member" : "matching members"; @@ -203,18 +206,21 @@ export async function archiveSearch( } } catch (e) { if (e instanceof SearchError) { - return sendErrorMessage(pluginData, msg.channel, e.message); + sendErrorMessage(pluginData, msg.channel, e.message); + return; } if (e instanceof InvalidRegexError) { - return sendErrorMessage(pluginData, msg.channel, e.message); + sendErrorMessage(pluginData, msg.channel, e.message); + return; } throw e; } if (results.totalResults === 0) { - return sendErrorMessage(pluginData, msg.channel, "No results found"); + sendErrorMessage(pluginData, msg.channel, "No results found"); + return; } const resultList = args.ids ? formatSearchResultIdList(results.results) : formatSearchResultList(results.results);