| 11 | |
| 12 | // eslint-disable-next-line complexity |
| 13 | async build() { |
| 14 | this.setAuthor(this.modCase.guild.language.get(`MODERATION_LOG_${this.modCase.type.toUpperCase()}`)); |
| 15 | if (this.modCase.user && this.modCase.user.id !== this.client.user.id) this.setTitle(`${this.modCase.user.tag} (${this.modCase.user.id})`); |
| 16 | if (!this.modCase.user) this.setTitle(this.modCase.guild.language.get('UNFETCHABLE_USER')); |
| 17 | this.setDescription(this.modCase.guild.language.get('MODERATION_LOG_CASEID', this.modCase.id)); |
| 18 | if (this.modCase.user) this.setThumbnail(this.modCase.user.displayAvatarURL()); |
| 19 | /* eslint-disable indent */ |
| 20 | this.setColor( |
| 21 | this.modCase.type === 'ban' ? this.modCase.client.settings.get('colors.red') : |
| 22 | this.modCase.type === 'unban' ? this.modCase.client.settings.get('colors.yellow') : |
| 23 | this.modCase.type === 'kick' ? this.modCase.client.settings.get('colors.red') : |
| 24 | this.modCase.type === 'mute' ? this.modCase.client.settings.get('colors.red') : |
| 25 | this.modCase.type === 'unmute' ? this.modCase.client.settings.get('colors.yellow') : |
| 26 | this.modCase.type === 'purge' ? this.modCase.client.settings.get('colors.red') : |
| 27 | this.modCase.type === 'softban' ? this.modCase.client.settings.get('colors.red') : |
| 28 | this.modCase.type === 'vcban' ? this.modCase.client.settings.get('colors.red') : |
| 29 | this.modCase.type === 'vcunban' ? this.modCase.client.settings.get('colors.yellow') : |
| 30 | this.modCase.type === 'vckick' ? this.modCase.client.settings.get('colors.red') : |
| 31 | this.modCase.type === 'antiInvite' ? this.modCase.client.settings.get('colors.red') : |
| 32 | this.modCase.type === 'mentionSpam' ? this.modCase.client.settings.get('colors.red') : |
| 33 | this.modCase.type === 'blacklistedWord' ? this.modCase.client.settings.get('colors.red') : |
| 34 | this.modCase.type === 'blacklistedNickname' ? this.modCase.client.settings.get('colors.red') : |
| 35 | this.modCase.type === 'warn' ? this.modCase.client.settings.get('colors.yellow') : |
| 36 | this.modCase.client.settings.get('colors.blue')); |
| 37 | /* eslint-enable indent */ |
| 38 | this.setTimestamp(this.modCase.timestamp); |
| 39 | this.setFooter(this.modCase.guild.language.get('MODERATION_LOG_EVENTLOGGED'), this.modCase.client.user.displayAvatarURL()); |
| 40 | |
| 41 | // Fields for all |
| 42 | this.addField(this.modCase.guild.language.get('MODERATION_LOG_MODERATOR'), this.modCase.moderator ? this.modCase.moderator : this.modCase.guild.language.get('MODERATION_LOG_UNSPECIFIED'), true); |
| 43 | this.addField(this.modCase.guild.language.get('REASON'), this.modCase.reason ? this.modCase.reason : this.modCase.guild.language.get('MODERATION_LOG_UNSPECIFIED'), true); |
| 44 | |
| 45 | // Type-specific fields |
| 46 | if (this.modCase.channel) this.addField(this.modCase.guild.language.get('CHANNEL'), this.modCase.channel); |
| 47 | if (this.modCase.duration) this.addField(this.modCase.guild.language.get('MODERATION_LOG_DURATION'), this.modCase.guild.language.get('MODERATION_LOG_DURATIONEND', this.modCase.duration), true); |
| 48 | if (this.modCase.deletedMessageCount) this.addField(this.modCase.guild.language.get('MODERATION_LOG_DELETEDMESSAGECOUNT'), this.modCase.deletedMessageCount, true); |
| 49 | if (this.modCase.messageContent) await embedSplitter(this.modCase.guild.language.get('MODERATION_LOG_DELETEDMESSAGECONTENT'), this.modCase.messageContent.split(' '), this); |
| 50 | if (this.modCase.badNickname) this.addField(this.modCase.guild.language.get('MODERATION_LOG_BADNICKNAME'), this.modCase.badNickname, true); |
| 51 | |
| 52 | // Optional (for all) fields |
| 53 | if (this.modCase.link) this.addField(this.modCase.guild.language.get('MODERATION_LOG_LINK', this.modCase.link), this.modCase.guild.language.get('MODERATION_LOG_LINK', this.modCase.link), true); |
| 54 | if (this.modCase.silent) this.addField(this.modCase.guild.language.get('MODERATION_LOG_SILENT'), this.modCase.silent ? 'true' : 'false', true); |
| 55 | |
| 56 | return this; |
| 57 | } |
| 58 | |
| 59 | async send() { |
| 60 | if (this.modCase.guild.settings.get(`logs.moderation.${[this.modCase.type]}`)) { |