MCPcopy Create free account
hub / github.com/RTByte/rtbyte / run

Method run

src/commands/Moderator/modHistory.js:25–81  ·  view source on GitHub ↗
(msg, [target, caseID = null])

Source from the content-addressed store, hash-verified

23 }
24
25 async run(msg, [target, caseID = null]) {
26 const serverCases = this.client.settings.get('moderation.cases').filter(modCase => modCase.guild === msg.guild.id);
27
28 if (caseID) {
29 if (!this.client.settings.get('moderation.cases').find(thisCase => thisCase.id === caseID)) return msg.reject(msg.language.get('COMMAND_MODHISTORY_INVALID_CASEID', caseID));
30
31 const modCase = new ModCase(msg.guild);
32 await modCase.unpack(this.client.settings.get('moderation.cases').find(thisCase => thisCase.id === caseID));
33
34 return msg.send('', { embed: await modCase.embed() });
35 }
36
37 if (target) {
38 const targetCases = serverCases.filter(modCase => modCase.user === target.user.id);
39 if (!targetCases.length) return msg.affirm(msg.language.get('COMMAND_MODHISTORY_NOMODHISTORY', target));
40
41 const previousHandler = this.handlers.get(msg.author.id);
42 if (previousHandler) previousHandler.stop();
43 const caseEmbedArray = await this.buildEmbedArray(msg, targetCases);
44
45 const loadingEmbed = new MessageEmbed()
46 .setTitle(msg.language.get('COMMAND_MODHISTORY_LOADING'))
47 .setColor(this.client.settings.get('colors.white'))
48 .setThumbnail(target.user.displayAvatarURL(), 50, 50)
49 .setTimestamp();
50
51 const handler = await (await this.buildDisplay(caseEmbedArray)).run(await msg.send('', { disableEveryone: true, embed: loadingEmbed }), {
52 filter: (reaction, user) => user.id === msg.author.id,
53 timeout
54 });
55
56 handler.on('end', () => this.handlers.delete(msg.author.id));
57 this.handlers.set(msg.author.id, handler);
58 return handler;
59 } else {
60 if (!serverCases.length) return msg.affirm(msg.language.get('COMMAND_MODHISTORY_NOMODHISTORY', msg.guild.name));
61
62 const previousHandler = this.handlers.get(msg.author.id);
63 if (previousHandler) previousHandler.stop();
64 const caseEmbedArray = await this.buildEmbedArray(msg, serverCases);
65
66 const loadingEmbed = new MessageEmbed()
67 .setTitle(msg.language.get('COMMAND_MODHISTORY_LOADING'))
68 .setColor(this.client.settings.get('colors.white'))
69 .setThumbnail(msg.guild.iconURL(), 50, 50)
70 .setTimestamp();
71
72 const handler = await (await this.buildDisplay(caseEmbedArray)).run(await msg.send('', { disableEveryone: true, embed: loadingEmbed }), {
73 filter: (reaction, user) => user.id === msg.author.id,
74 timeout
75 });
76
77 handler.on('end', () => this.handlers.delete(msg.author.id));
78 this.handlers.set(msg.author.id, handler);
79 return handler;
80 }
81 }
82

Callers

nothing calls this directly

Calls 9

rejectMethod · 0.80
unpackMethod · 0.80
sendMethod · 0.80
embedMethod · 0.80
affirmMethod · 0.80
buildEmbedArrayMethod · 0.80
buildDisplayMethod · 0.45
deleteMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected