@@ -202,6 +202,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
202
202
value := e .StringSelectMenuInteractionData ().Values [0 ]
203
203
switch value {
204
204
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
+ }
205
211
if err = b .Client .Rest ().DeleteMessage (snowflake .MustParse (report .ChannelID ), snowflake .MustParse (report .MessageID ), rest .WithReason (reason )); err != nil {
206
212
b .Logger .Errorf ("Failed to delete message: %s" , err )
207
213
content = "Failed to delete message, please reach out to a bot developer."
@@ -252,6 +258,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
252
258
}
253
259
254
260
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
+ }
255
267
return e .CreateModal (discord.ModalCreate {
256
268
CustomID : fmt .Sprintf ("handler:report-action-confirm:timeout:%s" , report .UserID ),
257
269
Title : "Timeout User" ,
@@ -281,6 +293,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
281
293
})
282
294
283
295
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
+ }
284
302
return e .CreateModal (discord.ModalCreate {
285
303
CustomID : fmt .Sprintf ("handler:report-action-confirm:kick:%s" , report .UserID ),
286
304
Title : "Kick User" ,
@@ -299,6 +317,12 @@ func reportActionHandler(b *dbot.Bot) handler.ComponentHandler {
299
317
})
300
318
301
319
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
+ }
302
326
return e .CreateModal (discord.ModalCreate {
303
327
CustomID : fmt .Sprintf ("handler:report-action-confirm:ban:%s" , report .UserID ),
304
328
Title : "Ban User" ,
0 commit comments