diff --git a/index.tsx b/index.tsx
new file mode 100644
index 0000000..bbf405d
--- /dev/null
+++ b/index.tsx
@@ -0,0 +1,121 @@
+//
+import { ProfileBadge } from "@api/Badges";
+import { Badges } from "@api/index";
+import { definePluginSettings } from "@api/Settings";
+import { Devs } from "@utils/constants";
+import definePlugin, { OptionType } from "@utils/types";
+import { Forms, Toasts, UserStore } from "@webpack/common";
+import { User } from "discord-types/general";
+
+function isCurrentUser(userId: string) {
+ const u = UserStore.getCurrentUser().id;
+ return u == userId;
+}
+
+
+export default definePlugin({
+ name: "ClientSideBadges",
+ description: "Adds client-side badges to your profile. Other users can't see them!",
+ authors: [Devs.nin0dev],
+ settingsAboutComponent: () => <>
+ Only you can view the badges. No, this can't and won't be changed.
+ You may need to reload Discord after editing your settings for them to apply.
+ >,
+ settings: definePluginSettings({
+ discordStaff: {
+ type: OptionType.BOOLEAN
+ },
+ partneredServerOwner: {
+ type: OptionType.BOOLEAN
+ },
+ earlySupporter: {
+ type: OptionType.BOOLEAN
+ },
+ activeDeveloper: {
+ type: OptionType.BOOLEAN
+ },
+ earlyVerifiedBotDeveloper: {
+ type: OptionType.BOOLEAN
+ },
+ moderatorProgramsAlumni: {
+ type: OptionType.BOOLEAN
+ },
+ bugHunter: {
+ type: OptionType.BOOLEAN
+ },
+ goldenBugHunter: {
+ type: OptionType.BOOLEAN
+ }
+ }),
+ async start() {
+ const NativeBadges: ProfileBadge[] = [
+ {
+ description: "Discord Staff",
+ image: "https://cdn.discordapp.com/badge-icons/5e74e9b61934fc1f67c65515d1f7e60d.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.discordStaff,
+ link: "https://discord.com/company"
+ },
+ {
+ description: "Partnered Server Owner",
+ image: "https://cdn.discordapp.com/badge-icons/3f9748e53446a137a052f3454e2de41e.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.partneredServerOwner,
+ link: "https://discord.com/partners"
+ },
+ {
+ description: "Early Supporter",
+ image: "https://cdn.discordapp.com/badge-icons/7060786766c9c840eb3019e725d2b358.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.earlySupporter,
+ link: "https://discord.com/settings/premium"
+ },
+ {
+ description: "Active Developer",
+ image: "https://cdn.discordapp.com/badge-icons/6bdc42827a38498929a4920da12695d9.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.activeDeveloper,
+ link: "https://support-dev.discord.com/hc/en-us/articles/10113997751447"
+ },
+ {
+ description: "Early Verified Bot Developer",
+ image: "https://cdn.discordapp.com/badge-icons/6df5892e0f35b051f8b61eace34f4967.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.earlyVerifiedBotDeveloper,
+ link: "https://discord.com/settings/premium"
+ },
+ {
+ description: "Moderator Programs Alumni",
+ image: "https://cdn.discordapp.com/badge-icons/fee1624003e2fee35cb398e125dc479b.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.moderatorProgramsAlumni,
+ link: "https://discord.com/settings/premium"
+ },
+ {
+ description: "Discord Bug Hunter",
+ image: "https://cdn.discordapp.com/badge-icons/2717692c7dca7289b35297368a940dd0.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.bugHunter,
+ link: "https://discord.com/settings/premium"
+ },
+ {
+ description: "Discord Bug Hunter",
+ image: "https://cdn.discordapp.com/badge-icons/848f79194d4be5ff5f81505cbd0ce1e6.png",
+ position: Badges.BadgePosition.END,
+ shouldShow: ({ userId }) => isCurrentUser(userId) && this.settings.store.goldenBugHunter,
+ link: "https://discord.com/settings/premium"
+ }
+ ];
+ NativeBadges.forEach(b => Badges.addBadge(b));
+ },
+ async stop() {
+ Toasts.show({
+ id: Toasts.genId(),
+ message: "To clear out your client-side badges, reload Discord.",
+ type: Toasts.Type.MESSAGE,
+ options: {
+ position: Toasts.Position.BOTTOM, // NOBODY LIKES TOASTS AT THE TOP
+ },
+ });
+ }
+});