From 434c1543ff453c5807bde6116e65e8be6d9536f8 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Thu, 6 Apr 2023 08:31:15 +0300 Subject: [PATCH] fix: permission check before renewing timeouts --- backend/src/plugins/Mutes/functions/renewTimeoutMute.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts b/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts index 71637829..7ada6bba 100644 --- a/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts +++ b/backend/src/plugins/Mutes/functions/renewTimeoutMute.ts @@ -1,3 +1,4 @@ +import { PermissionFlagsBits } from "discord.js"; import { GuildPluginData } from "knub"; import moment from "moment-timezone"; import { Mute } from "../../../data/entities/Mute"; @@ -6,6 +7,12 @@ import { DBDateFormat, resolveMember } from "../../../utils"; import { MutesPluginType } from "../types"; export async function renewTimeoutMute(pluginData: GuildPluginData, mute: Mute) { + const me = + pluginData.client.user && (await resolveMember(pluginData.client, pluginData.guild, pluginData.client.user.id)); + if (!me || !me.permissions.has(PermissionFlagsBits.ModerateMembers)) { + return; + } + const member = await resolveMember(pluginData.client, pluginData.guild, mute.user_id, true); if (!member) { return;