@@ -202,6 +202,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
202202 value := e .StringSelectMenuInteractionData ().Values [0 ]
203203 switch value {
204204 case "delete-message" :
205+ if e .Member ().Permissions .Missing (discord .PermissionManageMessages ) {
206+ return e .CreateMessage (discord.MessageCreate {
207+ Content : "You need the `Manage Messages` permission to use this action." ,
208+ Flags : discord .MessageFlagEphemeral ,
209+ })
210+ }
205211 if err = b .Client .Rest ().DeleteMessage (snowflake .MustParse (report .ChannelID ), snowflake .MustParse (report .MessageID ), rest .WithReason (reason )); err != nil {
206212 b .Logger .Errorf ("Failed to delete message: %s" , err )
207213 content = "Failed to delete message, please reach out to a bot developer."
@@ -252,6 +258,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
252258 }
253259
254260 case "timeout" :
261+ if e .Member ().Permissions .Missing (discord .PermissionModerateMembers ) {
262+ return e .CreateMessage (discord.MessageCreate {
263+ Content : "You need the `Moderate Members` permission to use this action." ,
264+ Flags : discord .MessageFlagEphemeral ,
265+ })
266+ }
255267 return e .CreateModal (discord.ModalCreate {
256268 CustomID : fmt .Sprintf ("handler:report-action-confirm:timeout:%s" , report .UserID ),
257269 Title : "Timeout User" ,
@@ -281,6 +293,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
281293 })
282294
283295 case "kick" :
296+ if e .Member ().Permissions .Missing (discord .PermissionKickMembers ) {
297+ return e .CreateMessage (discord.MessageCreate {
298+ Content : "You need the `Kick Members` permission to use this action." ,
299+ Flags : discord .MessageFlagEphemeral ,
300+ })
301+ }
284302 return e .CreateModal (discord.ModalCreate {
285303 CustomID : fmt .Sprintf ("handler:report-action-confirm:kick:%s" , report .UserID ),
286304 Title : "Kick User" ,
@@ -299,6 +317,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
299317 })
300318
301319 case "ban" :
320+ if e .Member ().Permissions .Missing (discord .PermissionBanMembers ) {
321+ return e .CreateMessage (discord.MessageCreate {
322+ Content : "You need the `Ban Members` permission to use this action." ,
323+ Flags : discord .MessageFlagEphemeral ,
324+ })
325+ }
302326 return e .CreateModal (discord.ModalCreate {
303327 CustomID : fmt .Sprintf ("handler:report-action-confirm:ban:%s" , report .UserID ),
304328 Title : "Ban User" ,
0 commit comments