/[sudobot]/branches/4.x/src/events/guildBan/GuildBanRemoveEvent.ts
ViewVC logotype

Annotation of /branches/4.x/src/events/guildBan/GuildBanRemoveEvent.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 577 - (hide annotations)
Mon Jul 29 18:52:37 2024 UTC (8 months ago) by rakinar2
File MIME type: application/typescript
File size: 2092 byte(s)
chore: add old version archive branches (2.x to 9.x-dev)
1 rakinar2 577 /**
2     * This file is part of SudoBot.
3     *
4     * Copyright (C) 2021-2022 OSN Inc.
5     *
6     * SudoBot is free software; you can redistribute it and/or modify it
7     * under the terms of the GNU Affero General Public License as published by
8     * the Free Software Foundation, either version 3 of the License, or
9     * (at your option) any later version.
10     *
11     * SudoBot is distributed in the hope that it will be useful, but
12     * WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU Affero General Public License for more details.
15     *
16     * You should have received a copy of the GNU Affero General Public License
17     * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18     */
19    
20     import BaseEvent from '../../utils/structures/BaseEvent';
21     import DiscordClient from '../../client/Client';
22     import { GuildBan } from 'discord.js';
23     import Punishment from '../../models/Punishment';
24     import PunishmentType from '../../types/PunishmentType';
25     import { isDisabledServer } from '../../utils/util';
26    
27     export default class GuildBanRemoveEvent extends BaseEvent {
28     constructor() {
29     super('guildBanRemove');
30     }
31    
32     async run(client: DiscordClient, ban: GuildBan) {
33     if (isDisabledServer(ban.guild.id))
34     return;
35    
36     setTimeout(async () => {
37     const logs = (await ban.guild.fetchAuditLogs({
38     limit: 1,
39     type: 'MEMBER_BAN_REMOVE',
40     })).entries.first();
41    
42     if (logs?.executor?.id === client.user!.id) {
43     console.log("Action taken by bot");
44     return;
45     }
46    
47     await client.logger.onGuildBanRemove(ban);
48    
49     console.log(logs?.executor);
50    
51     await Punishment.create({
52     type: PunishmentType.UNBAN,
53     user_id: ban.user.id,
54     guild_id: ban.guild!.id,
55     mod_id: logs?.executor?.id ?? client.user!.id,
56     mod_tag: logs?.executor?.tag ?? 'Unknown',
57     reason: logs?.reason ?? undefined
58     });
59     }, 2500);
60     }
61     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26