use the new badge system

This commit is contained in:
derpystuff 2023-05-29 21:19:07 +02:00
parent ec624d6ad0
commit fea2b21e73

View file

@ -35,27 +35,91 @@ async function getMember(context, query){
}
}
const { Constants } = require('detritus-client')
const { Constants } = require('detritus-client');
const { link } = require('./markdown');
const { UserFlags } = Constants
const BADGE_TYPES = Object.freeze({
"staff": {
description: "Discord Staff",
link: "https://discord.com/company",
icon: "<:badge_staff:903276633161609246>"
},
"partner": {
description: "Partnered Server Owner",
link: "https://discord.com/partners",
icon: "<:badge_partner:903276631559389196>"
},
"certified_moderator": {
description: "Moderator Programs Alumni",
link: "https://discord.com/safety",
icon: "<:badge_mod_new:1049594117849632778>"
},
"hypesquad": {
description: "HypeSquad Events",
link: "https://discord.com/hypesquad",
icon: "<:badge_hypesquad:903276631408394351>"
},
"hypesquad_house_1": {
description: "HypeSquad Bravery",
link: "https://discord.com/settings/hypesquad-online",
icon: "<:badge_hypesquad_bravery:903276631790059540>"
},
"hypesquad_house_2": {
description: "HypeSquad Brilliance",
link: "https://discord.com/settings/hypesquad-online",
icon: "<:badge_hypesquad_brilliance:903276631261597706>"
},
"hypesquad_house_3": {
description: "HypeSquad Balance",
link: "https://discord.com/settings/hypesquad-online",
icon: "<:badge_hypesquad_balance:903276631211249674>"
},
"bug_hunter_level_1": {
description: "Discord Bug Hunter",
link: "https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs",
icon: "<:badge_bughunter:903276631173509131>"
},
"bug_hunter_level_2": {
description: "Discord Bug Hunter",
link: "https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs",
icon: "<:badge_bughunter_2:903276883523797033>"
},
"active_developer": {
description: "Active Developer",
link: "https://support-dev.discord.com/hc/en-us/articles/10113997751447?ref=badge",
icon: "<:active_developer:1112811846009892915>"
},
"verified_developer": {
description: "Early Verified Bot Developer",
icon: "<:badge_botdev:903276631173509130>",
link: "https://discord.com/developers" //not on the actual badge, added for consistency
},
"early_supporter": {
description: "Early Supporter",
link: "https://discord.com/settings/premium",
icon: "<:badge_earlysupporter:903277590956101672>"
}
})
const BADGES = Object.freeze({
[UserFlags.STAFF]: '<:badge_staff:903276633161609246>',
[UserFlags.PARTNER]: '<:badge_partner:903276631559389196>',
[UserFlags.DISCORD_CERTIFIED_MODERATOR]: '<:badge_mod_new:1049594117849632778>',
[UserFlags.HYPESQUAD]: '<:badge_hypesquad:903276631408394351>',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_1]: '<:badge_hypesquad_bravery:903276631790059540>',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_2]: '<:badge_hypesquad_brilliance:903276631261597706>',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_3]: '<:badge_hypesquad_balance:903276631211249674>',
[UserFlags.BUG_HUNTER_LEVEL_1]: '<:badge_bughunter:903276631173509131>',
[UserFlags.BUG_HUNTER_LEVEL_2]: '<:badge_bughunter_2:903276883523797033>',
[1<<22]: '<:active_developer:1112811846009892915>',
[UserFlags.VERIFIED_DEVELOPER]: '<:badge_botdev:903276631173509130>',
[UserFlags.PREMIUM_EARLY_SUPPORTER]: '<:badge_earlysupporter:903277590956101672>',
[UserFlags.STAFF]: 'staff',
[UserFlags.PARTNER]: 'partner',
[UserFlags.DISCORD_CERTIFIED_MODERATOR]: 'certified_moderator',
[UserFlags.HYPESQUAD]: 'hypesquad',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_1]: 'hypesquad_house_1',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_2]: 'hypesquad_house_2',
[UserFlags.HYPESQUAD_ONLINE_HOUSE_3]: 'hypesquad_house_3',
[UserFlags.BUG_HUNTER_LEVEL_1]: 'bug_hunter_level_1',
[UserFlags.BUG_HUNTER_LEVEL_2]: 'bug_hunter_level_2',
[1<<22]: 'active_developer',
[UserFlags.VERIFIED_DEVELOPER]: 'verified_developer',
[UserFlags.PREMIUM_EARLY_SUPPORTER]: 'early_supporter',
})
function renderBadges(user){
let badges = [];
for(const flag of Object.keys(BADGES)) if(user.hasFlag(parseInt(flag))) badges.push(BADGES[flag])
for(const flag of Object.keys(BADGES)) if(user.hasFlag(parseInt(flag))) badges.push(link(BADGE_TYPES[BADGES[flag]].link, BADGE_TYPES[BADGES[flag]].icon, BADGE_TYPES[BADGES[flag]].description))
return badges;
}