Make Donor Badge Api Based
Some checks are pending
Sync to Codeberg / Sync Codeberg and Github (push) Waiting to run
Test / Test (push) Waiting to run
Release / Build Equicord (push) Waiting to run

This commit is contained in:
thororen1234 2025-03-15 19:25:05 -04:00
parent f22464f1ce
commit bbb641b378
No known key found for this signature in database
2 changed files with 20 additions and 6 deletions

View file

@ -120,14 +120,14 @@ function EquicordSettings() {
return ( return (
<SettingsTab title="Equicord Settings"> <SettingsTab title="Equicord Settings">
{(isDonor(user?.id) || isVCDonor(user?.id)) ? ( {(isEquicordDonor(user?.id) || isVencordDonor(user?.id)) ? (
<SpecialCard <SpecialCard
title="Donations" title="Donations"
subtitle="Thank you for donating!" subtitle="Thank you for donating!"
description={ description={
isDonor(user?.id) && isVCDonor(user?.id) isEquicordDonor(user?.id) && isVencordDonor(user?.id)
? "All Vencord users can see your Vencord donor badge, and Equicord users can see your Equicord donor badge. To change your Vencord donor badge, contact @vending.machine. For your Equicord donor badge, make a ticket in Equicord's server." ? "All Vencord users can see your Vencord donor badge, and Equicord users can see your Equicord donor badge. To change your Vencord donor badge, contact @vending.machine. For your Equicord donor badge, make a ticket in Equicord's server."
: isVCDonor(user?.id) : isVencordDonor(user?.id)
? "All Vencord users can see your badge! You can change it at any time by messaging @vending.machine." ? "All Vencord users can see your badge! You can change it at any time by messaging @vending.machine."
: "All Equicord users can see your badge! You can change it at any time by making a ticket in Equicord's server." : "All Equicord users can see your badge! You can change it at any time by making a ticket in Equicord's server."
} }
@ -345,13 +345,13 @@ function DonateButtonComponent() {
); );
} }
function isVCDonor(userId: string): boolean { function isVencordDonor(userId: string): boolean {
const donorBadges = BadgeAPI.getDonorBadges(userId); const donorBadges = BadgeAPI.getDonorBadges(userId);
return GuildMemberStore.getMember(VC_GUILD_ID, userId)?.roles.includes(VC_DONOR_ROLE_ID) || !!donorBadges; return GuildMemberStore.getMember(VC_GUILD_ID, userId)?.roles.includes(VC_DONOR_ROLE_ID) || !!donorBadges;
} }
function isDonor(userId: string): boolean { export function isEquicordDonor(userId: string): boolean {
const donorBadges = BadgeAPI.getDonorBadges(userId); const donorBadges = BadgeAPI.getEquicordDonorBadges(userId);
return GuildMemberStore.getMember(GUILD_ID, userId)?.roles.includes(DONOR_ROLE_ID) || !!donorBadges; return GuildMemberStore.getMember(GUILD_ID, userId)?.roles.includes(DONOR_ROLE_ID) || !!donorBadges;
} }

View file

@ -24,6 +24,7 @@ import ErrorBoundary from "@components/ErrorBoundary";
import { Flex } from "@components/Flex"; import { Flex } from "@components/Flex";
import { Heart } from "@components/Heart"; import { Heart } from "@components/Heart";
import { openContributorModal } from "@components/PluginSettings/ContributorModal"; import { openContributorModal } from "@components/PluginSettings/ContributorModal";
import { isEquicordDonor } from "@components/VencordSettings/VencordTab";
import { Devs } from "@utils/constants"; import { Devs } from "@utils/constants";
import { Logger } from "@utils/Logger"; import { Logger } from "@utils/Logger";
import { Margins } from "@utils/margins"; import { Margins } from "@utils/margins";
@ -35,6 +36,7 @@ import { User } from "discord-types/general";
const CONTRIBUTOR_BADGE = "https://vencord.dev/assets/favicon.png"; const CONTRIBUTOR_BADGE = "https://vencord.dev/assets/favicon.png";
const EQUICORD_CONTRIBUTOR_BADGE = "https://i.imgur.com/57ATLZu.png"; const EQUICORD_CONTRIBUTOR_BADGE = "https://i.imgur.com/57ATLZu.png";
const EQUICORD_DONOR_BADGE = "https://cdn.nest.rip/uploads/78cb1e77-b7a6-4242-9089-e91f866159bf.png";
const ContributorBadge: ProfileBadge = { const ContributorBadge: ProfileBadge = {
description: "Vencord Contributor", description: "Vencord Contributor",
@ -52,6 +54,17 @@ const EquicordContributorBadge: ProfileBadge = {
onClick: (_, { userId }) => openContributorModal(UserStore.getUser(userId)) onClick: (_, { userId }) => openContributorModal(UserStore.getUser(userId))
}; };
const EquicordDonorBadge: ProfileBadge = {
description: "Equicord Donor",
image: EQUICORD_DONOR_BADGE,
position: BadgePosition.START,
shouldShow: ({ userId }) => {
const donorBadges = EquicordDonorBadges[userId]?.map(badge => badge.badge);
const hasDonorBadge = donorBadges?.includes("https://cdn.nest.rip/uploads/78cb1e77-b7a6-4242-9089-e91f866159bf.png");
return isEquicordDonor(userId) && !hasDonorBadge;
}
};
let DonorBadges = {} as Record<string, Array<Record<"tooltip" | "badge", string>>>; let DonorBadges = {} as Record<string, Array<Record<"tooltip" | "badge", string>>>;
let EquicordDonorBadges = {} as Record<string, Array<Record<"tooltip" | "badge", string>>>; let EquicordDonorBadges = {} as Record<string, Array<Record<"tooltip" | "badge", string>>>;
@ -118,6 +131,7 @@ export default definePlugin({
async start() { async start() {
Vencord.Api.Badges.addProfileBadge(ContributorBadge); Vencord.Api.Badges.addProfileBadge(ContributorBadge);
Vencord.Api.Badges.addProfileBadge(EquicordContributorBadge); Vencord.Api.Badges.addProfileBadge(EquicordContributorBadge);
Vencord.Api.Badges.addProfileBadge(EquicordDonorBadge);
await loadAllBadges(); await loadAllBadges();
}, },