'use strict'; const commando = require("@iceprod/discord.js-commando"); const { getChannelProchedure, trySend, defaultImageEmbed } = require("../../resources/functions"); module.exports = class eventlog extends commando.Command { constructor(client) { super(client, { name: "eventlog", aliases: ["eventlogs"], memberName: "eventlog", group: "moderation", description: "Configure server's Event Log Channels.", guildOnly: true, userPermissions: ["MANAGE_GUILD"] }); } async run(msg, arg) { if (!msg.guild.dbLoaded) { await msg.guild.dbLoad(); } const set = arg.split(/(? 0 && /(? 0) { for (const ign of ignoreArgs) { if (ign.length === 0) { continue; } const chan = getChannelProchedure(msg, ign); if (chan) { if (messagelog.ignore.includes(chan.id)) { report += "**[MESSAGE_CHANNELIGNORE]** Duplicate result: <#" + chan.id + `> with keyword: **${ign.trim()}**\n`; } else { messagelog.ignore.push(chan.id); } } else { report += "**[MESSAGE_CHANNELIGNORE]** Unknown channel: **" + ign.trim() + "**\n"; } } } } } } const igno = /(? \`\`\`**Categories:** \`\`\`js\n[MESSAGE [-ignore ], JOINLEAVE, MEMBER, MEMBERROLE, BANUNBAN, GUILD, ROLE, CHANNEL, EMOJI, INVITE]\`\`\``) .addField(`Message Edit and Delete`, eventChannels?.message?.channel ? `<#${eventChannels?.message.channel}>\n**Ignores:** ${eventChannels?.message?.ignore?.length > 0 ? "<#" + eventChannels?.message.ignore.join(">, <#") + ">" : "None"}` : "Not set", true) .addField(`Member Join and Leave`, eventChannels?.joinLeave ? `<#${eventChannels?.joinLeave}>` : "Not set", true) .addField(`Member Profile Updates`, eventChannels?.member ? `<#${eventChannels?.member}>` : "Not set", true) .addField(`Member Role Updates`, eventChannels?.memberRole ? `<#${eventChannels?.memberRole}>` : "Not set", true) .addField(`Member Ban and Unban`, eventChannels?.banUnban ? `<#${eventChannels?.banUnban}>` : "Not set", true) .addField(`Server Updates`, eventChannels?.guild ? `<#${eventChannels?.guild}>` : "Not set", true) .addField(`Server Role Updates`, eventChannels?.role ? `<#${eventChannels?.role}>` : "Not set", true) .addField(`Server Channels Updates`, eventChannels?.channel ? `<#${eventChannels?.channel}>` : "Not set", true) .addField(`Server Emoji Updates`, eventChannels?.emote ? `<#${eventChannels?.emote}>` : "Not set", true) .addField(`Server Invites`, eventChannels?.invite ? `<#${eventChannels?.invite}>` : "Not set", true); return emb; } eventChannels = { joinLeave: joinleavelog ?? eventChannels?.joinLeave, channel: channellog ?? eventChannels?.channel, banUnban: banunbanlog ?? eventChannels?.banUnban, message: { channel: messagelog.channel ?? eventChannels?.message?.channel, ignore: setMessageIgnore ? messagelog.ignore : eventChannels?.message?.ignore }, invite: invitelog ?? eventChannels?.invite, role: rolelog ?? eventChannels?.role, guild: guildlog ?? eventChannels?.guild, member: membernicklog ?? eventChannels?.member, emote: emotelog ?? eventChannels?.emote, memberRole: memberroleslog ?? eventChannels?.memberRole } const r = await msg.guild.setEventChannels(eventChannels); if (r) { report += "Event Log Channels set!\n"; report += "\n**SUMMARY:**"; } return trySend(this.client, msg, (await resultEmbed(this)).setDescription(report.slice(0, 2048))); } };