50 lines
1.8 KiB
JavaScript
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}"`);
|
|
}
|
|
}
|
|
}; |