diff --git a/src/modules/utility/guildinfo.js b/src/modules/utility/guildinfo.js index 568bd60..e1b2516 100644 --- a/src/modules/utility/guildinfo.js +++ b/src/modules/utility/guildinfo.js @@ -70,160 +70,160 @@ guildinfo.callback = async function (msg, line, args, {nolocal, debug}) { const snowflake = line.match(SNOWFLAKE_REGEX)[1]; _guild = await getGuild(snowflake, nolocal); id = snowflake; + } - let clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(snowflake), true).catch(() => {}); - if (!clan) { - if (_guild?.profile) { - clan = _guild?.profile; - } else { - const verif = await hf.bot.requestHandler - .request("GET", `${APIEndpoints.GUILD_MEMBER_VERIFICATION(snowflake)}?with_guild=true`, true) + let clan = await hf.bot.requestHandler.request("GET", APIEndpoints.CLAN(id), true).catch(() => {}); + if (!clan) { + if (_guild?.profile) { + clan = _guild?.profile; + } else { + const verif = await hf.bot.requestHandler + .request("GET", `${APIEndpoints.GUILD_MEMBER_VERIFICATION(id)}?with_guild=true`, true) + .catch(() => {}); + if (verif?.profile) { + clan = verif.profile; + } else if (_guild?.vanityURL) { + const invite = await hf.bot.requestHandler + .request("GET", `${APIEndpoints.INVITE(_guild.vanityURL)}?with_counts=true&with_expiration=true`) .catch(() => {}); - if (verif?.profile) { - clan = verif.profile; - } else if (_guild?.vanityURL) { - const invite = await hf.bot.requestHandler - .request("GET", `${APIEndpoints.INVITE(_guild.vanityURL)}?with_counts=true&with_expiration=true`) - .catch(() => {}); - if (invite?.profile) clan = invite.profile; + if (invite?.profile) clan = invite.profile; + } + } + } + + if (clan) { + const images = []; + + const game_ids = clan.game_ids ?? clan.game_application_ids ?? []; + const games = await Promise.all( + game_ids + .sort((a, b) => (clan.game_activity[b]?.activity_score ?? 0) - (clan.game_activity[a]?.activity_score ?? 0)) + .map(async (id) => { + let game = Games.find((x) => x.id == id); + if (!game) { + game = await hf.bot.requestHandler.request("GET", APIEndpoints.APPLICATION_RPC(id), false); + } + + let out = `${game.name} (\`${id}\`)`; + + if (clan.game_activity[id]?.activity_level > 1) { + out = `:fire: ${out}`; + } else { + out = `${Icons.blank} ${out}`; + } + + return out; + }) + ); + + if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.wildcard_descriptors.filter((x) => x != ""); + + const termLines = []; + let currentTerm = ""; + if (clan.search_terms) { + for (const index in clan.search_terms) { + const term = clan.search_terms[index]; + const formattedTerm = `\`\u2004${term.replaceAll(" ", "\u2005")}\u2004\``; + if (currentTerm.length + 1 + formattedTerm.length > 56) { + termLines.push(currentTerm); + currentTerm = formattedTerm; + } else { + currentTerm += "\u2004" + formattedTerm; } + if (index == clan.search_terms.length - 1) termLines.push(currentTerm); + } + } else if (clan.traits) { + for (const index in clan.traits) { + const term = clan.traits[index]; + const formattedTerm = `${term.emoji_name ? `:${term.emoji_name}:` : ""}\`\u2004${term.label.replaceAll( + " ", + "\u2005" + )}\u2004\``; + if (currentTerm.length + 1 + formattedTerm.length > 56) { + termLines.push(currentTerm); + currentTerm = formattedTerm; + } else { + currentTerm += "\u2004" + formattedTerm; + } + if (index == clan.traits.length - 1) termLines.push(currentTerm); } } - if (clan) { - const images = []; - - const game_ids = clan.game_ids ?? clan.game_application_ids ?? []; - const games = await Promise.all( - game_ids - .sort((a, b) => (clan.game_activity[b]?.activity_score ?? 0) - (clan.game_activity[a]?.activity_score ?? 0)) - .map(async (id) => { - let game = Games.find((x) => x.id == id); - if (!game) { - game = await hf.bot.requestHandler.request("GET", APIEndpoints.APPLICATION_RPC(id), false); - } - - let out = `${game.name} (\`${id}\`)`; - - if (clan.game_activity[id]?.activity_level > 1) { - out = `:fire: ${out}`; - } else { - out = `${Icons.blank} ${out}`; - } - - return out; - }) - ); - - if (clan.wildcard_descriptors) clan.wildcard_descriptors = clan.wildcard_descriptors.filter((x) => x != ""); - - const termLines = []; - let currentTerm = ""; - if (clan.search_terms) { - for (const index in clan.search_terms) { - const term = clan.search_terms[index]; - const formattedTerm = `\`\u2004${term.replaceAll(" ", "\u2005")}\u2004\``; - if (currentTerm.length + 1 + formattedTerm.length > 56) { - termLines.push(currentTerm); - currentTerm = formattedTerm; - } else { - currentTerm += "\u2004" + formattedTerm; - } - if (index == clan.search_terms.length - 1) termLines.push(currentTerm); - } - } else if (clan.traits) { - for (const index in clan.traits) { - const term = clan.traits[index]; - const formattedTerm = `${term.emoji_name ? `:${term.emoji_name}:` : ""}\`\u2004${term.label.replaceAll( - " ", - "\u2005" - )}\u2004\``; - if (currentTerm.length + 1 + formattedTerm.length > 56) { - termLines.push(currentTerm); - currentTerm = formattedTerm; - } else { - currentTerm += "\u2004" + formattedTerm; - } - if (index == clan.traits.length - 1) termLines.push(currentTerm); - } + let gameLines = ""; + let gameLines2 = ""; + for (const line of games) { + if (gameLines.length + line.length + 1 <= 1024) { + gameLines += line + "\n"; + } else { + gameLines2 += line + "\n"; } + } - let gameLines = ""; - let gameLines2 = ""; - for (const line of games) { - if (gameLines.length + line.length + 1 <= 1024) { - gameLines += line + "\n"; - } else { - gameLines2 += line + "\n"; - } - } - - clanEmbed = { - color: clan.brand_color_primary ? parseInt(clan.brand_color_primary.replace("#", "0x")) : 0, - title: _guild == null ? clan.name : null, - author: { - name: clan.tag, + clanEmbed = { + color: clan.brand_color_primary ? parseInt(clan.brand_color_primary.replace("#", "0x")) : 0, + title: _guild == null ? clan.name : null, + author: { + name: clan.tag, + }, + description: + clan.playstyle || clan.wildcard_descriptors + ? `-# :video_game:${ClanPlaystyle[clan.playstyle] ?? "Unknown"}${ + clan.wildcard_descriptors.length > 0 ? ` \u2022 **${clan.wildcard_descriptors.join(", ")}**` : "" + }\n\n${clan.description ?? "*No description*"}` + : clan.description ?? "*No description*", + fields: [ + !_guild && { + name: "Member Count", + value: clan.member_count, + inline: true, }, - description: - clan.playstyle || clan.wildcard_descriptors - ? `-# :video_game:${ClanPlaystyle[clan.playstyle] ?? "Unknown"}${ - clan.wildcard_descriptors.length > 0 ? ` \u2022 **${clan.wildcard_descriptors.join(", ")}**` : "" - }\n\n${clan.description ?? "*No description*"}` - : clan.description ?? "*No description*", - fields: [ - !_guild && { - name: "Member Count", - value: clan.member_count, - inline: true, - }, - termLines.length > 0 && { - name: "Traits", - value: termLines.join("\n"), - inline: false, - }, - games.length > 0 && { - name: "Associated Games", - value: gameLines, - inline: false, - }, - gameLines2 != "" && { - name: "\u200b", - value: gameLines2, - inline: false, - }, - clan.badge_color_primary && { - name: "Badge Colors", - value: `${clan.badge_color_primary}, ${clan.badge_color_secondary}`, - inline: true, - }, - clan.brand_color_primary && { - name: "Banner/Brand Colors", - value: `${clan.brand_color_primary}${clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : ""}`, - inline: true, - }, - ].filter((x) => !!x), - thumbnail: !_guild ? {url: CDNEndpoints.GUILD_ICON(clan.id, clan.icon_hash)} : null, - footer: !_guild ? {text: "Fetched from clan"} : null, - }; - - if (clan.badge_hash) { - const url = CDNEndpoints.CLAN_BADGE(clan.id, clan.badge_hash); - images.push(`[Badge](${url})`); - clanEmbed.author.icon_url = url; - } - if (clan.banner_hash) { - const url = CDNEndpoints.CLAN_BANNER(clan.id, clan.banner_hash); - images.push(`[Banner](${url})`); - clanEmbed.image = {url}; - } - - if (images.length > 0) { - clanEmbed.fields.push({ - name: "\u200b", - value: images.join("\u3000\u3000"), + termLines.length > 0 && { + name: "Traits", + value: termLines.join("\n"), inline: false, - }); - } + }, + games.length > 0 && { + name: "Associated Games", + value: gameLines, + inline: false, + }, + gameLines2 != "" && { + name: "\u200b", + value: gameLines2, + inline: false, + }, + clan.badge_color_primary && { + name: "Badge Colors", + value: `${clan.badge_color_primary}, ${clan.badge_color_secondary}`, + inline: true, + }, + clan.brand_color_primary && { + name: "Banner/Brand Colors", + value: `${clan.brand_color_primary}${clan.brand_color_secondary ? `, ${clan.brand_color_secondary}` : ""}`, + inline: true, + }, + ].filter((x) => !!x), + thumbnail: !_guild ? {url: CDNEndpoints.GUILD_ICON(clan.id, clan.icon_hash)} : null, + footer: !_guild ? {text: "Fetched from clan"} : null, + }; + + if (clan.badge_hash) { + const url = CDNEndpoints.CLAN_BADGE(clan.id, clan.badge_hash); + images.push(`[Badge](${url})`); + clanEmbed.author.icon_url = url; + } + if (clan.banner_hash) { + const url = CDNEndpoints.CLAN_BANNER(clan.id, clan.banner_hash); + images.push(`[Banner](${url})`); + clanEmbed.image = {url}; + } + + if (images.length > 0) { + clanEmbed.fields.push({ + name: "\u200b", + value: images.join("\u3000\u3000"), + inline: false, + }); } }