From 173fd0004e3377d54dd112577e2c925374f351c7 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 3 Aug 2020 01:28:28 +0100 Subject: [PATCH] implemented ajds into member add --- src/ajds-core.js | 20 +++++++++--------- src/discord-events.js | 47 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/src/ajds-core.js b/src/ajds-core.js index 954b363..1d2a679 100644 --- a/src/ajds-core.js +++ b/src/ajds-core.js @@ -31,15 +31,15 @@ module.exports.ScoreMember = async function(erismember) // prior to 2 days, deduct 5 points let Age = new Date().getTime() - ((erismember.id >> 22 >>> 0) + 1420070400000); // age in days - Age = Math.floor(age / 1000 / 60 / 60 / 24); + Age = Math.floor(Age / 1000 / 60 / 60 / 24); - if (age < 2) + if (Age < 2) { ret.score -= 5; ret.warnings.push({warning: 'member account very new', severity: 2}); } else { - let AgeScore = Math.min(Math.max(0, age / 2 - 1), 10); + let AgeScore = Math.min(Math.max(0, Age / 2 - 1), 10); if (AgeScore > 10) ret.warnings.push({warning: 'member account new', severity: 1}); ret.score += AgeScore; } @@ -67,24 +67,24 @@ module.exports.ScoreMember = async function(erismember) { ret.warnings.push({warning: `members name contains offensive word: ${OffensiveWord}`, severity: 3}); } - ret.score -= 5; + ret.score -= 10; } // Time to score // perfect score is 20 - // worst score is -10 + // worst score is -20 if (ret.score >= 10) - ret.literalscore = 'Users account is trustworthy' + ret.literalscore = 'Members account is trustworthy' else if (ret.score >= 5) - ret.literalscore = 'Users account is relatively trustworthy' + ret.literalscore = 'Members account is relatively trustworthy' else if (ret.score >= 0) - ret.literalscore = 'Users account is most likely untrustworthy ' + ret.literalscore = 'Members account is most likely untrustworthy' else if (ret.score >= -6) - ret.literalscore = 'Users account is untrustworthy' + ret.literalscore = 'Members account is untrustworthy' else - ret.literalscore = 'Users account is untrustworthy and to be handled with great caution' + ret.literalscore = 'Members account is untrustworthy and to be handled with great caution' return ret; diff --git a/src/discord-events.js b/src/discord-events.js index 476ba5a..3a3f524 100644 --- a/src/discord-events.js +++ b/src/discord-events.js @@ -49,9 +49,9 @@ module.exports.setup = async function() Discord.bot.on('voiceChannelSwitch', async (member, newchannel, oldchannel) => {}); Discord.bot.on('voiceStateUpdate', async (member, oldstate) => {}); Discord.bot.on('webhooksUpdate', async (data, channelid, guildid) => {}); - Discord.bot.on('warn', async (message, id) => {}); - Discord.bot.on('error', async (error, id) => {}); - Discord.bot.on('disconnect', async (options) => {}); + Discord.bot.on('warn', async (message, id) => {Warn(message, id)}); + Discord.bot.on('error', async (error, id) => {Error(error, id)}); + Discord.bot.on('disconnect', async (options) => {Disconnect(options)}); // settup log channel cache const guilds = await Database.FetchAllGuilds(); @@ -138,17 +138,17 @@ async function GuildDelete(guild) async function Warn(message, id) { - + Logger.warn('Discord: ' + message); } async function Error(error, id) { - + Logger.error('Discord: ' + error); } async function Disconnect(options) { - + Logger.error('Logori disconnected'); } // Richembed defines @@ -469,9 +469,7 @@ async function GuildMemberAdd(guild, member) if (FallbackChannel == -1) return; // AJDS warnings - - let MemberWarnings = []; - let MemberScore; + let AJDSScore = await ADJSCore.ScoreMember(member); // TODO: Get proper join position let embed = new DiscordEmbed({ @@ -487,7 +485,36 @@ async function GuildMemberAdd(guild, member) footer: { text: `ID: ${member.id}` } }); - embed.field('​', `**Member:** ${member.mention}`); + let WarningString = ''; + + if (AJDSScore.warnings.length != 0) + { + WarningString += '***Warnings:***\n' + for (warning of AJDSScore.warnings) + { + switch (warning.severity) + { + default: + case 0: + WarningString += warning.warning + '\n'; + break; + case 1: + WarningString += '⚠️' + warning.warning + '⚠️\n'; + break; + case 2: + WarningString += '⚠️' + warning.warning.toUpperCase() + '⚠️\n'; + break; + case 3: + WarningString += '🚨⚠️❗**' + warning.warning.toUpperCase() + '**❗⚠️🚨\n'; + break; + } + } + } + + embed.field('​', `**Member:** ${member.mention} + **AJDS Results:** + *${AJDSScore.literalscore}* + ${WarningString ? WarningString : ''}`); // embed.field('​', `${member.mention} is ${AddOrdinalSuffix(DiscordHelpers.GetMemberJoinPos(member.id, guild))} to join`);