From 44109d9979c98fa394833b53fbdce39beb1d5af5 Mon Sep 17 00:00:00 2001 From: thororen <78185467+thororen1234@users.noreply.github.com> Date: Thu, 18 Apr 2024 19:15:01 -0400 Subject: [PATCH] Update To Devs and Badges Sys --- README.md | 4 +- src/api/Badges.ts | 2 + src/components/ThemeSettings/ThemesTab.tsx | 2 +- src/equicordplugins/VCSupport/index.ts | 4 +- src/equicordplugins/allCallTimers/Timer.tsx | 2 +- .../allCallTimers/TimerIcon.tsx | 2 +- src/equicordplugins/allCallTimers/index.tsx | 4 +- .../allCallTimers/timerText.tsx | 6 +- src/equicordplugins/allowedMentions/index.tsx | 4 +- .../copyEmojiAsFormattedString/index.tsx | 4 +- src/equicordplugins/copyUserMention/index.tsx | 4 +- src/equicordplugins/customAppIcons/index.tsx | 18 +- .../customScreenShare.desktop/index.tsx | 4 +- src/equicordplugins/doNotLeak/index.ts | 4 +- .../doubleCounterVerifyBypass/index.tsx | 4 +- src/equicordplugins/emojiDumper/index.tsx | 6 +- src/equicordplugins/equicordCSS/index.ts | 4 +- src/equicordplugins/exportContacts/index.tsx | 4 +- .../components/BuilderButton.tsx | 0 .../components/ColorPickerModal.tsx | 0 .../components/ProfileEffectModal.tsx | 0 .../fakeProfileThemes/index.tsx | 4 +- .../fakeProfileThemes/types.ts | 0 src/equicordplugins/globalBadges/index.tsx | 4 +- src/equicordplugins/hideMessage/index.tsx | 4 +- src/equicordplugins/holyNotes/index.tsx | 4 +- src/equicordplugins/iRememberYou/index.tsx | 4 +- src/equicordplugins/keywordNotify/index.tsx | 4 +- src/equicordplugins/messageLatency/index.tsx | 4 +- src/equicordplugins/noNitroUpsell/index.ts | 4 +- src/equicordplugins/platformSpoofer/index.ts | 4 +- src/equicordplugins/purgeMessages/index.ts | 4 +- .../questionMarkReplacement/index.tsx | 4 +- src/equicordplugins/replyPingControl/index.ts | 4 +- src/equicordplugins/search/index.ts | 4 +- src/equicordplugins/searchFix/index.tsx | 4 +- .../sekaiStickers/characters.json.ts | 2 +- src/equicordplugins/sekaiStickers/index.tsx | 1 - .../serverProfilesToolBox/index.tsx | 2 +- .../showBadgesInChat/index.tsx | 18 +- .../showBadgesInChat/settings.tsx | 23 ++- .../soundBoardLogger/index.tsx | 8 +- .../unlimitedAccounts/index.ts | 4 +- src/equicordplugins/usrpfp/index.tsx | 4 +- src/equicordplugins/voiceChatUtils/index.tsx | 6 +- src/equicordplugins/voiceDownload/index.tsx | 4 +- src/equicordplugins/whosWatching/index.tsx | 4 +- src/plugins/_api/badges.tsx | 100 ++++++++-- src/plugins/equicordToolbox/index.tsx | 2 +- .../components/SpotifyIcon.tsx | 2 +- .../components/TwitchIcon.tsx | 2 +- src/plugins/memberListActivites/index.tsx | 2 +- src/plugins/oneko/index.ts | 34 +--- .../readAllNotificationsButton/index.tsx | 2 +- src/utils/constants.ts | 171 ++++++++---------- src/utils/react.tsx | 2 +- .../common/types/passiveupdatestate.d.ts | 2 +- src/webpack/common/types/voicestate.d.ts | 2 +- 58 files changed, 295 insertions(+), 240 deletions(-) rename src/{plugins => equicordplugins}/fakeProfileThemes/components/BuilderButton.tsx (100%) rename src/{plugins => equicordplugins}/fakeProfileThemes/components/ColorPickerModal.tsx (100%) rename src/{plugins => equicordplugins}/fakeProfileThemes/components/ProfileEffectModal.tsx (100%) rename src/{plugins => equicordplugins}/fakeProfileThemes/index.tsx (99%) rename src/{plugins => equicordplugins}/fakeProfileThemes/types.ts (100%) diff --git a/README.md b/README.md index 45f04fb7b..57614f90a 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ An enhanced version of [Vencord](https://github.com/Vendicated/Vencord) by [Vendicated](https://github.com/Vendicated) called Equicord +Thank you to [Suncord](https://github.com/verticalsync/Suncord) by verticalsync for letting me rob your code sometimes :3 + ![image](https://i.ibb.co/xgNr2gq/image-2023-11-24-122019133.png) ## Features - Third-party plugins implemented into the main build. - 100+ plugins built-in. - - Some highlights: SpotifyControls, MessageLogger, Experiments, GameActivityToggle, Translate, NoTrack, QuickReply, Free Emotes/Stickers, PermissionsViewer, + - Some highlights: SpotifyControls, MessageLogger, Experiments, GameActivityToggle, Translate, NoTrack, QuickReply, Free Emotes/Stickers, PermissionsViewer, CustomCommands, ShowHiddenChannels, PronounDB - Fairly lightweight despite the many inbuilt plugins - Works on any Discord branch: Stable, Canary or PTB all work (though for the best experience, I recommend stable!) diff --git a/src/api/Badges.ts b/src/api/Badges.ts index b50016c5b..2b4f4563b 100644 --- a/src/api/Badges.ts +++ b/src/api/Badges.ts @@ -80,7 +80,9 @@ export function _getBadges(args: BadgeUserArgs) { } } const donorBadges = (Plugins.BadgeAPI as unknown as typeof import("../plugins/_api/badges").default).getDonorBadges(args.user.id); + const equicordDonorBadges = (Plugins.BadgeAPI as unknown as typeof import("../plugins/_api/badges").default).getEquicordDonorBadges(args.user.id); if (donorBadges) badges.unshift(...donorBadges); + if (equicordDonorBadges) badges.unshift(...equicordDonorBadges); return badges; } diff --git a/src/components/ThemeSettings/ThemesTab.tsx b/src/components/ThemeSettings/ThemesTab.tsx index 89a76bce9..79434e7b8 100644 --- a/src/components/ThemeSettings/ThemesTab.tsx +++ b/src/components/ThemeSettings/ThemesTab.tsx @@ -21,7 +21,7 @@ import { useAwaiter } from "@utils/react"; import type { ThemeHeader } from "@utils/themes"; import { getThemeInfo, stripBOM, type UserThemeHeader } from "@utils/themes/bd"; import { usercssParse } from "@utils/themes/usercss"; -import { findByCodeLazy, findLazy } from "@webpack"; +import { findLazy } from "@webpack"; import { Button, Card, Forms, React, showToast, TabBar, Tooltip, useEffect, useMemo, useRef, useState } from "@webpack/common"; import type { ComponentType, Ref, SyntheticEvent } from "react"; import type { UserstyleHeader } from "usercss-meta"; diff --git a/src/equicordplugins/VCSupport/index.ts b/src/equicordplugins/VCSupport/index.ts index 4a7b46b31..f803c408e 100644 --- a/src/equicordplugins/VCSupport/index.ts +++ b/src/equicordplugins/VCSupport/index.ts @@ -4,11 +4,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "VCSupport", description: "Wumpus Dance + Support Warning", - authors: [Devs.thororen], + authors: [EquicordDevs.thororen], }); diff --git a/src/equicordplugins/allCallTimers/Timer.tsx b/src/equicordplugins/allCallTimers/Timer.tsx index 6734c6a5f..dd70a368a 100644 --- a/src/equicordplugins/allCallTimers/Timer.tsx +++ b/src/equicordplugins/allCallTimers/Timer.tsx @@ -35,4 +35,4 @@ export function Timer({ time }: Readonly<{ time: number; }>) { ); } -} \ No newline at end of file +} diff --git a/src/equicordplugins/allCallTimers/TimerIcon.tsx b/src/equicordplugins/allCallTimers/TimerIcon.tsx index 0a92b73a3..ebb5fb04d 100644 --- a/src/equicordplugins/allCallTimers/TimerIcon.tsx +++ b/src/equicordplugins/allCallTimers/TimerIcon.tsx @@ -23,4 +23,4 @@ export function TimerIcon({ height = 16, width = 16, className }: Readonly<{ C425,186.896,387.944,124.958,332.229,90.04z M355,272.5H212.5V130h30v112.5H355V272.5z"/> ); -} \ No newline at end of file +} diff --git a/src/equicordplugins/allCallTimers/index.tsx b/src/equicordplugins/allCallTimers/index.tsx index 9326ed262..36ec68bf2 100644 --- a/src/equicordplugins/allCallTimers/index.tsx +++ b/src/equicordplugins/allCallTimers/index.tsx @@ -6,7 +6,7 @@ import { definePluginSettings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { FluxDispatcher, GuildStore, UserStore } from "@webpack/common"; import { PassiveUpdateState, VoiceState } from "@webpack/types"; @@ -101,7 +101,7 @@ let runOneTime = true; export default definePlugin({ name: "AllCallTimers", description: "Add call timer to all users in a server voice channel.", - authors: [Devs.MaxHerbold, Devs.D3SOX], + authors: [EquicordDevs.MaxHerbold, Devs.D3SOX], settings, diff --git a/src/equicordplugins/allCallTimers/timerText.tsx b/src/equicordplugins/allCallTimers/timerText.tsx index 396784fd6..dc102b747 100644 --- a/src/equicordplugins/allCallTimers/timerText.tsx +++ b/src/equicordplugins/allCallTimers/timerText.tsx @@ -6,10 +6,10 @@ export function TimerText({ text, className }: Readonly<{ text: string; className: string; }>) { return
{text}
; -} \ No newline at end of file +} diff --git a/src/equicordplugins/allowedMentions/index.tsx b/src/equicordplugins/allowedMentions/index.tsx index bd2b81fc0..d02b8a1bc 100644 --- a/src/equicordplugins/allowedMentions/index.tsx +++ b/src/equicordplugins/allowedMentions/index.tsx @@ -7,7 +7,7 @@ import { addPreSendListener, MessageExtra, removePreSendListener } from "@api/MessageEvents"; import { definePluginSettings } from "@api/Settings"; import { Flex } from "@components/Flex"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import { isNonNullish } from "@utils/guards"; import definePlugin, { OptionType } from "@utils/types"; import { Alerts, GuildStore, PermissionsBits, PermissionStore } from "@webpack/common"; @@ -17,7 +17,7 @@ import { AllowedMentions, AllowedMentionsBar, AllowedMentionsProps, AllowedMenti export default definePlugin({ name: "AllowedMentions", - authors: [Devs.arHSM, Devs.amia], + authors: [EquicordDevs.arHSM, Devs.amia], description: "Fine grained control over whom to ping when sending or editing a message.", dependencies: ["MessageEventsAPI"], settings: definePluginSettings({ diff --git a/src/equicordplugins/copyEmojiAsFormattedString/index.tsx b/src/equicordplugins/copyEmojiAsFormattedString/index.tsx index f808b4b6b..0cc607e07 100644 --- a/src/equicordplugins/copyEmojiAsFormattedString/index.tsx +++ b/src/equicordplugins/copyEmojiAsFormattedString/index.tsx @@ -4,7 +4,7 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Clipboard, Menu, showToast, Toasts } from "@webpack/common"; @@ -54,7 +54,7 @@ function getEmojiFormattedString(target: Target): string { export default definePlugin({ name: "CopyEmojiAsString", description: "Add's button to copy emoji as formatted string!", - authors: [Devs.HAPPY_ENDERMAN, Devs.VISHNYA_NET_CHERESHNYA], + authors: [EquicordDevs.HAPPY_ENDERMAN, EquicordDevs.VISHNYA_NET_CHERESHNYA], contextMenus: { "expression-picker"(children, { target }: { target: Target; }) { if (target.dataset.type !== "emoji") return; diff --git a/src/equicordplugins/copyUserMention/index.tsx b/src/equicordplugins/copyUserMention/index.tsx index 9b5839a9f..814232657 100644 --- a/src/equicordplugins/copyUserMention/index.tsx +++ b/src/equicordplugins/copyUserMention/index.tsx @@ -5,7 +5,7 @@ */ import { NavContextMenuPatchCallback } from "@api/ContextMenu"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Clipboard, Menu } from "@webpack/common"; import type { Channel, User } from "discord-types/general"; @@ -45,7 +45,7 @@ const UserContextMenuPatch: NavContextMenuPatchCallback = (children, { user }: U export default definePlugin({ name: "CopyUserMention", - authors: [Devs.Cortex, Devs.castdrian], + authors: [EquicordDevs.Cortex, Devs.castdrian], description: "Adds a button to copy user's mention on the user context menu, works best with ValidUser.", contextMenus: { "user-context": UserContextMenuPatch diff --git a/src/equicordplugins/customAppIcons/index.tsx b/src/equicordplugins/customAppIcons/index.tsx index c28ea0ac1..95c76e9f2 100644 --- a/src/equicordplugins/customAppIcons/index.tsx +++ b/src/equicordplugins/customAppIcons/index.tsx @@ -17,7 +17,7 @@ */ import { Link } from "@components/Link"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { localStorage } from "@utils/localStorage"; import { closeAllModals, openModal } from "@utils/modal"; import definePlugin from "@utils/types"; @@ -51,7 +51,7 @@ function removeAppIcon() { export default definePlugin({ name: "CustomAppIcons", description: "Add/upload custom (In-)App Icons.", - authors: [Devs.HAPPY_ENDERMAN, Devs.SerStars], + authors: [EquicordDevs.HAPPY_ENDERMAN, EquicordDevs.SerStars], patches: [ { find: ".PremiumUpsellTypes.APP_ICON_UPSELL", @@ -99,12 +99,12 @@ export default definePlugin({ <> How to use? - - Go to { e.preventDefault(); closeAllModals(); FluxDispatcher.dispatch({ type: "USER_SETTINGS_MODAL_SET_SECTION", section: "Appearance" }); }}>Appearance Settings tab. - Scroll down to "In-app Icons" and click on "Preview App Icon". - And upload your own custom icon! - You can only use links when you are uploading your Custom Icon. - + + Go to { e.preventDefault(); closeAllModals(); FluxDispatcher.dispatch({ type: "USER_SETTINGS_MODAL_SET_SECTION", section: "Appearance" }); }}>Appearance Settings tab. + Scroll down to "In-app Icons" and click on "Preview App Icon". + And upload your own custom icon! + You can only use links when you are uploading your Custom Icon. + ); } -}); \ No newline at end of file +}); diff --git a/src/equicordplugins/customScreenShare.desktop/index.tsx b/src/equicordplugins/customScreenShare.desktop/index.tsx index a2c811cd6..981681db9 100644 --- a/src/equicordplugins/customScreenShare.desktop/index.tsx +++ b/src/equicordplugins/customScreenShare.desktop/index.tsx @@ -17,7 +17,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType, StartAt } from "@utils/types"; import { Forms, Menu, TextInput, useState } from "@webpack/common"; @@ -89,7 +89,7 @@ const settings = definePluginSettings({ export default definePlugin({ name: "CustomScreenShare", description: "Stream any resolution and any FPS!", - authors: [Devs.KawaiianPizza], + authors: [EquicordDevs.KawaiianPizza], settingsAboutComponent: () => ( Usage diff --git a/src/equicordplugins/doNotLeak/index.ts b/src/equicordplugins/doNotLeak/index.ts index 316d29850..07a12aa93 100644 --- a/src/equicordplugins/doNotLeak/index.ts +++ b/src/equicordplugins/doNotLeak/index.ts @@ -18,7 +18,7 @@ import { definePluginSettings, migratePluginSettings } from "@api/Settings"; import { disableStyle, enableStyle } from "@api/Styles"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import styles from "./style.css?managed"; @@ -54,7 +54,7 @@ migratePluginSettings("DoNotLeak", "Do Not Leak!"); export default definePlugin({ name: "DoNotLeak", description: "Hide all message contents and attachments when you're streaming or sharing your screen.", - authors: [Devs.Perny], + authors: [EquicordDevs.Perny], settings, start() { document.addEventListener("keyup", keyUpHandler); diff --git a/src/equicordplugins/doubleCounterVerifyBypass/index.tsx b/src/equicordplugins/doubleCounterVerifyBypass/index.tsx index 1f80b58b8..d0c657e65 100644 --- a/src/equicordplugins/doubleCounterVerifyBypass/index.tsx +++ b/src/equicordplugins/doubleCounterVerifyBypass/index.tsx @@ -5,7 +5,7 @@ */ import { NavContextMenuPatchCallback } from "@api/ContextMenu"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Alerts, Menu } from "@webpack/common"; import { Message } from "discord-types/general"; @@ -56,7 +56,7 @@ async function verify(link) { export default definePlugin({ name: "DoubleCounterBypass", description: "Bypass Double Counter verifications easily.", - authors: [Devs.nyx], + authors: [EquicordDevs.nyx], contextMenus: { "message": patchMessageContextMenu, diff --git a/src/equicordplugins/emojiDumper/index.tsx b/src/equicordplugins/emojiDumper/index.tsx index fec58e654..b8ad78f3e 100644 --- a/src/equicordplugins/emojiDumper/index.tsx +++ b/src/equicordplugins/emojiDumper/index.tsx @@ -5,7 +5,7 @@ */ import { addContextMenuPatch, findGroupChildrenByChildId, NavContextMenuPatchCallback, removeContextMenuPatch } from "@api/ContextMenu"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Menu } from "@webpack/common"; import type { Guild } from "discord-types/general"; @@ -26,9 +26,9 @@ export default definePlugin({ name: "emojiDumper", description: "Context menu to dump and download a server's emojis.", authors: [ - Devs.Cortex, + EquicordDevs.Cortex, Devs.Samwich, - Devs.Woosh, + EquicordDevs.Woosh, ], start() { addContextMenuPatch(["guild-context", "guild-header-popout"], Patch); diff --git a/src/equicordplugins/equicordCSS/index.ts b/src/equicordplugins/equicordCSS/index.ts index 0c9eca83c..21fe27d3c 100644 --- a/src/equicordplugins/equicordCSS/index.ts +++ b/src/equicordplugins/equicordCSS/index.ts @@ -19,7 +19,7 @@ // Import required modules and components import { definePluginSettings, migratePluginSettings } from "@api/Settings"; import { disableStyle, enableStyle } from "@api/Styles"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; // Importing the style managed fixes on and off switch @@ -81,7 +81,7 @@ migratePluginSettings("EquicordCSS", "EquicordBuiltIn"); export default definePlugin({ name: "EquicordCSS", description: "CSS for Equicord users. You will need to look at the settings.", - authors: [Devs.FoxStorm1, Devs.thororen], + authors: [EquicordDevs.FoxStorm1, EquicordDevs.thororen], dependencies: ["ThemeAttributes"], settings, start() { diff --git a/src/equicordplugins/exportContacts/index.tsx b/src/equicordplugins/exportContacts/index.tsx index 35313147d..8cbe2bb22 100644 --- a/src/equicordplugins/exportContacts/index.tsx +++ b/src/equicordplugins/exportContacts/index.tsx @@ -19,7 +19,7 @@ import "./styles.css"; import ErrorBoundary from "@components/ErrorBoundary"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Clipboard, Toasts } from "@webpack/common"; @@ -57,7 +57,7 @@ function getUsernames(contacts: ContactsList[], type: number): string[] { export default definePlugin({ name: "ExportContacts", description: "Export a list of friends to your clipboard. Adds a new button to the menu bar for the friends tab.", - authors: [Devs.dat_insanity], + authors: [EquicordDevs.dat_insanity], patches: [ { find: "fetchRelationships(){", diff --git a/src/plugins/fakeProfileThemes/components/BuilderButton.tsx b/src/equicordplugins/fakeProfileThemes/components/BuilderButton.tsx similarity index 100% rename from src/plugins/fakeProfileThemes/components/BuilderButton.tsx rename to src/equicordplugins/fakeProfileThemes/components/BuilderButton.tsx diff --git a/src/plugins/fakeProfileThemes/components/ColorPickerModal.tsx b/src/equicordplugins/fakeProfileThemes/components/ColorPickerModal.tsx similarity index 100% rename from src/plugins/fakeProfileThemes/components/ColorPickerModal.tsx rename to src/equicordplugins/fakeProfileThemes/components/ColorPickerModal.tsx diff --git a/src/plugins/fakeProfileThemes/components/ProfileEffectModal.tsx b/src/equicordplugins/fakeProfileThemes/components/ProfileEffectModal.tsx similarity index 100% rename from src/plugins/fakeProfileThemes/components/ProfileEffectModal.tsx rename to src/equicordplugins/fakeProfileThemes/components/ProfileEffectModal.tsx diff --git a/src/plugins/fakeProfileThemes/index.tsx b/src/equicordplugins/fakeProfileThemes/index.tsx similarity index 99% rename from src/plugins/fakeProfileThemes/index.tsx rename to src/equicordplugins/fakeProfileThemes/index.tsx index 37e1f45ef..530aebe43 100644 --- a/src/plugins/fakeProfileThemes/index.tsx +++ b/src/equicordplugins/fakeProfileThemes/index.tsx @@ -5,7 +5,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { Margins } from "@utils/margins"; import { copyWithToast } from "@utils/misc"; import { closeModal } from "@utils/modal"; @@ -286,7 +286,7 @@ const settings = definePluginSettings({ export default definePlugin({ name: "FakeProfileThemes", description: "Allows profile theming and the usage of profile effects by hiding the colors and effect ID in your About Me using invisible, zero-width characters", - authors: [Devs.ryan], + authors: [EquicordDevs.ryan], patches: [ { find: '"UserProfileStore"', diff --git a/src/plugins/fakeProfileThemes/types.ts b/src/equicordplugins/fakeProfileThemes/types.ts similarity index 100% rename from src/plugins/fakeProfileThemes/types.ts rename to src/equicordplugins/fakeProfileThemes/types.ts diff --git a/src/equicordplugins/globalBadges/index.tsx b/src/equicordplugins/globalBadges/index.tsx index 55dbca596..c566f4bf7 100644 --- a/src/equicordplugins/globalBadges/index.tsx +++ b/src/equicordplugins/globalBadges/index.tsx @@ -17,7 +17,7 @@ */ import { addBadge, BadgePosition, ProfileBadge, removeBadge } from "@api/Badges"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { React, Tooltip } from "@webpack/common"; import { User } from "discord-types/general"; @@ -111,7 +111,7 @@ const showCustom = () => Vencord.Settings.plugins.GlobalBadges.showCustom; export default definePlugin({ name: "GlobalBadges", description: "Adds global badges from other client mods", - authors: [Devs.HypedDomi, Devs.Wolfie], + authors: [Devs.HypedDomi, EquicordDevs.Wolfie], start: () => addBadge(Badge), stop: () => removeBadge(Badge), diff --git a/src/equicordplugins/hideMessage/index.tsx b/src/equicordplugins/hideMessage/index.tsx index 19647b51a..1ea82497e 100644 --- a/src/equicordplugins/hideMessage/index.tsx +++ b/src/equicordplugins/hideMessage/index.tsx @@ -11,7 +11,7 @@ import { get, set } from "@api/DataStore"; import { addAccessory, removeAccessory } from "@api/MessageAccessories"; import { definePluginSettings } from "@api/Settings"; import { classNameFactory } from "@api/Styles"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { Menu } from "@webpack/common"; @@ -129,7 +129,7 @@ export const settings = definePluginSettings({ export default definePlugin({ name: "HideMessage", description: "Adds a context menu option to hide messages", - authors: [Devs.Hanzy], + authors: [EquicordDevs.Hanzy], settings, contextMenus: { diff --git a/src/equicordplugins/holyNotes/index.tsx b/src/equicordplugins/holyNotes/index.tsx index ba7d75829..999dc9e42 100644 --- a/src/equicordplugins/holyNotes/index.tsx +++ b/src/equicordplugins/holyNotes/index.tsx @@ -22,7 +22,7 @@ import { NavContextMenuPatchCallback } from "@api/ContextMenu"; import { DataStore } from "@api/index"; import { addButton, removeButton } from "@api/MessagePopover"; import ErrorBoundary from "@components/ErrorBoundary"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { classes } from "@utils/misc"; import { openModal } from "@utils/modal"; import definePlugin from "@utils/types"; @@ -71,7 +71,7 @@ function ToolBarHeader() { export default definePlugin({ name: "HolyNotes", description: "Holy Notes allows you to save messages", - authors: [Devs.Wolfie], + authors: [EquicordDevs.Wolfie], dependencies: ["MessagePopoverAPI", "ChatInputButtonAPI"], patches: [ diff --git a/src/equicordplugins/iRememberYou/index.tsx b/src/equicordplugins/iRememberYou/index.tsx index c811c2508..622ac09ea 100644 --- a/src/equicordplugins/iRememberYou/index.tsx +++ b/src/equicordplugins/iRememberYou/index.tsx @@ -8,7 +8,7 @@ import { DataStore } from "@api/index"; import { addPreSendListener, removePreSendListener } from "@api/MessageEvents"; import ExpandableHeader from "@components/ExpandableHeader"; import { Heart } from "@components/Heart"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { openUserProfile } from "@utils/discord"; import * as Modal from "@utils/modal"; import definePlugin from "@utils/types"; @@ -370,7 +370,7 @@ class DataUI { export default definePlugin({ name: "IRememberYou", description: "Locally saves everyone you've been communicating with (including servers), in case of lose", - authors: [Devs.zoodogood], + authors: [EquicordDevs.zoodogood], dependencies: ["MessageEventsAPI"], patches: [], diff --git a/src/equicordplugins/keywordNotify/index.tsx b/src/equicordplugins/keywordNotify/index.tsx index e497e31d7..3adff6f06 100644 --- a/src/equicordplugins/keywordNotify/index.tsx +++ b/src/equicordplugins/keywordNotify/index.tsx @@ -10,7 +10,7 @@ import { DataStore } from "@api/index"; import { definePluginSettings } from "@api/Settings"; import { Flex } from "@components/Flex"; import { DeleteIcon } from "@components/Icons"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { useForceUpdater } from "@utils/react"; import definePlugin, { OptionType } from "@utils/types"; import { Button, Forms, TextInput, UserStore, UserUtils, useState } from "@webpack/common"; @@ -90,7 +90,7 @@ const settings = definePluginSettings({ export default definePlugin({ name: "KeywordNotify", - authors: [Devs.camila314], + authors: [EquicordDevs.camila314], description: "Sends a notification if a given message matches certain keywords or regexes", settings, patches: [ diff --git a/src/equicordplugins/messageLatency/index.tsx b/src/equicordplugins/messageLatency/index.tsx index a8633df37..b42f08d08 100644 --- a/src/equicordplugins/messageLatency/index.tsx +++ b/src/equicordplugins/messageLatency/index.tsx @@ -5,7 +5,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import { isNonNullish } from "@utils/guards"; import definePlugin, { OptionType } from "@utils/types"; import { waitFor } from "@webpack"; @@ -31,7 +31,7 @@ waitFor("HiddenVisually", mod => { export default definePlugin({ name: "MessageLatency", description: "Displays an indicator for messages that took ≥n seconds to send", - authors: [Devs.arHSM], + authors: [EquicordDevs.arHSM], settings: definePluginSettings({ latency: { type: OptionType.NUMBER, diff --git a/src/equicordplugins/noNitroUpsell/index.ts b/src/equicordplugins/noNitroUpsell/index.ts index 15c49ae09..a5c47768a 100644 --- a/src/equicordplugins/noNitroUpsell/index.ts +++ b/src/equicordplugins/noNitroUpsell/index.ts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { UserStore } from "@webpack/common"; import { User } from "discord-types/general"; @@ -20,7 +20,7 @@ interface ModifiedUser extends User { export default definePlugin({ name: "NoNitroUpsell", description: "Removes ALL of Discord's nitro upsells by tricking the client into thinking you have nitro.", - authors: [Devs.thororen], + authors: [EquicordDevs.thororen], ready(user: ModifiedUser): void { if (!user) return; if ("_realPremiumType" in user) return; diff --git a/src/equicordplugins/platformSpoofer/index.ts b/src/equicordplugins/platformSpoofer/index.ts index a439de180..98c1aaa40 100644 --- a/src/equicordplugins/platformSpoofer/index.ts +++ b/src/equicordplugins/platformSpoofer/index.ts @@ -5,7 +5,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; const settings = definePluginSettings({ @@ -30,7 +30,7 @@ const settings = definePluginSettings({ export default definePlugin({ name: "PlatformSpoofer", description: "Spoof what platform or device you're on", - authors: [Devs.Drag], + authors: [EquicordDevs.Drag], settings: settings, patches: [ { diff --git a/src/equicordplugins/purgeMessages/index.ts b/src/equicordplugins/purgeMessages/index.ts index c1f2ce658..9cd4015de 100644 --- a/src/equicordplugins/purgeMessages/index.ts +++ b/src/equicordplugins/purgeMessages/index.ts @@ -17,7 +17,7 @@ */ import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, sendBotMessage } from "@api/Commands"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { findByPropsLazy } from "@webpack"; import { MessageStore, UserStore } from "@webpack/common"; @@ -45,7 +45,7 @@ export default definePlugin({ name: "MessagePurge", description: "Purges messages from a channel", dependencies: ["CommandsAPI"], - authors: [Devs.bhop, Devs.nyx], + authors: [EquicordDevs.bhop, EquicordDevs.nyx], commands: [ { name: "purge", diff --git a/src/equicordplugins/questionMarkReplacement/index.tsx b/src/equicordplugins/questionMarkReplacement/index.tsx index e63d44b04..92c623b34 100644 --- a/src/equicordplugins/questionMarkReplacement/index.tsx +++ b/src/equicordplugins/questionMarkReplacement/index.tsx @@ -6,7 +6,7 @@ import { addPreSendListener, removePreSendListener } from "@api/MessageEvents"; import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; const settings = definePluginSettings({ @@ -31,7 +31,7 @@ function replaceQuestionMarks(content: string): string { export default definePlugin({ name: "QuestionMarkReplace", description: "Replace all question marks with chosen string, if message only contains question marks.", - authors: [Devs.nyx], + authors: [EquicordDevs.nyx], settings, diff --git a/src/equicordplugins/replyPingControl/index.ts b/src/equicordplugins/replyPingControl/index.ts index 6adda15cd..a3576e2e7 100644 --- a/src/equicordplugins/replyPingControl/index.ts +++ b/src/equicordplugins/replyPingControl/index.ts @@ -5,7 +5,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { MessageStore, showToast, UserStore } from "@webpack/common"; import { MessageJSON } from "discord-types/general"; @@ -43,7 +43,7 @@ export const settings = definePluginSettings({ export default definePlugin({ name: "ReplyPingControl", description: "Control whether to always or never get pinged on message replies, with a whitelist feature", - authors: [Devs.ant0n, Devs.MrDiamond], + authors: [Devs.ant0n, EquicordDevs.MrDiamond], settings, patches: [{ diff --git a/src/equicordplugins/search/index.ts b/src/equicordplugins/search/index.ts index 92a2a0ace..20c384135 100644 --- a/src/equicordplugins/search/index.ts +++ b/src/equicordplugins/search/index.ts @@ -17,12 +17,12 @@ */ import { ApplicationCommandOptionType, findOption } from "@api/Commands"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "Search", - authors: [Devs.JacobTm, Devs.thororen], + authors: [Devs.JacobTm, EquicordDevs.thororen], description: "Searchs the web.", dependencies: ["CommandsAPI"], commands: [{ diff --git a/src/equicordplugins/searchFix/index.tsx b/src/equicordplugins/searchFix/index.tsx index e59ce6b72..1051f5ebc 100644 --- a/src/equicordplugins/searchFix/index.tsx +++ b/src/equicordplugins/searchFix/index.tsx @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "SearchFix", description: 'Fixes the annoying "We dropped the magnifying glass!" error.', settingsAboutComponent: () => This fix isn't perfect, so you may have to reload the search bar to fix issues. Discord only allows a max offset of 5000 (this is what causes the magnifying glass error). This means that you can only see precisely 5000 messages into the past, and 5000 messages into the future (when sorting by old). This plugin just jumps to the opposite sorting method to try get around Discord's restriction, but if there is a large search result, and you try to view a message that is unobtainable with both methods of sorting, the plugin will simply show offset 0 (either newest or oldest message depending on the sorting method)., - authors: [Devs.jaxx], + authors: [EquicordDevs.jaxx], patches: [ { find: '"SearchStore"', diff --git a/src/equicordplugins/sekaiStickers/characters.json.ts b/src/equicordplugins/sekaiStickers/characters.json.ts index b28caa8f3..70cf97a51 100644 --- a/src/equicordplugins/sekaiStickers/characters.json.ts +++ b/src/equicordplugins/sekaiStickers/characters.json.ts @@ -5032,4 +5032,4 @@ export const characters = [ } } -]; \ No newline at end of file +]; diff --git a/src/equicordplugins/sekaiStickers/index.tsx b/src/equicordplugins/sekaiStickers/index.tsx index 0797c77ff..7b324361f 100644 --- a/src/equicordplugins/sekaiStickers/index.tsx +++ b/src/equicordplugins/sekaiStickers/index.tsx @@ -1,4 +1,3 @@ - /* * Vencord, a Discord client mod * Copyright (c) 2024 Vendicated and contributors diff --git a/src/equicordplugins/serverProfilesToolBox/index.tsx b/src/equicordplugins/serverProfilesToolBox/index.tsx index 55a983838..51dcb547e 100644 --- a/src/equicordplugins/serverProfilesToolBox/index.tsx +++ b/src/equicordplugins/serverProfilesToolBox/index.tsx @@ -91,4 +91,4 @@ export default definePlugin({ } ], -}); \ No newline at end of file +}); diff --git a/src/equicordplugins/showBadgesInChat/index.tsx b/src/equicordplugins/showBadgesInChat/index.tsx index f8bbe30a1..f89dd5041 100644 --- a/src/equicordplugins/showBadgesInChat/index.tsx +++ b/src/equicordplugins/showBadgesInChat/index.tsx @@ -5,7 +5,7 @@ */ import { addDecoration, removeDecoration } from "@api/MessageDecorations"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import { isPluginDev } from "@utils/misc"; import definePlugin from "@utils/types"; import { findByPropsLazy } from "@webpack"; @@ -46,6 +46,19 @@ function CheckBadge({ badge, author }: { badge: string; author: any; }): JSX.Ele ))} ); + case "EquicordDonor": + return ( + + {badges.getEquicordDonorBadges(author.id)?.map((badge: any) => ( + + ))} + + ); case "VencordContributer": return isPluginDev(author.id) ? ( @@ -96,6 +109,7 @@ function ChatBadges({ author }: any) { return ( {settings.store.showVencordDonor && } + {settings.store.showVencordDonor && } {settings.store.showVencordContributor && } {settings.store.showDiscordProfile && } {settings.store.showDiscordNitro && } @@ -105,7 +119,7 @@ function ChatBadges({ author }: any) { export default definePlugin({ name: "ShowBadgesInChat", - authors: [Devs.Inbestigator, Devs.KrystalSkull], + authors: [Devs.Inbestigator, EquicordDevs.KrystalSkull], description: "Shows the message author's badges beside their name in chat.", dependencies: ["MessageDecorationsAPI"], patches: [ diff --git a/src/equicordplugins/showBadgesInChat/settings.tsx b/src/equicordplugins/showBadgesInChat/settings.tsx index 0dfadfe2e..57a19c997 100644 --- a/src/equicordplugins/showBadgesInChat/settings.tsx +++ b/src/equicordplugins/showBadgesInChat/settings.tsx @@ -23,6 +23,18 @@ const settings = definePluginSettings({ hidden: true, default: 0 }, + showEquicordDonor: { + type: OptionType.BOOLEAN, + description: "Enable to show Vencord donor badges in chat.", + hidden: true, + default: true + }, + EquicordDonorPosition: { + type: OptionType.NUMBER, + description: "The position of the Vencord Donor badges.", + hidden: true, + default: 1 + }, showVencordContributor: { type: OptionType.BOOLEAN, description: "Enable to show Vencord contributor badges in chat.", @@ -33,7 +45,7 @@ const settings = definePluginSettings({ type: OptionType.NUMBER, description: "The position of the Vencord Contributor badge.", hidden: true, - default: 1 + default: 2 }, showDiscordProfile: { type: OptionType.BOOLEAN, @@ -45,7 +57,7 @@ const settings = definePluginSettings({ type: OptionType.NUMBER, description: "The position of the Discord profile badges.", hidden: true, - default: 2 + default: 3 }, showDiscordNitro: { type: OptionType.BOOLEAN, @@ -57,7 +69,7 @@ const settings = definePluginSettings({ type: OptionType.NUMBER, description: "The position of the Discord Nitro badge.", hidden: true, - default: 3 + default: 4 }, badgeSettings: { type: OptionType.COMPONENT, @@ -71,6 +83,7 @@ export default settings; const BadgeSettings = () => { const [images, setImages] = useState([ { src: "https://cdn.discordapp.com/emojis/1026533070955872337.png", shown: settings.store.showVencordDonor, title: "Vencord donor badges", key: "VencordDonor", position: settings.store.VencordDonorPosition }, + { src: "https://i.imgur.com/KsxHlbD.png", shown: settings.store.showEquicordDonor, title: "Equicord donor badges", key: "EquicordDonor", position: settings.store.EquicordDonorPosition }, { src: "https://i.imgur.com/OypoHrV.png", shown: settings.store.showVencordContributor, title: "Vencord/Equicord contributor badge", key: "VencordContributer", position: settings.store.VencordContributorPosition }, { src: "https://cdn.discordapp.com/badge-icons/bf01d1073931f921909045f3a39fd264.png", shown: settings.store.showDiscordProfile, title: "Discord profile badges (HypeSquad, Discord Staff, Active Developer, etc.)", key: "DiscordProfile", position: settings.store.DiscordProfilePosition }, { src: "https://cdn.discordapp.com/badge-icons/2ba85e8026a8614b640c2837bcdfe21b.png", shown: settings.store.showDiscordNitro, title: "Nitro badge", key: "DiscordNitro", position: settings.store.DiscordNitroPosition } @@ -83,6 +96,10 @@ const BadgeSettings = () => { settings.store.VencordDonorPosition = image.position; settings.store.showVencordDonor = image.shown; break; + case "EquiordDonor": + settings.store.EquicordDonorPosition = image.position; + settings.store.showEquicordDonor = image.shown; + break; case "VencordContributer": settings.store.VencordContributorPosition = image.position; settings.store.showVencordContributor = image.shown; diff --git a/src/equicordplugins/soundBoardLogger/index.tsx b/src/equicordplugins/soundBoardLogger/index.tsx index 5cd198798..4b72e2ad3 100644 --- a/src/equicordplugins/soundBoardLogger/index.tsx +++ b/src/equicordplugins/soundBoardLogger/index.tsx @@ -6,7 +6,7 @@ import { addChatBarButton, ChatBarButton, removeChatBarButton } from "@api/ChatButtons"; import { disableStyle, enableStyle } from "@api/Styles"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { FluxDispatcher } from "@webpack/common"; @@ -29,10 +29,10 @@ const chatBarIcon: ChatBarButton = () => { export default definePlugin({ name: "SoundBoardLogger", authors: [ - Devs.ImpishMoxxie, - Devs.fres, + EquicordDevs.Moxxie, + EquicordDevs.fres, Devs.echo, - Devs.thororen + EquicordDevs.thororen ], settings, patches: [ diff --git a/src/equicordplugins/unlimitedAccounts/index.ts b/src/equicordplugins/unlimitedAccounts/index.ts index c8e123518..cbeb3b5e9 100644 --- a/src/equicordplugins/unlimitedAccounts/index.ts +++ b/src/equicordplugins/unlimitedAccounts/index.ts @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "UnlimitedAccounts", description: "Increases the amount of accounts you can add.", - authors: [Devs.Balaclava, Devs.thororen], + authors: [EquicordDevs.Balaclava, EquicordDevs.thororen], patches: [ { find: "multiaccount_cta_tooltip_seen", diff --git a/src/equicordplugins/usrpfp/index.tsx b/src/equicordplugins/usrpfp/index.tsx index 61bf78304..eba6a6f76 100644 --- a/src/equicordplugins/usrpfp/index.tsx +++ b/src/equicordplugins/usrpfp/index.tsx @@ -6,7 +6,7 @@ import { definePluginSettings } from "@api/Settings"; import { Link } from "@components/Link"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; import { User } from "discord-types/general"; @@ -33,7 +33,7 @@ export default definePlugin({ name: "UserPFP", description: "Allows you to use an animated avatar without Nitro", - authors: [Devs.nexpid, Devs.thororen, Devs.FoxStorm1, Devs.coolesding], + authors: [EquicordDevs.nexpid, EquicordDevs.thororen, EquicordDevs.FoxStorm1, EquicordDevs.coolesding], settings, settingsAboutComponent: () => ( <> diff --git a/src/equicordplugins/voiceChatUtils/index.tsx b/src/equicordplugins/voiceChatUtils/index.tsx index 4db1e09d6..4c0777750 100644 --- a/src/equicordplugins/voiceChatUtils/index.tsx +++ b/src/equicordplugins/voiceChatUtils/index.tsx @@ -5,7 +5,7 @@ */ import { NavContextMenuPatchCallback } from "@api/ContextMenu"; -import { Devs } from "@utils/constants"; +import { Devs, EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { findStoreLazy } from "@webpack"; import { GuildChannelStore, Menu, React, RestAPI, UserStore } from "@webpack/common"; @@ -125,8 +125,8 @@ const VoiceChannelContext: NavContextMenuPatchCallback = (children, { channel }: export default definePlugin({ name: "VoiceChatUtilities", description: "This plugin allows you to perform multiple actions on an entire channel (move, mute, disconnect, etc.) (originally by dutake)", - authors: [Devs.Dams, Devs.D3SOX], + authors: [EquicordDevs.Dams, Devs.D3SOX], contextMenus: { "channel-context": VoiceChannelContext }, -}); \ No newline at end of file +}); diff --git a/src/equicordplugins/voiceDownload/index.tsx b/src/equicordplugins/voiceDownload/index.tsx index 6c89f39bb..8ee9a2a49 100644 --- a/src/equicordplugins/voiceDownload/index.tsx +++ b/src/equicordplugins/voiceDownload/index.tsx @@ -7,13 +7,13 @@ import "./style.css"; import ErrorBoundary from "@components/ErrorBoundary"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ name: "VoiceDownload", description: "Download voice messages.", - authors: [Devs.puv], + authors: [EquicordDevs.puv], patches: [ { find: ".rippleContainer", diff --git a/src/equicordplugins/whosWatching/index.tsx b/src/equicordplugins/whosWatching/index.tsx index 924492694..215502508 100644 --- a/src/equicordplugins/whosWatching/index.tsx +++ b/src/equicordplugins/whosWatching/index.tsx @@ -6,7 +6,7 @@ import { classNameFactory } from "@api/Styles"; import { Flex } from "@components/Flex"; -import { Devs } from "@utils/constants"; +import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import { findByPropsLazy, findStoreLazy } from "@webpack"; import { Forms, i18n, RelationshipStore, Tooltip, UserStore, useStateFromStores } from "@webpack/common"; @@ -54,7 +54,7 @@ const { encodeStreamKey }: { export default definePlugin({ name: "WhosWatching", description: "Lets you view what users are watching your stream by hovering over the screenshare icon", - authors: [Devs.fres], + authors: [EquicordDevs.fres], patches: [ { find: ".Masks.STATUS_SCREENSHARE,width:32", diff --git a/src/plugins/_api/badges.tsx b/src/plugins/_api/badges.tsx index 804b7fd5a..5494d387a 100644 --- a/src/plugins/_api/badges.tsx +++ b/src/plugins/_api/badges.tsx @@ -45,24 +45,24 @@ const ContributorBadge: ProfileBadge = { }; let DonorBadges = {} as Record>>; +let EquicordDonorBadges = {} as Record>>; -async function loadBadges(noCache = false) { - - DonorBadges = {}; - +async function loadBadges(url: string, noCache = false) { const init = {} as RequestInit; - if (noCache) - init.cache = "no-cache"; + if (noCache) init.cache = "no-cache"; - const one = await fetch("https://badges.vencord.dev/badges.json", init) - .then(r => r.json()); - - const two = await fetch("https://raw.githubusercontent.com/Equicord/Ignore/main/badges.json", init) - .then(r => r.json()); - - DonorBadges = { ...one, ...two }; + return await fetch(url, init).then(r => r.json()); } +async function loadAllBadges(noCache = false) { + const vencordBadges = await loadBadges("https://badges.vencord.dev/badges.json", noCache); + const equicordBadges = await loadBadges("https://raw.githubusercontent.com/Equicord/Ignore/main/badges.json", noCache); + + DonorBadges = vencordBadges; + EquicordDonorBadges = equicordBadges; +} + + export default definePlugin({ name: "BadgeAPI", description: "API to add badges to users.", @@ -99,7 +99,7 @@ export default definePlugin({ toolboxActions: { async "Refetch Badges"() { - await loadBadges(true); + await loadAllBadges(true); Toasts.show({ id: Toasts.genId(), message: "Successfully refetched badges!", @@ -110,7 +110,7 @@ export default definePlugin({ async start() { Vencord.Api.Badges.addBadge(ContributorBadge); - await loadBadges(); + await loadAllBadges(); }, renderBadgeComponent: ErrorBoundary.wrap((badge: ProfileBadge & BadgeUserArgs) => { @@ -186,5 +186,75 @@ export default definePlugin({ )); }, })); + }, + + getEquicordDonorBadges(userId: string) { + return EquicordDonorBadges[userId]?.map(badge => ({ + image: badge.badge, + description: badge.tooltip, + position: BadgePosition.START, + props: { + style: { + borderRadius: "50%", + transform: "scale(0.9)" // The image is a bit too big compared to default badges + } + }, + onClick() { + const modalKey = openModal(props => ( + { + closeModal(modalKey); + // Will get my own in the future + VencordNative.native.openExternal("https://github.com/sponsors/Vendicated"); + }}> + + + + + + Equicord Donor + + + + + + + + +
+ + This Badge is a special perk for Equicord Donors + + + Please consider supporting the development of Equicord by becoming a donor. It would mean a lot!! + +
+
+ + + + + +
+
+ )); + }, + })); } }); diff --git a/src/plugins/equicordToolbox/index.tsx b/src/plugins/equicordToolbox/index.tsx index 176122afe..66ac10a45 100644 --- a/src/plugins/equicordToolbox/index.tsx +++ b/src/plugins/equicordToolbox/index.tsx @@ -133,7 +133,7 @@ function ToolboxFragmentWrapper({ children }: { children: ReactNode[]; }) { export default definePlugin({ name: "EquicordToolbox", description: "Adds a button next to the inbox button in the channel header that houses Equicord quick actions", - authors: [Devs.Ven, Devs.AutumnVN, Devs.FoxStorm1], + authors: [Devs.Ven, Devs.AutumnVN], patches: [ { diff --git a/src/plugins/memberListActivites/components/SpotifyIcon.tsx b/src/plugins/memberListActivites/components/SpotifyIcon.tsx index 86c73bc30..9210169e2 100644 --- a/src/plugins/memberListActivites/components/SpotifyIcon.tsx +++ b/src/plugins/memberListActivites/components/SpotifyIcon.tsx @@ -8,4 +8,4 @@ import type { SVGProps } from "react"; export function SpotifyIcon(props: SVGProps) { return (); -} \ No newline at end of file +} diff --git a/src/plugins/memberListActivites/components/TwitchIcon.tsx b/src/plugins/memberListActivites/components/TwitchIcon.tsx index a493826ac..f0246c161 100644 --- a/src/plugins/memberListActivites/components/TwitchIcon.tsx +++ b/src/plugins/memberListActivites/components/TwitchIcon.tsx @@ -8,4 +8,4 @@ import type { SVGProps } from "react"; export function TwitchIcon(props: SVGProps) { return (); -} \ No newline at end of file +} diff --git a/src/plugins/memberListActivites/index.tsx b/src/plugins/memberListActivites/index.tsx index cda1292a2..3df0537d3 100644 --- a/src/plugins/memberListActivites/index.tsx +++ b/src/plugins/memberListActivites/index.tsx @@ -209,7 +209,7 @@ function getApplicationIcons(activities: Activity[]) { export default definePlugin({ name: "MemberListActivities", description: "Shows activity icons in the member list", - authors: [Devs.D3SOX, Devs.nyx], + authors: [Devs.D3SOX], tags: ["activity"], settings, diff --git a/src/plugins/oneko/index.ts b/src/plugins/oneko/index.ts index 6a36a360b..ad35268f5 100644 --- a/src/plugins/oneko/index.ts +++ b/src/plugins/oneko/index.ts @@ -21,11 +21,6 @@ import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; const settings = definePluginSettings({ - coinsEnabled: { - type: OptionType.BOOLEAN, - default: false, - description: "Enable coins feature (Requires reload)" - }, speed: { description: "Speed of Da Cat :3", type: OptionType.NUMBER, @@ -54,34 +49,19 @@ export default definePlugin({ name: "oneko", description: "cat follow mouse (real)", // Listing adryd here because this literally just evals her script - authors: [Devs.Ven, Devs.adryd, Devs.Gingi, Devs.adryd], + authors: [Devs.Ven, Devs.adryd], settings, start() { - const { coinsEnabled } = settings.store; - if (coinsEnabled) { - fetch("https://raw.githubusercontent.com/0xGingi/oneko.js/acf1ae58ca8bacd9af47a783c2e134136c35f948/oneko.js") - .then(x => x.text()) - .then(s => s.replace("const nekoSpeed = 10;", `const nekoSpeed = ${settings.store.speed};`)) - .then(s => s.replace("./oneko.gif", "https://raw.githubusercontent.com/adryd325/oneko.js/14bab15a755d0e35cd4ae19c931d96d306f99f42/oneko.gif") - .replace("(isReducedMotion)", "(false)")) - .then(x => x.replace("./coin.gif", "https://raw.githubusercontent.com/0xGingi/oneko.js/3de1bf554bb82b58a2c70f828e2420a881e5f283/coin.gif")) - .then(eval); - } - if (!coinsEnabled) { - fetch("https://raw.githubusercontent.com/adryd325/oneko.js/8fa8a1864aa71cd7a794d58bc139e755e96a236c/oneko.js") - .then(x => x.text()) - .then(s => s.replace("const nekoSpeed = 10;", `const nekoSpeed = ${settings.store.speed};`)) - .then(s => s.replace("./oneko.gif", "https://raw.githubusercontent.com/adryd325/oneko.js/14bab15a755d0e35cd4ae19c931d96d306f99f42/oneko.gif") - .replace("(isReducedMotion)", "(false)")) - .then(eval); - } + fetch("https://raw.githubusercontent.com/adryd325/oneko.js/8fa8a1864aa71cd7a794d58bc139e755e96a236c/oneko.js") + .then(x => x.text()) + .then(s => s.replace("const nekoSpeed = 10;", `const nekoSpeed = ${settings.store.speed};`)) + .then(s => s.replace("./oneko.gif", "https://raw.githubusercontent.com/adryd325/oneko.js/14bab15a755d0e35cd4ae19c931d96d306f99f42/oneko.gif") + .replace("(isReducedMotion)", "(false)")) + .then(eval); }, stop() { document.getElementById("oneko")?.remove(); - if (typeof window.removeCoins === "function") { - window.removeCoins(); - } } }); diff --git a/src/plugins/readAllNotificationsButton/index.tsx b/src/plugins/readAllNotificationsButton/index.tsx index 635747644..ae66e11a4 100644 --- a/src/plugins/readAllNotificationsButton/index.tsx +++ b/src/plugins/readAllNotificationsButton/index.tsx @@ -61,7 +61,7 @@ const ReadAllButton = () => ( export default definePlugin({ name: "ReadAllNotificationsButton", description: "Read all server notifications with a single button click!", - authors: [Devs.kemo, Devs.KrystalSkull], + authors: [Devs.kemo], dependencies: ["ServerListAPI"], renderReadAllButton: () => , diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 0a8bd966b..9731460f1 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -51,6 +51,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "Cynosphere", id: 150745989836308480n }, + Trwy: { + name: "trey", + id: 354427199023218689n + }, Megu: { name: "Megumin", id: 545581357812678656n @@ -264,6 +268,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "Dziurwa", id: 1001086404203389018n }, + F53: { + name: "F53", + id: 280411966126948353n + }, AutumnVN: { name: "AutumnVN", id: 393694671383166998n @@ -372,6 +380,69 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "ant0n", id: 145224646868860928n }, + philipbry: { + name: "philipbry", + id: 554994003318276106n + }, + Korbo: { + name: "Korbo", + id: 455856406420258827n + }, + maisymoe: { + name: "maisy", + id: 257109471589957632n, + }, + Mopi: { + name: "Mopi", + id: 1022189106614243350n + }, + Grzesiek11: { + name: "Grzesiek11", + id: 368475654662127616n, + }, + Samwich: { + name: "Samwich", + id: 976176454511509554n, + }, + coolelectronics: { + name: "coolelectronics", + id: 696392247205298207n, + }, + Av32000: { + name: "Av32000", + id: 593436735380127770n, + }, + Kyuuhachi: { + name: "Kyuuhachi", + id: 236588665420251137n, + }, + Elvyra: { + name: "Elvyra", + id: 708275751816003615n, + }, + Inbestigator: { + name: "Inbestigator", + id: 761777382041714690n + }, + newwares: { + name: "newwares", + id: 421405303951851520n + }, + nakoyasha: { + name: "nakoyasha", + id: 222069018507345921n + }, + Sqaaakoi: { + name: "Sqaaakoi", + id: 259558259491340288n + }, + Byron: { + name: "byeoon", + id: 1167275288036655133n + } +} satisfies Record); + +export const EquicordDevs = Object.freeze({ nexpid: { name: "Nexpid", id: 853550207039832084n @@ -396,106 +467,34 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "thororen", id: 848339671629299742n }, - F53: { - name: "F53", - id: 280411966126948353n - }, - philipbry: { - name: "philipbry", - id: 554994003318276106n - }, MrDiamond: { name: "MrDiamond", id: 523338295644782592n }, - Shalev: { - name: "Shalev4R", - id: 1122950616520593428n - }, fres: { name: "fres", id: 843448897737064448n }, - ImpishMoxxie: { - name: "Moxxie", - id: 712653921692155965n - }, - nakoyasha: { - name: "nakoyasha", - id: 222069018507345921n - }, - SimplyData: { - name: "SimplyData", - id: 301494563514613762n - }, arHSM: { name: "arHSM", id: 841509053422632990n }, - Korbo: { - name: "Korbo", - id: 455856406420258827n - }, - SaucyDuck: { - name: "SaucyDuck", - id: 1004904120056029256n - }, Dams: { name: "Dams", id: 769939285792653325n }, - maisymoe: { - name: "maisy", - id: 257109471589957632n, - }, - GeorgeV22: { - name: "GeorgeV22", - id: 261487490769092608n, - }, - Grzesiek11: { - name: "Grzesiek11", - id: 368475654662127616n, - }, KawaiianPizza: { name: "KawaiianPizza", id: 501000986735673347n, }, - Gingi: { - name: "0xGingi", - id: 351859727568994314n, - }, - Kyuuhachi: { - name: "Kyuuhachi", - id: 236588665420251137n, - }, - Samwich: { - name: "Samwich", - id: 976176454511509554n, - }, Perny: { name: "Perny", id: 1101508982570504244n, }, - coolelectronics: { - name: "coolelectronics", - id: 696392247205298207n, - }, - varram: { - name: "varram", - id: 588937914423967766n - }, jaxx: { name: "Jaxx", id: 901016640253227059n, }, - Mopi: { - name: "Mopi", - id: 1022189106614243350n - }, - Av32000: { - name: "Av32000", - id: 593436735380127770n, - }, Balaclava: { name: "Balaclava", id: 854886148455399436n @@ -504,30 +503,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "Moxxie", id: 712653921692155965n, }, - Ethan: { - name: "Ethan", - id: 721717126523781240n, - }, - Elvyra: { - name: "Elvyra", - id: 708275751816003615n, - }, dat_insanity: { name: "dat_insanity", id: 0n, }, - newwares: { - name: "newwares", - id: 421405303951851520n - }, - Trwy: { - name: "trey", - id: 354427199023218689n - }, - Inbestigator: { - name: "Inbestigator", - id: 761777382041714690n - }, coolesding: { name: "cooles", id: 406084422308331522n, @@ -540,10 +519,6 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "puv", id: 469441552251355137n }, - Sqaaakoi: { - name: "Sqaaakoi", - id: 259558259491340288n, - }, HAPPY_ENDERMAN: { name: "Happy enderman", id: 1083437693347827764n @@ -560,10 +535,6 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "MaxHerbold", id: 1189527130611138663n, }, - Byron: { - name: "byeoon", - id: 1167275288036655133n, - }, Combatmaster: { name: "Combatmaster331", id: 790562534503612437n diff --git a/src/utils/react.tsx b/src/utils/react.tsx index 061958a67..ad1e95683 100644 --- a/src/utils/react.tsx +++ b/src/utils/react.tsx @@ -162,4 +162,4 @@ export function useFixedTimer({ interval = 1000, initialTime = Date.now() }: Fix }, [initialTime]); return time; -} \ No newline at end of file +} diff --git a/src/webpack/common/types/passiveupdatestate.d.ts b/src/webpack/common/types/passiveupdatestate.d.ts index ac25e6f0d..468dd9641 100644 --- a/src/webpack/common/types/passiveupdatestate.d.ts +++ b/src/webpack/common/types/passiveupdatestate.d.ts @@ -38,4 +38,4 @@ export interface PassiveUpdateState { id: string; })[]; voiceStates?: VoiceState[]; -} \ No newline at end of file +} diff --git a/src/webpack/common/types/voicestate.d.ts b/src/webpack/common/types/voicestate.d.ts index f2a3cd90d..aa7ddcce2 100644 --- a/src/webpack/common/types/voicestate.d.ts +++ b/src/webpack/common/types/voicestate.d.ts @@ -18,4 +18,4 @@ export interface VoiceState { sessionId: string; suppress: boolean; requestToSpeakTimestamp: string | null; -} \ No newline at end of file +}