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

Diff of /trunk/src/commands/moderation/KickCommand.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 336 by rakin, Mon Jul 29 17:29:36 2024 UTC
# Line 1  Line 1 
1  import { BanOptions, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, Message, User } from 'discord.js';  import { BanOptions, CommandInteraction, ContextMenuInteraction, GuildMember, Interaction, Message, Permissions, 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 9  import getMember from '../../utils/getMe Line 9  import getMember from '../../utils/getMe
9  import History from '../../automod/History';  import History from '../../automod/History';
10  import Punishment from '../../models/Punishment';  import Punishment from '../../models/Punishment';
11  import PunishmentType from '../../types/PunishmentType';  import PunishmentType from '../../types/PunishmentType';
12    import { hasPermission, shouldNotModerate } from '../../utils/util';
13    
14  export default class KickCommand extends BaseCommand {  export default class KickCommand extends BaseCommand {
15      supportsInteractions: boolean = true;      supportsInteractions: boolean = true;
16      supportsContextMenu: boolean = true;      supportsContextMenu: boolean = true;
17        
18        permissions = [Permissions.FLAGS.KICK_MEMBERS];
19    
20      constructor() {      constructor() {
21          super('kick', 'moderation', ['Kick']);          super('kick', 'moderation', ['Kick']);
# Line 85  export default class KickCommand extends Line 88  export default class KickCommand extends
88          }          }
89    
90          try {          try {
91              if (!user.kickable)              if (!(await hasPermission(client, user, msg, null, "You don't have permission to kick this user."))) {
92                    return;
93                }
94                
95                if (!user.kickable || shouldNotModerate(client, user))
96                  throw new Error('User not kickable');                  throw new Error('User not kickable');
97                            
98              await user.kick(reason);              await user.kick(reason);
# Line 96  export default class KickCommand extends Line 103  export default class KickCommand extends
103                  guild_id: msg.guild!.id,                  guild_id: msg.guild!.id,
104                  mod_id: msg.member!.user.id,                  mod_id: msg.member!.user.id,
105                  mod_tag: (msg.member!.user as User).tag,                  mod_tag: (msg.member!.user as User).tag,
106                  reason                  reason,
107                    createdAt: new Date()
108              });              });
109    
110              await History.create(user.id, msg.guild!, 'kick', msg.member!.user.id, typeof reason === 'undefined' ? null : reason);              // await History.create(user.id, msg.guild!, 'kick', msg.member!.user.id, typeof reason === 'undefined' ? null : reason);
111          }          }
112          catch (e) {          catch (e) {
113              await msg.reply({              await msg.reply({
# Line 134  export default class KickCommand extends Line 142  export default class KickCommand extends
142              ]              ]
143          });          });
144      }      }
 }  
145    }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26