/[sudobot]/trunk/src/events/guildMember/GuildMemberRemoveEvent.ts
ViewVC logotype

Diff of /trunk/src/events/guildMember/GuildMemberRemoveEvent.ts

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

revision 213 by rakin, Mon Jul 29 17:29:02 2024 UTC revision 214 by rakin, Mon Jul 29 17:29:03 2024 UTC
# Line 2  import BaseEvent from '../../utils/struc Line 2  import BaseEvent from '../../utils/struc
2  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
3  import { GuildMember } from 'discord.js';  import { GuildMember } from 'discord.js';
4  import UnverifiedMember from '../../models/UnverifiedMember';  import UnverifiedMember from '../../models/UnverifiedMember';
5    import Punishment from '../../models/Punishment';
6    import PunishmentType from '../../types/PunishmentType';
7    import MessageEmbed from '../../client/MessageEmbed';
8    
9  export default class GuildMemberRemoveEvent extends BaseEvent {  export default class GuildMemberRemoveEvent extends BaseEvent {
10      constructor() {      constructor() {
# Line 16  export default class GuildMemberRemoveEv Line 19  export default class GuildMemberRemoveEv
19    
20          if (member.user.bot)          if (member.user.bot)
21              return;              return;
22    
23            const logs = (await member.guild.fetchAuditLogs({
24                limit: 1,
25                type: 'MEMBER_KICK',
26            })).entries.first();
27    
28            if (logs && logs.target?.id === member.id) {
29                console.log(logs?.executor);
30    
31                await Punishment.create({
32                    type: PunishmentType.KICK,
33                    user_id: member.user.id,
34                    guild_id: member.guild!.id,
35                    mod_id: logs?.executor?.id ?? client.user!.id,
36                    mod_tag: logs?.executor?.tag ?? 'Unknown',
37                    reason: logs.reason ?? undefined
38                });
39    
40                client.logger.log(member.guild, async channel => {
41                    await channel.send({
42                        embeds: [
43                            new MessageEmbed({
44                                author: {
45                                    name: member.user.tag,
46                                    iconURL: member.user.displayAvatarURL(),
47                                },
48                                title: 'Member Kicked',
49                                description: 'This user has left the server, probably due to a kick.',
50                                fields: [
51                                    {
52                                        name: 'Kicked by',
53                                        value: logs?.executor?.tag ?? 'Unknown'
54                                    },
55                                    {
56                                        name: 'Reason',
57                                        value: logs?.reason ?? '*No reason provided*'
58                                    }
59                                ],
60                                footer: {
61                                    text: 'Kicked'
62                                }
63                            })
64                            .setTimestamp()
65                        ]
66                    });
67                });
68            }
69                    
70          await client.autoClear.start(member, member.guild);          await client.autoClear.start(member, member.guild);
71    

Legend:
Removed from v.213  
changed lines
  Added in v.214

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26