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() { |
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 |
|
|