diff --git a/src/modules/utility.js b/src/modules/utility.js index 2e2453c..7422881 100644 --- a/src/modules/utility.js +++ b/src/modules/utility.js @@ -190,309 +190,416 @@ const APPLICATION_TYPES = [ "Creator Monetization", ]; +const SILK_ICONS = Object.fromEntries( + Object.entries({ + joystick: "1250544500246577172", + film: "1250544523730223277", + shield: "1250543253472673875", + vcard: "1250544496765308948", + photo: "1250543277267222639", + world_add: "1250544495435452547", + ruby: "1250544494739325001", + emoticon_smile: "1250543500471046288", + bug: "1250544574104080507", + comments_star: "1250544493841616988", + comments_delete: "1250544492709412946", + flag_blue: "1250544491471831131", + flag_red: "1250544490507141312", + controller: "1250544489156710541", + cog_delete: "1250544595666997288", + cog: "1250543252747321468", + basket: "1250544573088923722", + group: "1250543273726967900", + check_checked_green: "1250544572203929815", + world: "1250543499489706195", + world_delete: "1250544571180515408", + transmit_blue: "1250544569448136857", + comments: "1250543256052301924", + status_away: "1250544568772853801", + page_link: "1250544567665561631", + book_open_mark: "1250544632064901240", + house: "1250543270342426644", + lock: "1250543498470359121", + sitemap: "1250544630907535361", + eye: "1250544630043381872", + link: "1250543266806628412", + time: "1250544629053522030", + delete: "1250543248909406248", + money: "1250544627665211404", + money_delete: "1250544627178803313", + emoticon_smile_add: "1250544626054594560", + image_add: "1250544625068806215", + newspaper: "1250543497010872485", + bell: "1250544670178803722", + application_view_tile: "1250544666080837703", + star: "1250543254869381170", + compress: "1250544665091113080", + bell_delete: "1250544686121095289", + stop: "1250544664000467056", + creditcards: "1250544663014936798", + tag_blue: "1250543263656574996", + calendar: "1250543496255897660", + book_go: "1250544662037528717", + palette: "1250544661035225189", + sound: "1250543260196147323", + key: "1250543495286882375", + book_tabs: "1250544659940380672", + book_tabs_delete: "1250555962364919808", + wand: "1250544659038601266", + tick: "1250543251375653007", + microphone: "1250543257398542436", + user_add: "1250544566503739412", + }).map(([key, val]) => [key, `<:_:${val}>`]) +); + // https://discord-userdoccers.vercel.app/resources/guild#guild-features const GUILD_FEATURES = { - ACTIVITIES_ALPHA: {icon: "\u{1f680}", name: "Activities (Alpha)"}, - ACTIVITIES_EMPLOYEE: {icon: "\u{1f680}", name: "Activities (Staff)"}, + ACTIVITIES_ALPHA: {icon: SILK_ICONS.joystick, name: "Activities (Alpha)"}, + ACTIVITIES_EMPLOYEE: {icon: SILK_ICONS.joystick, name: "Activities (Staff)"}, ACTIVITIES_INTERNAL_DEV: { - icon: "\u{1f680}", + icon: SILK_ICONS.joystick, name: "Activities (Internal Dev)", }, - ANIMATED_BANNER: {icon: "\u{1f39e}"}, - ANIMATED_ICON: {icon: "\u{1f39e}"}, - APPLICATION_COMMAND_PERMISSIONS_V2: {icon: "\u2699\ufe0f", deprecated: true}, - AUTO_MODERATION: {icon: "\u{1f6e1}", name: "AutoMod"}, + ANIMATED_BANNER: {icon: SILK_ICONS.film}, + ANIMATED_ICON: {icon: SILK_ICONS.film}, + APPLICATION_COMMAND_PERMISSIONS_V2: { + icon: SILK_ICONS.cog, + name: "Command Permissions V2", + deprecated: true, + }, + AUTO_MODERATION: {icon: SILK_ICONS.shield, name: "AutoMod"}, AUTOMOD_TRIGGER_KEYWORD_FILTER: { - icon: "\u{1f6e1}", + icon: SILK_ICONS.shield, name: "AutoMod: Keywords", deprecated: true, }, AUTOMOD_TRIGGER_ML_SPAM_FILTER: { - icon: "\u{1f6e1}", + icon: SILK_ICONS.shield, name: "AutoMod: Spam", deprecated: true, }, AUTOMOD_TRIGGER_SPAM_LINK_FILTER: { - icon: "\u{1f6e1}", + icon: SILK_ICONS.shield, name: "AutoMod: Spam Links", deprecated: true, }, AUTOMOD_TRIGGER_USER_PROFILE: { - icon: "\u{1faaa}", + icon: SILK_ICONS.vcard, name: "AutoMod: User Profiles", }, - BANNER: {icon: "\u{1f5bc}"}, - BFG: {icon: "\u{1f388}", name: "BFG"}, + BANNER: {icon: SILK_ICONS.photo}, + BFG: {icon: SILK_ICONS.world_add, name: "BFG"}, BOOSTING_TIERS_EXPERIMENT_MEDIUM_GUILD: { - icon: "\u{1f48e}", + icon: SILK_ICONS.ruby, name: "Boosting: Medium Guild", deprecated: true, }, BOOSTING_TIERS_EXPERIMENT_SMALL_GUILD: { - icon: "\u{1f48e}", + icon: SILK_ICONS.ruby, name: "Boosting: Small Guild", deprecated: true, }, - BOT_DEVELOPER_EARLY_ACCESS: {icon: "\u{1f9ea}"}, - BURST_REACTIONS: {icon: "\u2728", name: "Super Reactions"}, - CHANNEL_BANNER: {icon: "\u{1f5bc}", deprecated: true}, + BOT_DEVELOPER_EARLY_ACCESS: {icon: SILK_ICONS.cog}, + BURST_REACTIONS: {icon: SILK_ICONS.wand, name: "Super Reactions"}, + CHANNEL_BANNER: {icon: SILK_ICONS.photo, deprecated: true}, CHANNEL_ICON_EMOJIS_GENERATED: { - icon: "\u{1f603}", + icon: SILK_ICONS.emoticon_smile, name: "Channel Icon Emojis", }, - CHANNEL_HIGHLIGHTS: {icon: "\u{1f5c3}"}, - CHANNEL_HIGHLIGHTS_DISABLED: {icon: "\u{1f6ab}"}, - CLAN: {icon: "\u2694\ufe0f"}, - CLAN_DISCOVERY_DISABLED: {icon: "\u2694\ufe0f"}, + CHANNEL_HIGHLIGHTS: {icon: SILK_ICONS.comments_star}, + CHANNEL_HIGHLIGHTS_DISABLED: {icon: SILK_ICONS.comments_delete}, + CLAN: {icon: SILK_ICONS.flag_blue}, + CLAN_DISCOVERY_DISABLED: {icon: SILK_ICONS.flag_red}, CLAN_PILOT_GENSHIN: { - icon: "\u2694\ufe0f", + icon: SILK_ICONS.flag_blue, name: "Clan Pilot: Genshin Impact", }, CLAN_PILOT_VALORANT: { - icon: "\u2694\ufe0f", + icon: SILK_ICONS.flag_blue, name: "Clan Pilot: Valorant", }, CLAN_PREPILOT_GENSHIN: { - icon: "\u2694\ufe0f", + icon: SILK_ICONS.flag_blue, name: "Clan Pre-Pilot: Genshin Impact", }, CLAN_PREPILOT_VALORANT: { - icon: "\u2694\ufe0f", + icon: SILK_ICONS.flag_blue, name: "Clan Pre-Pilot: Valorant", }, - CLYDE_DISABLED: {icon: "\u{1f6ab}", deprecated: true}, - CLYDE_ENABLED: {icon: "\u{1f916}", deprecated: true}, - CLYDE_EXPERIMENT_ENABLED: {icon: "\u{1f9ea}", deprecated: true}, - COMMERCE: {icon: "\u{1f6cd}"}, - COMMUNITY: {icon: "\u{1f3d8}"}, - COMMUNITY_CANARY: {icon: "\u{1f9ea}", name: "Community (Canary)"}, + CLYDE_DISABLED: {icon: SILK_ICONS.cog_delete, deprecated: true}, + CLYDE_ENABLED: {icon: SILK_ICONS.cog, deprecated: true}, + CLYDE_EXPERIMENT_ENABLED: {icon: SILK_ICONS.bug, deprecated: true}, + COMMERCE: {icon: SILK_ICONS.basket}, + COMMUNITY: {icon: SILK_ICONS.group}, + COMMUNITY_CANARY: {icon: SILK_ICONS.bug, name: "Community (Canary)"}, COMMUNITY_EXP_LARGE_GATED: { - icon: "\u{1f3d8}", + icon: SILK_ICONS.group, name: "Community: Large - Gated", }, COMMUNITY_EXP_LARGE_UNGATED: { - icon: "\u{1f3d8}", + icon: SILK_ICONS.group, name: "Community: Large - Ungated", }, - COMMUNITY_EXP_MEDIUM: {icon: "\u{1f3d8}", name: "Community: Medium"}, - CREATOR_ACCEPTED_NEW_TERMS: {icon: "\u2611\ufe0f"}, - CREATOR_MONETIZABLE: {icon: "\u{1f4b0}", name: "Monetization"}, + COMMUNITY_EXP_MEDIUM: {icon: SILK_ICONS.group, name: "Community: Medium"}, + CREATOR_ACCEPTED_NEW_TERMS: {icon: SILK_ICONS.check_checked_green}, + CREATOR_MONETIZABLE: {icon: SILK_ICONS.money, name: "Monetization"}, CREATOR_MONETIZABLE_DISABLED: { - icon: "\u{1f6ab}", + icon: SILK_ICONS.money_delete, name: "Monetization Disabled", }, CREATOR_MONETIZABLE_PENDING_NEW_OWNER_ONBOARDING: { - icon: "\u{1f4b1}", + icon: SILK_ICONS.money, name: "Monetization: Pending Onboarding", }, CREATOR_MONETIZABLE_PROVISIONAL: { - icon: "\u{1f4b0}", + icon: SILK_ICONS.money, name: "Monetization (Provisional)", }, CREATOR_MONETIZABLE_RESTRICTED: { - icon: "\u26d4", + icon: SILK_ICONS.money_delete, name: "Monetization Restricted", }, CREATOR_MONETIZABLE_WHITEGLOVE: { - icon: "\u{1f9ea}", + icon: SILK_ICONS.bug, name: "Monetization White Glove", }, CREATOR_MONETIZATION_APPLICATION_ALLOWLIST: { - icon: "\u{1f4dc}", + icon: SILK_ICONS.money, name: "Monetization Allow List", }, - 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}"}, + CREATOR_STORE_PAGE: {icon: SILK_ICONS.basket}, + DEVELOPER_SUPPORT_SERVER: {icon: SILK_ICONS.cog}, + DISCOVERABLE: {icon: SILK_ICONS.world}, + DISCOVERABLE_DISABLED: {icon: SILK_ICONS.world_delete}, + ENABLED_DISCOVERABLE_BEFORE: {icon: SILK_ICONS.world}, EXPOSED_TO_ACTIVITIES_WTP_EXPERIMENT: { - icon: "\u{1f9ea}", + icon: SILK_ICONS.bug, name: "Activities: WTP Experiment", }, EXPOSED_TO_BOOSTING_TIERS_EXPERIMENT: { - icon: "\u{1f9ea}", + icon: SILK_ICONS.bug, name: "Boosting: Tiers Experiment", deprecated: true, }, - FEATURABLE: {icon: "\u{1f9ed}", deprecated: true}, - FORCE_RELAY: {icon: "\u{1f4fb}", deprecated: true}, - GENSHIN_L30: {icon: "\u{1f3ae}", name: "Clans: Genshin Impact L30"}, - GUESTS_ENABLED: {icon: "\u{1f465}"}, - GUILD_AUTOMOD_DEFAULT_LIST: {icon: "\u{1f6e1}", deprecated: true}, + FEATURABLE: {icon: SILK_ICONS.world, deprecated: true}, + FORCE_RELAY: {icon: SILK_ICONS.transmit_blue, deprecated: true}, + GENSHIN_L30: {icon: SILK_ICONS.controller, name: "Clans: Genshin Impact L30"}, + GUESTS_ENABLED: {icon: SILK_ICONS.status_away}, + GUILD_AUTOMOD_DEFAULT_LIST: { + icon: SILK_ICONS.shield, + name: "AutoMod: Default List", + deprecated: true, + }, GUILD_COMMUNICATION_DISABLED_GUILDS: { - icon: "\u{1f6d1}", + icon: SILK_ICONS.time, name: "Member Timeouts", deprecated: true, }, GUILD_HOME_DEPRECATION_OVERRIDE: { - icon: "\u{1f3da}", + icon: SILK_ICONS.house, name: "Home Tab Deprecation Hidden", }, - GUILD_HOME_OVERRIDE: {icon: "\u{1f3e0}", name: "Home Tab (Override)"}, - GUILD_HOME_TEST: {icon: "\u{1f9ea}", name: "Home Tab (Testing)"}, - GUILD_MEMBER_VERIFICATION_EXPERIMENT: {icon: "\u{1f9ea}"}, - GUILD_ONBOARDING: {icon: "\u{1f5f3}", name: "Onboarding"}, + GUILD_HOME_OVERRIDE: {icon: SILK_ICONS.house, name: "Home Tab (Override)"}, + GUILD_HOME_TEST: {icon: SILK_ICONS.bug, name: "Home Tab (Testing)"}, + GUILD_MEMBER_VERIFICATION_EXPERIMENT: {icon: SILK_ICONS.bug}, + GUILD_ONBOARDING: { + icon: SILK_ICONS.application_view_tile, + name: "Onboarding", + }, GUILD_ONBOARDING_ADMIN_ONLY: { - icon: "\u{1f5f3}", + icon: SILK_ICONS.application_view_tile, name: "Onboarding: Admin Only", deprecated: true, }, GUILD_ONBOARDING_EVER_ENABLED: { - icon: "\u{1f5f3}", + icon: SILK_ICONS.application_view_tile, name: "Onboarding: Ever Enabled", }, GUILD_ONBOARDING_HAS_PROMPTS: { - icon: "\u{1f5f3}", + icon: SILK_ICONS.application_view_tile, name: "Onboarding: Has Prompts", }, - GUILD_PRODUCTS: {icon: "\u{1f6cd}", name: "Products"}, + GUILD_PRODUCTS: {icon: SILK_ICONS.basket, name: "Products"}, GUILD_PRODUCTS_ALLOW_ARCHIVED_FILE: { - icon: "\u{1f5dc}", + icon: SILK_ICONS.compress, name: "Products: Allow Archives", }, GUILD_ROLE_SUBSCRIPTIONS: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions", deprecated: true, }, GUILD_ROLE_SUBSCRIPTION_PURCHASE_FEEDBACK_LOOP: { - icon: "\u{1f4b3}", - name: "Role Subscriptions: Purchase Feedback Loop", + icon: SILK_ICONS.creditcards, + name: "Role Subscriptions: Feedback Loop", deprecated: true, }, GUILD_ROLE_SUBSCRIPTION_TIER_TEMPLATE: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions: Tier Template", deprecated: true, }, GUILD_ROLE_SUBSCRIPTION_TRIALS: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions: Trials", deprecated: true, }, - GUILD_SERVER_GUIDE: {icon: "\u{1f9ae}", name: "Server Guide"}, + GUILD_SERVER_GUIDE: {icon: SILK_ICONS.book_go, name: "Server Guide"}, GUILD_WEB_PAGE_VANITY_URL: { - icon: "\u{1f4c4}", + icon: SILK_ICONS.page_link, name: "Guild Web Page Vanity URL", }, - 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}"}, - LURKABLE: {icon: "\u{1f441}", deprecated: true}, - MARKETPLACES_CONNECTION_ROLES: {icon: "\u{1f517}", deprecated: true}, - MEDIA_CHANNEL_ALPHA: {icon: "\u{1f5bc}", deprecated: true}, - MEMBER_LIST_DISABLED: {icon: "\u{1f6ab}", deprecated: true}, - MEMBER_PROFILES: {icon: "\u{1faaa}", deprecated: true}, - MEMBER_SAFETY_PAGE_ROLLOUT: {icon: "\u{1f6e1}"}, + HAD_EARLY_ACTIVITIES_ACCESS: { + icon: SILK_ICONS.joystick, + name: "Activities: Had Early Access", + }, + HAS_DIRECTORY_ENTRY: {icon: SILK_ICONS.book_open_mark}, + HIDE_FROM_EXPERIMENT_UI: { + icon: SILK_ICONS.bug, + name: "Hidden from Experiment UI", + }, + HUB: {icon: SILK_ICONS.sitemap, name: "Student Hub"}, + INCREASED_THREAD_LIMIT: { + icon: SILK_ICONS.comments, + name: "Threads: Increased Limit", + }, + INTERNAL_EMPLOYEE_ONLY: { + icon: SILK_ICONS.key, + name: "Staff: Internal Employee Only", + }, + INVITE_SPLASH: {icon: SILK_ICONS.photo}, + INVITES_DISABLED: {icon: SILK_ICONS.lock}, + LINKED_TO_HUB: {icon: SILK_ICONS.sitemap, name: "Student Hub: Linked to Hub"}, + LURKABLE: {icon: SILK_ICONS.eye, deprecated: true}, + MARKETPLACES_CONNECTION_ROLES: {icon: SILK_ICONS.link, deprecated: true}, + MEDIA_CHANNEL_ALPHA: {icon: SILK_ICONS.photo, deprecated: true}, + MEMBER_LIST_DISABLED: {icon: SILK_ICONS.delete, deprecated: true}, + MEMBER_PROFILES: {icon: SILK_ICONS.vcard, deprecated: true}, + MEMBER_SAFETY_PAGE_ROLLOUT: {icon: SILK_ICONS.shield}, MEMBER_VERIFICATION_GATE_ENABLED: { - icon: "\u{1f6e1}", + icon: SILK_ICONS.shield, name: "Member Verification Gate", }, MEMBER_VERIFICATION_MANUAL_APPROVAL: { - icon: "\u2705", + icon: SILK_ICONS.user_add, name: "Member Join Requests", }, MOBILE_WEB_ROLE_SUBSCRIPTION_PURCHASE_PAGE: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions: Mobile Page", deprecated: true, }, - MONETIZATION_ENABLED: {icon: "\u{1f4b0}", deprecated: true}, - MORE_EMOJI: {icon: "\u{1f603}"}, - MORE_STICKERS: {icon: "\u{1f5bc}"}, - NEWS: {icon: "\u{1f4f0}"}, - NEW_THREAD_PERMISSIONS: {icon: "\u{1f9f5}", deprecated: true}, - NON_COMMUNITY_RAID_ALERTS: {icon: "\u{1f6a8}"}, - PARTNERED: {icon: "\u267e\ufe0f"}, - PREMIUM_TIER_3_OVERRIDE: {icon: "\u{1f48e}"}, - PREVIEW_ENABLED: {icon: "\u{1f441}"}, - PRIVATE_THREADS: {icon: "\u{1f9f5}", deprecated: true}, + MONETIZATION_ENABLED: {icon: SILK_ICONS.money, deprecated: true}, + MORE_EMOJI: {icon: SILK_ICONS.emoticon_smile_add}, + MORE_STICKERS: {icon: SILK_ICONS.photo}, + NEWS: {icon: SILK_ICONS.newspaper, name: "Announcement Channels"}, + NEW_THREAD_PERMISSIONS: { + icon: SILK_ICONS.comments, + name: "Threads: New Permissions", + deprecated: true, + }, + NON_COMMUNITY_RAID_ALERTS: {icon: SILK_ICONS.bell}, + PARTNERED: {icon: SILK_ICONS.star}, + PREMIUM_TIER_3_OVERRIDE: {icon: SILK_ICONS.ruby}, + PREVIEW_ENABLED: {icon: SILK_ICONS.eye}, + PRIVATE_THREADS: { + icon: SILK_ICONS.comments, + name: "Threads: Private Threads", + deprecated: true, + }, PRODUCTS_AVAILABLE_FOR_PURCHASE: { - icon: "\u{1f6cd}", + icon: SILK_ICONS.basket, name: "Products: Has Purchasable", }, - PUBLIC: {icon: "\u{1f9ed}", deprecated: true}, - PUBLIC_DISABLED: {icon: "\u{1f6ab}", deprecated: true}, - RAID_ALERTS_DISABLED: {icon: "\u{1f6ab}"}, - RAID_ALERTS_ENABLED: {icon: "\u{1f6a8}", deprecated: true}, - RELAY_ENABLED: {icon: "\u{1f4fb}", name: "Sharded"}, - RESTRICT_SPAM_RISK_GUILDS: {icon: "\u{1f6d1}", deprecated: true}, - ROLE_ICONS: {icon: "\u{1f3f7}"}, + PUBLIC: {icon: SILK_ICONS.world, deprecated: true}, + PUBLIC_DISABLED: {icon: SILK_ICONS.world_delete, deprecated: true}, + RAID_ALERTS_DISABLED: {icon: SILK_ICONS.bell_delete}, + RAID_ALERTS_ENABLED: {icon: SILK_ICONS.bell, deprecated: true}, + RELAY_ENABLED: {icon: SILK_ICONS.transmit_blue, name: "Sharded"}, + RESTRICT_SPAM_RISK_GUILDS: {icon: SILK_ICONS.stop, deprecated: true}, + ROLE_ICONS: {icon: SILK_ICONS.tag_blue}, ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions: Has Purchasable", }, - ROLE_SUBSCRIPTIONS_ENABLED: {icon: "\u{1f4b3}"}, + ROLE_SUBSCRIPTIONS_ENABLED: {icon: SILK_ICONS.creditcards}, ROLE_SUBSCRIPTIONS_ENABLED_FOR_PURCHASE: { - icon: "\u{1f4b3}", + icon: SILK_ICONS.creditcards, name: "Role Subscriptions: Has Purchasable", deprecated: true, }, - SEVEN_DAY_THREAD_ARCHIVE: {icon: "\u{1f9f5}", deprecated: true}, - SHARD: {icon: "\u{1f4a0}", name: "Student Hub: Shard"}, + SEVEN_DAY_THREAD_ARCHIVE: { + icon: SILK_ICONS.comments, + name: "Threads: Seven Day Archive", + deprecated: true, + }, + SHARD: {icon: SILK_ICONS.sitemap, name: "Student Hub: Shard"}, SHARED_CANVAS_FRIENDS_AND_FAMILY_TEST: { - icon: "\u{1f58c}", + icon: SILK_ICONS.palette, name: "Shared Canvas (Testing)", }, - SOUNDBOARD: {icon: "\u{1f50a}"}, - SUMMARIES_ENABLED: {icon: "\u{1f4da}", deprecated: true}, + SOUNDBOARD: {icon: SILK_ICONS.sound}, + SUMMARIES_ENABLED: {icon: SILK_ICONS.book_tabs, deprecated: true}, SUMMARIES_ENABLED_GA: { - icon: "\u{1f4da}", + icon: SILK_ICONS.book_tabs, name: "Summaries (General Access)", }, - SUMMARIES_DISABLED_BY_USER: {icon: "\u26d4"}, - SUMMARIES_ENABLED_BY_USER: {icon: "\u{1f4da}"}, + SUMMARIES_DISABLED_BY_USER: {icon: SILK_ICONS.book_tabs_delete}, + SUMMARIES_ENABLED_BY_USER: {icon: SILK_ICONS.book_tabs}, SUMMARIES_LONG_LOOKBACK: { - icon: "\u{1f5c2}", + icon: SILK_ICONS.book_tabs, name: "Summaries: Long Lookback", }, STAFF_LEVEL_COLLABORATOR_REQUIRED: { - icon: "\u{1f6e0}", + icon: SILK_ICONS.key, name: "Staff: Collaborators Only", }, STAFF_LEVEL_RESTRICTED_COLLABORATOR_REQUIRED: { - icon: "\u{1f6e0}", + icon: SILK_ICONS.key, name: "Staff: Restricted Collaborators Only", }, - TEXT_IN_STAGE_ENABLED: {icon: "\u{1f5e8}", deprecated: true}, - TEXT_IN_VOICE_ENABLED: {icon: "\u{1f5e8}", deprecated: true}, - THREADS_ENABLED: {icon: "\u{1f9f5}", deprecated: true}, + TEXT_IN_STAGE_ENABLED: {icon: SILK_ICONS.comments, deprecated: true}, + TEXT_IN_VOICE_ENABLED: {icon: SILK_ICONS.comments, deprecated: true}, + THREADS_ENABLED: {icon: SILK_ICONS.comments, deprecated: true}, THREADS_ENABLED_TESTING: { - icon: "\u{1f9f5}", - name: "Thread Enabled (Testing)", + icon: SILK_ICONS.comments, + name: "Threads Enabled (Testing)", deprecated: true, }, - THREAD_DEFAULT_AUTO_ARCHIVE_DURATION: {icon: "\u{1f9f5}"}, + THREAD_DEFAULT_AUTO_ARCHIVE_DURATION: { + icon: SILK_ICONS.comments, + name: "Threads: Default Auto Archive", + }, THREADS_ONLY_CHANNEL: { - icon: "\u{1f5e8}", + icon: SILK_ICONS.comments, name: "Forum Channels", deprecated: true, }, - THREE_DAY_THREAD_ARCHIVE: {icon: "\u{1f9f5}", deprecated: true}, + THREE_DAY_THREAD_ARCHIVE: { + icon: SILK_ICONS.comments, + name: "Threads: Three Day Archive", + deprecated: true, + }, TICKETED_EVENTS_ENABLED: { - icon: "\u{1f39f}", + icon: SILK_ICONS.calendar, name: "Scheduled Events", deprecated: true, }, TICKETING_ENABLED: { - icon: "\u{1f39f}", + icon: SILK_ICONS.calendar, name: "Scheduled Events", deprecated: true, }, - VALORANT_L30: {icon: "\u{1f3ae}", name: "Clans: Valorant L30"}, - VANITY_URL: {icon: "\u{1f517}"}, - VERIFIED: {icon: "\u2b50"}, - VIP_REGIONS: {icon: "\u{1f399}"}, - VOICE_CHANNEL_EFFECTS: {icon: "\u2728", deprecated: true}, - VOICE_IN_THREADS: {icon: "\u{1f399}"}, - WELCOME_SCREEN_ENABLED: {icon: "\u{1f44b}"}, + VALORANT_L30: {icon: SILK_ICONS.controller, name: "Clans: Valorant L30"}, + VANITY_URL: {icon: SILK_ICONS.link, name: "Vanity URL"}, + VERIFIED: {icon: SILK_ICONS.tick}, + VIP_REGIONS: {icon: SILK_ICONS.microphone, name: "VIP Voice Regions"}, + VOICE_CHANNEL_EFFECTS: {icon: SILK_ICONS.wand, deprecated: true}, + VOICE_IN_THREADS: {icon: SILK_ICONS.microphone}, + WELCOME_SCREEN_ENABLED: { + icon: SILK_ICONS.application_view_tile, + name: "Onboarding: Welcome Screen", + }, }; const GUILD_VERIFICATION_LEVELS = [ @@ -650,6 +757,37 @@ async function getGuild(id) { return null; } +function enumKeyToName(key) { + return key + .split("_") + .map((x) => x[0] + x.substring(1).toLowerCase()) + .join(" "); +} + +function formatGuildFeatures(features) { + return features + .sort((a, b) => { + const feature_a = GUILD_FEATURES[a]; + const feature_b = GUILD_FEATURES[b]; + + return (feature_a?.name ?? enumKeyToName(a)).localeCompare( + feature_b?.name ?? enumKeyToName(b) + ); + }) + .map( + (feature) => + `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ + GUILD_FEATURES[feature]?.deprecated ? "~~" : "" + }${ + GUILD_FEATURES[feature]?.name ?? + feature + .split("_") + .map((x) => x[0] + x.substring(1).toLowerCase()) + .join(" ") + }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` + ); +} + // }}} // {{{ commands @@ -1007,18 +1145,7 @@ lookupinvite.callback = async function (msg, line) { } : null; - const features = invite.guild.features.sort().map( - (feature) => - `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ - GUILD_FEATURES[feature]?.deprecated ? "~~" : "" - }${ - GUILD_FEATURES[feature]?.name ?? - feature - .split("_") - .map((x) => x[0] + x.substring(1).toLowerCase()) - .join(" ") - }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` - ); + const features = formatGuildFeatures(invite.guild.features); if (invite.type == 0) { embed.fields.push( @@ -1779,7 +1906,7 @@ pomelo.callback = async function (msg, line) { if (usernames.length == 1) { const name = usernames[0]; if (name.length > 32 || !POMELO_REGEX.test(name)) - return {reaction: "\u{1f6ab}"}; + return {reaction: SILK_ICONS.delete}; const res = await hf.bot.requestHandler.request( "POST", @@ -2452,22 +2579,11 @@ guildinfo.callback = async function (msg, line) { ).length; embed.fields.push({ name: "Member Count", - value: `<:online:1152111668856361010>${online} online\t\t<:offline:1152111682886316042>${guild.memberCount} members\n<:boat:546212361472835584> ${bots}, \u2713 ${verfifiedBots}`, + value: `<:_:1152111668856361010>${online} online<:_:1250561747476152460><:_:1250561747476152460><:_:1152111682886316042>${guild.memberCount} members\n${SILK_ICONS.cog} ${bots}<:_:1250561747476152460>${SILK_ICONS.tick} ${verfifiedBots}`, inline: false, }); - const features = guild.features.sort().map( - (feature) => - `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ - GUILD_FEATURES[feature]?.deprecated ? "~~" : "" - }${ - GUILD_FEATURES[feature]?.name ?? - feature - .split("_") - .map((x) => x[0] + x.substring(1).toLowerCase()) - .join(" ") - }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` - ); + const features = formatGuildFeatures(guild.features); embed.fields.push({ name: `Features (${features.length})`, @@ -2588,18 +2704,7 @@ guildinfo.callback = async function (msg, line) { inline: false, }); - const features = guild.features.sort().map( - (feature) => - `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ - GUILD_FEATURES[feature]?.deprecated ? "~~" : "" - }${ - GUILD_FEATURES[feature]?.name ?? - feature - .split("_") - .map((x) => x[0] + x.substring(1).toLowerCase()) - .join(" ") - }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` - ); + const features = formatGuildFeatures(guild.features); embed.fields.push({ name: `Features (${features.length})`, @@ -2717,18 +2822,7 @@ guildinfo.callback = async function (msg, line) { }); if (invite?.guild?.features) { - const features = invite.guild.features.sort().map( - (feature) => - `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ - GUILD_FEATURES[feature]?.deprecated ? "~~" : "" - }${ - GUILD_FEATURES[feature]?.name ?? - feature - .split("_") - .map((x) => x[0] + x.substring(1).toLowerCase()) - .join(" ") - }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` - ); + const features = formatGuildFeatures(invite.guild.features); embed.fields.push({ name: `Features (${features.length})`, @@ -2817,18 +2911,7 @@ guildinfo.callback = async function (msg, line) { inline: false, }); - const features = invite.guild.features.sort().map( - (feature) => - `${GUILD_FEATURES[feature]?.icon ?? "\u2753"} ${ - GUILD_FEATURES[feature]?.deprecated ? "~~" : "" - }${ - GUILD_FEATURES[feature]?.name ?? - feature - .split("_") - .map((x) => x[0] + x.substring(1).toLowerCase()) - .join(" ") - }${GUILD_FEATURES[feature]?.deprecated ? "~~" : ""}` - ); + const features = formatGuildFeatures(invite.guild.features); embed.fields.push({ name: `Features (${features.length})`,