'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}"`); } } };