From 83eaa2612b68ccda56980173d2ce64cb68d28ebd Mon Sep 17 00:00:00 2001 From: "Alejandro W. Sior" Date: Sat, 7 Jul 2018 15:08:41 +0200 Subject: [PATCH] Added events again --- src/cmd/debug.js | 2 +- src/cmd/events.js | 61 +++++++++++++++++++++++++++++++++++++++++ src/dbEventInterface.js | 12 +++++++- 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/cmd/debug.js b/src/cmd/debug.js index f273efb..4702a7c 100644 --- a/src/cmd/debug.js +++ b/src/cmd/debug.js @@ -18,7 +18,7 @@ exports.loadModule = function loadModule () { }); commandH.endpoint('^debug$', async (match, message) => { let debugMessage = '```\n'; - debugMessage += 'Logori v2.3.0\n\n'; + debugMessage += 'Logori v2.3.1\n\n'; debugMessage += 'Shard id ' + message.channel.guild.shard.id + ' on ' + bot.shards.size + '\n'; debugMessage += 'Uptime : ' + bot.uptime / 1000 + ' seconds\n'; debugMessage += 'Memory Usage : ' + Math.floor(process.memoryUsage().rss / 1048576) + ' MiB\n'; diff --git a/src/cmd/events.js b/src/cmd/events.js index d853e9f..de31ddf 100644 --- a/src/cmd/events.js +++ b/src/cmd/events.js @@ -507,6 +507,27 @@ exports.loadModule = function loadModule() { } async function guildMemberKick(guild, member, auditlog) { try { + let a = await dbEI.getEvent(guild.id, 'guildMemberKick'); + if (a.event.d === true) { + let entry = auditlog.entries[0]; + let hb = ''; + if (a.event.msg.includes('$hastebin')) { + let hastebinMessage = 'guildMemberKick event triggered :\n\n'; + hastebinMessage += 'Raw event info :\n\n'; + hastebinMessage += JSON.stringify(member) + '\n\n'; + hastebinMessage += '---\n\n'; + hastebinMessage += 'Responsible User\'s Name : ' + entry.user.username + '#' + entry.user.discriminator + '\n'; + hastebinMessage += 'Responsible User\'s Id : ' + entry.user.id + '\n\n'; + hastebinMessage += 'Kicked User\'s Name : ' + member.user.username + '#' + member.user.discriminator + '\n'; + hastebinMessage += 'Kicked User\'s Id : ' + member.user.id + '\n\n'; + hastebinMessage += 'Reason : ' + entry.reason + '\n\n'; + hastebinMessage += '---\n\n'; + hastebinMessage += new Date().toISOString(); + hb = await hastebin(configM.config.hastebinServer, hastebinMessage); + } + let finalMessage = a.event.msg.replace(/\$kickedId/g, member.user.id).replace(/\$kicked/g, member.user.username + '#' + member.user.discriminator).replace(/\$hastebin/g, hb).replace(/\$responsibleId/g, entry.user.id).replace(/\$responsible/g, entry.user.username + '#' + entry.user.discriminator).replace(/\$reason/g, entry.reason).replace(/\$case/g, a.modCase); + bot.createMessage(a.event.c === 'f' ? a.fallbackChannelId : a.event.c, finalMessage); + } shameKick(guild, member, auditlog); pollrLikeKick(guild, member, auditlog); } @@ -531,6 +552,46 @@ exports.loadModule = function loadModule() { console.log(e); } }); + bot.on('guildMemberUpdate', async (guild, member, oldMember) => { + try { + let a = await dbEI.getEvent(guild.id, 'guildMemberUpdate'); + if (a.event.d === true) { + let auditlog = await bot.getGuildAuditLogs(guild.id, 1); + let entry = auditlog.entries[0]; + let hb = ''; + let diffs = ''; + if (a.event.msg.includes('$hastebin') || a.event.msg.includes('$recapitulative')) { + diffs = buildDiffs(entry.after, entry.before); + } + if (a.event.msg.includes('$hastebin')) { + let hastebinMessage = 'guildMemberUpdate event triggered :\n\n'; + hastebinMessage += 'Raw event info :\n\n'; + hastebinMessage += JSON.stringify(oldMember) + '\n\n'; + hastebinMessage += JSON.stringify(member) + '\n\n'; + hastebinMessage += '---\n\n'; + if (entry.user !== member.user) { + hastebinMessage += 'Responsible User\'s Name : ' + entry.user.username + '#' + entry.user.discriminator + '\n'; + hastebinMessage += 'Responsible User\'s Id : ' + entry.user.id + '\n\n'; + } + hastebinMessage += 'Member\'s Name : ' + member.user.username + '#' + member.user.discriminator + '\n'; + hastebinMessage += 'Member\'s Id : ' + member.user.id + '\n'; + hastebinMessage += 'Member\'s Nickname : ' + member.nick + '\n\n'; + hastebinMessage += 'Reason : ' + entry.reason + '\n\n'; + hastebinMessage += '---\n\n'; + hastebinMessage += 'Hyper cool before -> after event thing :\n'; + hastebinMessage += diffs + '\n'; + hastebinMessage += '---\n\n'; + hastebinMessage += new Date().toISOString(); + hb = await hastebin(configM.config.hastebinServer, hastebinMessage); + } + let finalMessage = a.event.msg.replace(/\$memberId/g, member.user.id).replace(/\$member/g, member.user.username).replace(/\$hastebin/g, hb).replace(/\$responsibleId/g, entry.user.id).replace(/\$responsible/g, entry.user.username + '#' + entry.user.discriminator).replace(/\$reason/g, entry.reason).replace(/\$recapitulative/g, diffs);; + bot.createMessage(a.event.c === 'f' ? a.fallbackChannelId : a.event.c, finalMessage); + } + } + catch (e) { + console.log(e); + } + }); bot.on('messageDelete', async (message) => { try { let a = await dbEI.getEvent(message.channel.guild.id, 'messageDelete'); diff --git a/src/dbEventInterface.js b/src/dbEventInterface.js index 3df837c..7478d27 100644 --- a/src/dbEventInterface.js +++ b/src/dbEventInterface.js @@ -106,7 +106,7 @@ exports.initServer = function initServer(id, cId) { }, guildBanRemove: { d: true, - msg: '$unbanned has been unbanned by $responsible, $hatebin', + msg: '$unbanned has been unbanned by $responsible, $hastebin', c: 'f', }, memberJoin: { @@ -139,6 +139,16 @@ exports.initServer = function initServer(id, cId) { msg: '**Kick**, Case $case\n**User**: $kicked ($kickedId)\n**Reason**: $reason\n**Responsible moderator**: $responsible\n**Log**: $hastebin', c: 'f', }, + guildMemberKick: { + d: true, + msg: '$kicked has been kicked by $responsible, $hastebin', + c: 'f', + }, + guildMemberUpdate: { + d: true, + msg: '$member has been updated by $responsible, $hastebin ```\n$recapitulative```', + c: 'f', + }, messageDelete: { d: true, msg: 'A message from $author in channel <#$channelId> has been deleted, $hastebin',