diff --git a/src/equicordplugins/noNitroUpsell/index.ts b/src/equicordplugins/noNitroUpsell/index.ts index e4dba7699..d7b2eaf5d 100644 --- a/src/equicordplugins/noNitroUpsell/index.ts +++ b/src/equicordplugins/noNitroUpsell/index.ts @@ -6,61 +6,23 @@ import { Devs } from "@utils/constants"; import definePlugin from "@utils/types"; -import { User } from "@vencord/discord-types"; -import { UserStore } from "@webpack/common"; - -let user: ModifiedUser | undefined; -let lastUserId: string | undefined; - -interface ModifiedUser extends User { - _realPremiumType?: number; -} - -const onChange = () => { - const newUser = UserStore.getCurrentUser(); - if (newUser && newUser.id !== lastUserId) { - user = newUser; - ready(user); - } -}; - -function ready(user: ModifiedUser) { - if (!user) return; - if ("_realPremiumType" in user) return; - - user._realPremiumType = user.premiumType ?? 0; - user.premiumType = 2; - lastUserId = user.id; -} +import { OverridePremiumTypeStore } from "@webpack/common"; 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], - patches: [ - { - find: "#{intl::USER_PROFILE_ENTRY_POINTS_AMP_UP_YOUR_PROFILE}", - replacement: [ - { - match: /}\);return \i\?.*?}\)}}/, - replace: "});return null}}" - } - ], + flux: { + CONNECTION_OPEN() { + const state = OverridePremiumTypeStore.getState(); + if (state.premiumTypeActual !== 2 || state.premiumTypeOverride === 2) return; + state.premiumTypeOverride = 2; } - ], + }, start() { - user = UserStore.getCurrentUser(); - if (user) ready(user); - - UserStore.addChangeListener(onChange); + OverridePremiumTypeStore.getState().premiumTypeOverride = 2; }, stop() { - const user = UserStore.getCurrentUser(); - if (!user) return; - if (!("_realPremiumType" in user)) return; - // @ts-ignore - user.premiumType = user._realPremiumType; - delete user._realPremiumType; - UserStore.removeChangeListener(onChange); + OverridePremiumTypeStore.getState().premiumTypeOverride = undefined; } }); diff --git a/src/equicordplugins/statusPresets/index.tsx b/src/equicordplugins/statusPresets/index.tsx index b10790794..461fda86d 100644 --- a/src/equicordplugins/statusPresets/index.tsx +++ b/src/equicordplugins/statusPresets/index.tsx @@ -28,7 +28,7 @@ import { openModalLazy } from "@utils/modal"; import { useForceUpdater } from "@utils/react"; import definePlugin, { OptionType, StartAt } from "@utils/types"; import { extractAndLoadChunksLazy, findByPropsLazy, findComponentByCodeLazy, findModuleId, wreq } from "@webpack"; -import { Clickable, Menu, Toasts, UserStore, useState } from "@webpack/common"; +import { Clickable, Menu, OverridePremiumTypeStore, Toasts, useState } from "@webpack/common"; import managedStyle from "./fixActionBar.css?managed"; @@ -126,8 +126,7 @@ const RenderStatusMenuItem = ({ status, update, disabled }: { status: DiscordSta const StatusSubMenuComponent = () => { - // @ts-ignore - const premiumType = UserStore?.getCurrentUser()?._realPremiumType ?? UserStore?.getCurrentUser()?.premiumType ?? 0; + const premiumType = OverridePremiumTypeStore.getState().premiumTypeActual ?? 0; const update = useForceUpdater(); return