utility.linvite: guild feature icons

This commit is contained in:
Cynthia Foxwell 2023-09-14 23:16:49 -06:00
parent 2784c573b6
commit b8c2b6766b
1 changed files with 128 additions and 16 deletions

View File

@ -84,7 +84,7 @@ const PRESENCE_TYPES = [
"Streaming",
"Listening to",
"Watching",
"",
"Custom Status",
"Competing in",
];
@ -143,6 +143,102 @@ const USER_FLAGS = [
"RESTRICTED_COLLABORATOR",
];
// https://discord-userdoccers.vercel.app/resources/guild#guild-features
const GUILD_FEATURES = {
ACTIVITIES_ALPHA: {icon: "\u{1f680}"},
ACTIVITIES_EMPLOYEE: {icon: "\u{1f680}"},
ACTIVITIES_INTERNAL_DEV: {icon: "\u{1f680}"},
ANIMATED_BANNER: {icon: "\u{1f39e}"},
ANIMATED_ICON: {icon: "\u{1f39e}"},
APPLICATION_COMMAND_PERMISSIONS_V2: {icon: "\u2699\ufe0f"},
AUTO_MODERATION: {icon: "\u{1f6e1}"},
AUTOMOD_TRIGGER_USER_PROFILE: {icon: "\u{1faaa}"},
BANNER: {icon: "\u{1f5bc}"},
BFG: {icon: "\u{1f388}", name: "BFG"},
BOT_DEVELOPER_EARLY_ACCESS: {icon: "\u{1f9ea}"},
BURST_REACTIONS: {icon: "\u2728", name: "Super Reactions"},
CHANNEL_ICON_EMOJIS_GENERATED: {icon: "\u{1f603}"},
CHANNEL_HIGHLIGHTS: {icon: "\u{1f5c3}"},
CHANNEL_HIGHLIGHTS_DISABLED: {icon: "\u{1f6ab}"},
CLYDE_DISABLED: {icon: "\u{1f6ab}"},
CLYDE_ENABLED: {icon: "\u{1f916}"},
CLYDE_EXPERIMENT_ENABLED: {icon: "\u{1f9ea}"},
COMMUNITY: {icon: "\u{1f3d8}"},
COMMUNITY_CANARY: {icon: "\u{1f9ea}"},
COMMUNITY_EXP_LARGE_GATED: {icon: "\u{1f3d8}"},
COMMUNITY_EXP_LARGE_UNGATED: {icon: "\u{1f3d8}"},
COMMUNITY_EXP_MEDIUM: {icon: "\u{1f3d8}"},
CREATOR_ACCEPTED_NEW_TERMS: {icon: "\u2611\ufe0f"},
CREATOR_MONETIZABLE: {icon: "\u{1f4b0}"},
CREATOR_MONETIZABLE_DISABLED: {icon: "\u{1f6ab}"},
CREATOR_MONETIZABLE_PENDING_NEW_OWNER_ONBOARDING: {icon: "\u{1f4b1}"},
CREATOR_MONETIZABLE_PROVISIONAL: {icon: "\u{1f4b0}"},
CREATOR_MONETIZABLE_RESTRICTED: {icon: "\u26d4"},
CREATOR_MONETIZABLE_WHITEGLOVE: {icon: "\u{1f9ea}"},
CREATOR_MONETIZATION_APPLICATION_ALLOWLIST: {icon: "\u{1f4dc}"},
CREATOR_STORE_PAGE: {icon: "\u{1f6d2}"},
DEVELOPER_SUPPORT_SERVER: {icon: "\u2754"},
DISCOVERABLE: {icon: "\u{1f9ed}"},
DISCOVERABLE_DISABLED: {icon: "\u{1f6ab}"},
ENABLED_DISCOVERABLE_BEFORE: {icon: "\u{1f9ed}"},
EXPOSED_TO_ACTIVITIES_WTP_EXPERIMENT: {icon: "\u{1f9ea}"},
GUESTS_ENABLED: {icon: "\u{1f465}"},
GUILD_HOME_DEPRECATION_OVERRIDE: {icon: "\u{1f3da}"},
GUILD_HOME_OVERRIDE: {icon: "\u{1f3e0}"},
GUILD_HOME_TEST: {icon: "\u{1f9ea}"},
GUILD_MEMBER_VERIFICATION_EXPERIMENT: {icon: "\u{1f9ea}"},
GUILD_ONBOARDING: {icon: "\u{1f5f3}"},
GUILD_ONBOARDING_EVER_ENABLED: {icon: "\u{1f5f3}"},
GUILD_ONBOARDING_HAS_PROMPTS: {icon: "\u{1f5f3}"},
GUILD_PRODUCTS: {icon: "\u{1f6cd}"},
GUILD_SERVER_GUIDE: {icon: "\u{1f9ae}"},
GUILD_WEB_PAGE_VANITY_URL: {icon: "\u{1f4c4}"},
HAD_EARLY_ACTIVITIES_ACCESS: {icon: "\u{1f680}"},
HAS_DIRECTORY_ENTRY: {icon: "\u{1faa7}"},
HIDE_FROM_EXPERIMENT_UI: {icon: "\u{1f9ea}"},
HUB: {icon: "\u{1f3eb}"},
INCREASED_THREAD_LIMIT: {icon: "\u{1f9f5}"},
INTERNAL_EMPLOYEE_ONLY: {icon: "\u{1f6e0}"},
INVITE_SPLASH: {icon: "\u{1f5bc}"},
INVITES_DISABLED: {icon: "\u26d4"},
LINKED_TO_HUB: {icon: "\u{1f3eb}"},
MEMBER_SAFETY_PAGE_ROLLOUT: {icon: "\u{1f6e1}"},
MEMBER_VERIFICATION_GATE_ENABLED: {icon: "\u{1f6e1}"},
MEMBER_VERIFICATION_MANUAL_APPROVAL: {icon: "\u2705"},
MORE_EMOJI: {icon: "\u{1f603}"},
MORE_STICKERS: {icon: "\u{1f5bc}"},
NEWS: {icon: "\u{1f4f0}"},
NON_COMMUNITY_RAID_ALERTS: {icon: "\u{1f6a8}"},
PARTNERED: {icon: "\u267e\ufe0f"},
PREMIUM_TIER_3_OVERRIDE: {icon: "\u{1f48e}"},
PREVIEW_ENABLED: {icon: "\u{1f441}"},
PRODUCTS_AVAILABLE_FOR_PURCHASE: {icon: "\u{1f6cd}"},
RAID_ALERTS_DISABLED: {icon: "\u{1f6ab}"},
RELAY_ENABLED: {icon: "\u{1f4fb}"},
ROLE_ICONS: {icon: "\u{1f3f7}"},
ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE: {icon: "\u{1f4b3}"},
ROLE_SUBSCRIPTIONS_ENABLED: {icon: "\u{1f4b3}"},
SHARD: {icon: "\u{1f4a0}"},
SHARED_CANVAS_FRIENDS_AND_FAMILY_TEST: {icon: "\u{1f58c}"},
SOUNDBOARD: {icon: "\u{1f50a}"},
SUMMARIES_ENABLED: {icon: "\u{1f4da}"},
SUMMARIES_ENABLED_GA: {
icon: "\u{1f4da}",
name: "Summaries Enabled (General Access)",
},
SUMMARIES_DISABLED_BY_USER: {icon: "\u26d4"},
SUMMARIES_ENABLED_BY_USER: {icon: "\u{1f4da}"},
SUMMARIES_LONG_LOOKBACK: {icon: "\u{1f5c2}"},
STAFF_LEVEL_COLLABORATOR_REQUIRED: {icon: "\u{1f6e0}"},
STAFF_LEVEL_RESTRICTED_COLLABORATOR_REQUIRED: {icon: "\u{1f6e0}"},
THREAD_DEFAULT_AUTO_ARCHIVE_DURATION: {icon: "\u{1f9f5}"},
VANITY_URL: {icon: "\u{1f517}"},
VERIFIED: {icon: "\u2b50"},
VIP_REGIONS: {icon: "\u{1f399}"},
VOICE_IN_THREADS: {icon: "\u{1f399}"},
WELCOME_SCREEN_ENABLED: {icon: "\u{1f44b}"},
};
const EMOJI_SETS = {
blobs: {
prefix:
@ -455,6 +551,19 @@ lookupinvite.callback = async function (msg, line) {
}
: null;
const features = invite.guild.features
.map(
(feature) =>
(GUILD_FEATURES[feature]?.icon ?? "\u2753") +
" " +
(GUILD_FEATURES[feature]?.name ??
feature
.split("_")
.map((x) => x[0] + x.substring(1).toLowerCase())
.join(" "))
)
.join(", ");
if (invite.type == 0) {
embed.fields.push(
...[
@ -468,17 +577,17 @@ lookupinvite.callback = async function (msg, line) {
value: `**${invite.channel.name}** (${invite.channel.id})`,
inline: true,
},
{
name: "Member Count",
value: `${STATUS_ICONS.online}${invite.approximate_presence_count} online\t\t${STATUS_ICONS.offline}${invite.approximate_member_count} members`,
inline: false,
},
{
name: "Boosts",
value: invite.guild.premium_subscription_count ?? 0,
inline: true,
},
expires,
{
name: "Member Count",
value: `${STATUS_ICONS.online}${invite.approximate_presence_count} online\t\t${STATUS_ICONS.offline}${invite.approximate_member_count} members`,
inline: false,
},
inviter,
invite.guild.welcome_screen && {
name: "Welcome Screen",
@ -499,18 +608,21 @@ lookupinvite.callback = async function (msg, line) {
{
name: "Features",
value:
invite.guild.features.length > 0
? invite.guild.features
.map((feature) =>
feature
.split("_")
.map((x) => x[0] + x.substring(1).toLowerCase())
.join(" ")
)
.join(", ")
features.length > 0
? features.slice(0, Math.floor(features.length / 2))
: "None",
inline: false,
inline: true,
},
features.length > 1
? {
name: "\u200b",
value: features.slice(
Math.floor(features.length / 2),
features.length
),
inline: true,
}
: null,
].filter((x) => !!x)
);
embed.thumbnail = {