Files
twitter/src/events/guildMemberAdd.js
T
2026-03-22 02:15:16 -05:00

50 lines
1.8 KiB
JavaScript

'use strict';
const fs = require('fs');
const path = require('path');
const { Events } = require('discord.js');
const logger = require('../utils/logger');
module.exports = (client, member) => {
const dbPath = path.join(__dirname, '..', '..', 'db.json');
const db = JSON.parse(fs.readFileSync(dbPath, 'utf8'));
const roleId = db.autoroles ? db.autoroles[member.guild.id] : null;
logger.info(`member "${member.user.tag}" has joined guild "${member.guild.name}"`);
// autorole
{
if (!roleId) {
logger.info(`no autorole is set up in "${member.guild.name}"`);
return;
}
const role = member.guild.roles.cache.get(roleId);
if (!role) {
logger.error(`role with id "${roleId}" not found in guild "${member.guild.name}"`);
return;
}
member.roles.add(role)
.then(() => logger.info(`assigned role "${role.name}" to user "${member.user.tag}"!`))
.catch(error => logger.error(`failed to assign role "${role.name}" to user "${member.user.tag}": ${error}`));
}
// autoban
{
const autoban = db.autobans ? db.autobans[member.guild.id] : null;
if (!autoban) {
logger.info(`no autoban is set up for ${member.user.tag} in "${member.guild.name}"`);
return;
}
if (member.user.tag === autoban) {
member.ban({ reason: 'autobanned (twitter)' })
.then(() => logger.info(`autobanned user "${member.user.tag}" from guild "${member.guild.name}"`))
.catch(error => logger.error(`failed to autoban user "${member.user.tag}" from guild "${member.guild.name}": ${error}`));
} else {
logger.info(`user "${member.user.tag}" is not on the autoban list for "${member.guild.name}"`);
}
}
};