MCPcopy Index your code
hub / github.com/RTByte/rtbyte / build

Method build

src/lib/structures/ModEmbed.js:13–57  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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]}`)) {

Callers 1

embedMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected