/[sudobot]/trunk/src/commands/moderation/BanCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/moderation/BanCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 125 by rakin, Mon Jul 29 17:28:41 2024 UTC revision 197 by rakin, Mon Jul 29 17:28:59 2024 UTC
# Line 1  Line 1 
1  import { BanOptions, CommandInteraction, GuildMember, Interaction, Message, User } from 'discord.js';  import { Permissions, BanOptions, CommandInteraction, GuildMember, Interaction, Message, User } from 'discord.js';
2  import BaseCommand from '../../utils/structures/BaseCommand';  import BaseCommand from '../../utils/structures/BaseCommand';
3  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
4  import CommandOptions from '../../types/CommandOptions';  import CommandOptions from '../../types/CommandOptions';
# Line 8  import getUser from '../../utils/getUser Line 8  import getUser from '../../utils/getUser
8  import History from '../../automod/History';  import History from '../../automod/History';
9  import Punishment from '../../models/Punishment';  import Punishment from '../../models/Punishment';
10  import PunishmentType from '../../types/PunishmentType';  import PunishmentType from '../../types/PunishmentType';
11    import { shouldNotModerate, hasPermission } from '../../utils/util';
12    
13  export default class BanCommand extends BaseCommand {  export default class BanCommand extends BaseCommand {
14      supportsInteractions: boolean = true;      supportsInteractions: boolean = true;
15      supportsContextMenu: boolean = true;      supportsContextMenu: boolean = true;
16        permissions = [Permissions.FLAGS.BAN_MEMBERS];
17    
18      constructor() {      constructor() {
19          super('ban', 'moderation', ['Ban']);          super('ban', 'moderation', ['Ban']);
# Line 105  export default class BanCommand extends Line 107  export default class BanCommand extends
107              }              }
108          }          }
109    
110            try {
111                const member = await msg.guild?.members.fetch(user.id);
112    
113                if (member && !(await hasPermission(client, member, msg, null, "You don't have permission to ban this user."))) {
114                    return;
115                }
116    
117                if (member && shouldNotModerate(client, member)) {
118                    await msg.reply({
119                        embeds: [
120                            new MessageEmbed()
121                            .setColor('#f14a60')
122                            .setDescription('Cannot ban this user: Operation not permitted')    
123                        ]
124                    });
125                    
126                    return;
127                }
128            }
129            catch (e) {
130                console.log(e);
131            }
132            
133          try {          try {
134              await msg.guild?.bans.create(user, banOptions);              await msg.guild?.bans.create(user, banOptions);
135    
# Line 156  export default class BanCommand extends Line 181  export default class BanCommand extends
181              ]              ]
182          });          });
183      }      }
 }  
184    }

Legend:
Removed from v.125  
changed lines
  Added in v.197

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26