MCPcopy Create free account
hub / github.com/esmBot/esmBot / run

Method run

commands/general/banner.js:8–66  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6class BannerCommand extends Command {
7 // this command sucks a little bit more again
8 async run() {
9 const member = this.getOptionMember("member") ?? this.getOptionUser("member") ?? this.args[0];
10 const server = !!this.getOptionBoolean("server");
11 const self =
12 server && this.guild
13 ? await this.client.rest.guilds.getMember(this.guild.id, this.author.id)
14 : await this.client.rest.users.get(this.author.id); // banners are only available over REST
15 if (this.type === "classic" && this.message?.mentions.users[0]) {
16 return (
17 (server && this.guild
18 ? await this.client.rest.guilds.getMember(this.guild.id, this.message.mentions.members[0].id)
19 : await this.client.rest.users.get(this.message.mentions.users[0].id)
20 )?.bannerURL(undefined, imageSize) ??
21 self.bannerURL(undefined, imageSize) ??
22 this.getString("commands.responses.banner.noUserBanner")
23 );
24 }
25 if (member && typeof member !== "string") {
26 let restMember;
27 if (member instanceof Member && server && this.guild) {
28 restMember = await this.client.rest.guilds.getMember(this.guild.id, member.id);
29 } else {
30 restMember = await this.client.rest.users.get(member.id);
31 }
32 return (
33 restMember.bannerURL(undefined, imageSize) ??
34 self.bannerURL(undefined, imageSize) ??
35 this.getString("commands.responses.banner.noUserBanner")
36 );
37 }
38 if (member) {
39 const user = await mentionToObject(this.client, member, "user", {
40 guild: this.guild,
41 server,
42 rest: true,
43 });
44 if (user?.banner)
45 return (
46 user.bannerURL(undefined, imageSize) ??
47 self.bannerURL(undefined, imageSize) ??
48 this.getString("commands.responses.banner.noUserBanner")
49 );
50 }
51 if (this.args.join(" ") !== "" && this.guild) {
52 const searched = await this.guild.searchMembers({
53 query: this.args.join(" "),
54 limit: 1,
55 });
56 if (searched.length > 0) {
57 const user = await getUser(this.client, this.guild, searched[0].user.id, server, true);
58 return (
59 user.bannerURL(undefined, imageSize) ??
60 self.bannerURL(undefined, imageSize) ??
61 this.getString("commands.responses.banner.noUserBanner")
62 );
63 }
64 }
65 return self.bannerURL(undefined, imageSize) ?? this.getString("commands.responses.banner.noSelfBanner");

Callers

nothing calls this directly

Calls 6

mentionToObjectFunction · 0.85
getUserFunction · 0.85
getOptionMemberMethod · 0.80
getOptionUserMethod · 0.80
getOptionBooleanMethod · 0.80
getStringMethod · 0.80

Tested by

no test coverage detected