32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
import { Events } from 'discord.js';
|
|
import { withConn } from '../db/pool.js';
|
|
async function getLogsChannelId(guildId) {
|
|
const row = await withConn(async (conn) => {
|
|
const rows = await conn.query('SELECT logs_enabled, logs_channel_id FROM guild_config WHERE guild_id = ? LIMIT 1', [guildId]);
|
|
return rows[0];
|
|
});
|
|
if (!row?.logs_enabled || !row.logs_channel_id)
|
|
return null;
|
|
return row.logs_channel_id;
|
|
}
|
|
export function registerModerationLogs(client) {
|
|
client.on(Events.GuildBanAdd, async (ban) => {
|
|
const channelId = await getLogsChannelId(ban.guild.id);
|
|
if (!channelId)
|
|
return;
|
|
const channel = ban.guild.channels.cache.get(channelId);
|
|
if (!channel || !('send' in channel))
|
|
return;
|
|
await channel.send(`User banned: <@${ban.user.id}>`);
|
|
});
|
|
client.on(Events.GuildMemberRemove, async (member) => {
|
|
const channelId = await getLogsChannelId(member.guild.id);
|
|
if (!channelId)
|
|
return;
|
|
const channel = member.guild.channels.cache.get(channelId);
|
|
if (!channel || !('send' in channel))
|
|
return;
|
|
await channel.send(`Member left or was kicked: <@${member.id}>`);
|
|
});
|
|
}
|