diff --git a/src/api/UserSettingDefinitions.ts b/src/api/UserSettings.ts similarity index 58% rename from src/api/UserSettingDefinitions.ts rename to src/api/UserSettings.ts index f87df9973..788d2e091 100644 --- a/src/api/UserSettingDefinitions.ts +++ b/src/api/UserSettings.ts @@ -19,8 +19,6 @@ import { proxyLazy } from "@utils/lazy"; import { findByFactoryCode } from "@webpack"; -import { Settings } from "./Settings"; - interface UserSettingDefinition { /** * Get the setting value @@ -40,38 +38,38 @@ interface UserSettingDefinition { * Stateful React hook for this setting value */ useSetting(): T; - userSettingDefinitionsAPIGroup: string; - userSettingDefinitionsAPIName: string; + userSettingsAPIGroup: string; + userSettingsAPIName: string; } -export const UserSettingsDefinitions = findByFactoryCode>>('"textAndImages","renderSpoilers"'); +export const UserSettings = findByFactoryCode>>('"textAndImages","renderSpoilers"'); /** - * Get the definition for a setting. + * Get the setting with the given setting group and name. * * @param group The setting group * @param name The name of the setting */ -export function getUserSettingDefinition(group: string, name: string): UserSettingDefinition | undefined { - if (!Settings.plugins.UserSettingDefinitionsAPI.enabled) throw new Error("Cannot use UserSettingDefinitionsAPI without setting as dependency."); +export function getUserSetting(group: string, name: string): UserSettingDefinition | undefined { + if (!Vencord.Plugins.isPluginEnabled("UserSettingsAPI")) throw new Error("Cannot use UserSettingsAPI without setting as dependency."); - for (const key in UserSettingsDefinitions) { - const userSettingDefinition = UserSettingsDefinitions[key]; + for (const key in UserSettings) { + const userSetting = UserSettings[key]; - if (userSettingDefinition.userSettingDefinitionsAPIGroup === group && userSettingDefinition.userSettingDefinitionsAPIName === name) { - return userSettingDefinition; + if (userSetting.userSettingsAPIGroup === group && userSetting.userSettingsAPIName === name) { + return userSetting; } } } /** - * Lazy version of {@link getUserSettingDefinition} + * Lazy version of {@link getUserSetting} * - * Get the definition for a setting. + * Get the setting with the given setting group and name. * * @param group The setting group * @param name The name of the setting */ -export function getUserSettingDefinitionLazy(group: string, name: string) { - return proxyLazy(() => getUserSettingDefinition(group, name)); +export function getUserSettingLazy(group: string, name: string) { + return proxyLazy(() => getUserSetting(group, name)); } diff --git a/src/api/index.ts b/src/api/index.ts index 5f8233d21..d4d7b4614 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -32,7 +32,7 @@ import * as $Notifications from "./Notifications"; import * as $ServerList from "./ServerList"; import * as $Settings from "./Settings"; import * as $Styles from "./Styles"; -import * as $UserSettingDefinitions from "./UserSettingDefinitions"; +import * as $UserSettings from "./UserSettings"; /** * An API allowing you to listen to Message Clicks or run your own logic @@ -119,6 +119,6 @@ export const ChatButtons = $ChatButtons; export const MessageUpdater = $MessageUpdater; /** - * An API allowing you to get the definition for an user setting + * An API allowing you to get an user setting */ -export const UserSettingDefinitions = $UserSettingDefinitions; +export const UserSettings = $UserSettings; diff --git a/src/plugins/_api/userSettingsDefinitions.ts b/src/plugins/_api/userSettings.ts similarity index 70% rename from src/plugins/_api/userSettingsDefinitions.ts rename to src/plugins/_api/userSettings.ts index 5577a1723..3a00bc116 100644 --- a/src/plugins/_api/userSettingsDefinitions.ts +++ b/src/plugins/_api/userSettings.ts @@ -20,8 +20,8 @@ import { Devs } from "@utils/constants"; import definePlugin from "@utils/types"; export default definePlugin({ - name: "UserSettingDefinitionsAPI", - description: "Patches Discord's UserSettingDefinitions to expose their group and name.", + name: "UserSettingsAPI", + description: "Patches Discord's UserSettings to expose their group and name.", authors: [Devs.Nuckyz], patches: [ @@ -31,17 +31,17 @@ export default definePlugin({ // Main setting definition { match: /(?<=INFREQUENT_USER_ACTION.{0,20},)useSetting:/, - replace: "userSettingDefinitionsAPIGroup:arguments[0],userSettingDefinitionsAPIName:arguments[1],$&" + replace: "userSettingsAPIGroup:arguments[0],userSettingsAPIName:arguments[1],$&" }, // Selective wrapper { match: /updateSetting:.{0,100}SELECTIVELY_SYNCED_USER_SETTINGS_UPDATE/, - replace: "userSettingDefinitionsAPIGroup:arguments[0].userSettingDefinitionsAPIGroup,userSettingDefinitionsAPIName:arguments[0].userSettingDefinitionsAPIName,$&" + replace: "userSettingsAPIGroup:arguments[0].userSettingsAPIGroup,userSettingsAPIName:arguments[0].userSettingsAPIName,$&" }, // Override wrapper { match: /updateSetting:.{0,60}USER_SETTINGS_OVERRIDE_CLEAR/, - replace: "userSettingDefinitionsAPIGroup:arguments[0].userSettingDefinitionsAPIGroup,userSettingDefinitionsAPIName:arguments[0].userSettingDefinitionsAPIName,$&" + replace: "userSettingsAPIGroup:arguments[0].userSettingsAPIGroup,userSettingsAPIName:arguments[0].userSettingsAPIName,$&" } ] diff --git a/src/plugins/betterRoleContext/index.tsx b/src/plugins/betterRoleContext/index.tsx index 84bc4031b..1bd193cfc 100644 --- a/src/plugins/betterRoleContext/index.tsx +++ b/src/plugins/betterRoleContext/index.tsx @@ -5,7 +5,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { getUserSettingDefinitionLazy } from "@api/UserSettingDefinitions"; +import { getUserSettingLazy } from "@api/UserSettings"; import { ImageIcon } from "@components/Icons"; import { Devs } from "@utils/constants"; import { getCurrentGuild, openImageModal } from "@utils/discord"; @@ -15,7 +15,7 @@ import { Clipboard, GuildStore, Menu, PermissionStore } from "@webpack/common"; const GuildSettingsActions = findByProps("open", "selectRole", "updateGuild"); -const DeveloperMode = getUserSettingDefinitionLazy("appearance", "developerMode")!; +const DeveloperMode = getUserSettingLazy("appearance", "developerMode")!; function PencilIcon() { return ( @@ -65,7 +65,7 @@ export default definePlugin({ name: "BetterRoleContext", description: "Adds options to copy role color / edit role / view role icon when right clicking roles in the user profile", authors: [Devs.Ven, Devs.goodbee], - dependencies: ["UserSettingDefinitionsAPI"], + dependencies: ["UserSettingsAPI"], settings, diff --git a/src/plugins/customRPC/index.tsx b/src/plugins/customRPC/index.tsx index 84074058b..478f797f7 100644 --- a/src/plugins/customRPC/index.tsx +++ b/src/plugins/customRPC/index.tsx @@ -17,7 +17,7 @@ */ import { definePluginSettings } from "@api/Settings"; -import { getUserSettingDefinitionLazy } from "@api/UserSettingDefinitions"; +import { getUserSettingLazy } from "@api/UserSettings"; import { ErrorCard } from "@components/ErrorCard"; import { Link } from "@components/Link"; import { Devs } from "@utils/constants"; @@ -33,7 +33,7 @@ const useProfileThemeStyle = findByCode("profileThemeStyle:", "--profile-gradien const ActivityComponent = findComponentByCode("onOpenGameProfile"); const ActivityClassName = findByProps("activity", "buttonColor"); -const ShowCurrentGame = getUserSettingDefinitionLazy("status", "showCurrentGame")!; +const ShowCurrentGame = getUserSettingLazy("status", "showCurrentGame")!; async function getApplicationAsset(key: string): Promise { if (/https?:\/\/(cdn|media)\.discordapp\.(com|net)\/attachments\//.test(key)) return "mp:" + key.replace(/https?:\/\/(cdn|media)\.discordapp\.(com|net)\//, ""); @@ -393,7 +393,7 @@ export default definePlugin({ name: "CustomRPC", description: "Allows you to set a custom rich presence.", authors: [Devs.captain, Devs.AutumnVN, Devs.nin0dev], - dependencies: ["UserSettingDefinitionsAPI"], + dependencies: ["UserSettingsAPI"], start: setRpc, stop: () => setRpc(true), settings, diff --git a/src/plugins/gameActivityToggle/index.tsx b/src/plugins/gameActivityToggle/index.tsx index e48c0652d..8b08b251d 100644 --- a/src/plugins/gameActivityToggle/index.tsx +++ b/src/plugins/gameActivityToggle/index.tsx @@ -18,7 +18,7 @@ import { definePluginSettings } from "@api/Settings"; import { disableStyle, enableStyle } from "@api/Styles"; -import { getUserSettingDefinitionLazy } from "@api/UserSettingDefinitions"; +import { getUserSettingLazy } from "@api/UserSettings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; @@ -28,7 +28,7 @@ import style from "./style.css?managed"; const Button = findComponentByCode("Button.Sizes.NONE,disabled:"); -const ShowCurrentGame = getUserSettingDefinitionLazy("status", "showCurrentGame")!; +const ShowCurrentGame = getUserSettingLazy("status", "showCurrentGame")!; function makeIcon(showCurrentGame?: boolean) { const { oldIcon } = settings.use(["oldIcon"]); @@ -87,7 +87,7 @@ export default definePlugin({ name: "GameActivityToggle", description: "Adds a button next to the mic and deafen button to toggle game activity.", authors: [Devs.Nuckyz, Devs.RuukuLada], - dependencies: ["UserSettingDefinitionsAPI"], + dependencies: ["UserSettingsAPI"], settings, patches: [ diff --git a/src/plugins/ignoreActivities/index.tsx b/src/plugins/ignoreActivities/index.tsx index 27fa950f5..a811c971b 100644 --- a/src/plugins/ignoreActivities/index.tsx +++ b/src/plugins/ignoreActivities/index.tsx @@ -6,7 +6,7 @@ import * as DataStore from "@api/DataStore"; import { definePluginSettings, Settings } from "@api/Settings"; -import { getUserSettingDefinitionLazy } from "@api/UserSettingDefinitions"; +import { getUserSettingLazy } from "@api/UserSettings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Flex } from "@components/Flex"; import { Devs } from "@utils/constants"; @@ -28,7 +28,7 @@ interface IgnoredActivity { const RunningGameStore = findStore("RunningGameStore"); -const ShowCurrentGame = getUserSettingDefinitionLazy("status", "showCurrentGame")!; +const ShowCurrentGame = getUserSettingLazy("status", "showCurrentGame")!; function ToggleIcon(activity: IgnoredActivity, tooltipText: string, path: string, fill: string) { return ( @@ -208,7 +208,7 @@ export default definePlugin({ name: "IgnoreActivities", authors: [Devs.Nuckyz], description: "Ignore activities from showing up on your status ONLY. You can configure which ones are specifically ignored from the Registered Games and Activities tabs, or use the general settings below.", - dependencies: ["UserSettingDefinitionsAPI"], + dependencies: ["UserSettingsAPI"], settings, diff --git a/src/plugins/messageLinkEmbeds/index.tsx b/src/plugins/messageLinkEmbeds/index.tsx index 548af19d8..377c1b433 100644 --- a/src/plugins/messageLinkEmbeds/index.tsx +++ b/src/plugins/messageLinkEmbeds/index.tsx @@ -19,7 +19,7 @@ import { addAccessory, removeAccessory } from "@api/MessageAccessories"; import { updateMessage } from "@api/MessageUpdater"; import { definePluginSettings } from "@api/Settings"; -import { getUserSettingDefinitionLazy } from "@api/UserSettingDefinitions"; +import { getUserSettingLazy } from "@api/UserSettings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants.js"; import { classes } from "@utils/misc"; @@ -54,7 +54,7 @@ const ChannelMessage = findComponentByCode("childrenExecutedCommand:", ".hideAcc const SearchResultClasses = findByProps("message", "searchResult"); const EmbedClasses = findByProps("embedAuthorIcon", "embedAuthor", "embedAuthor"); -const MessageDisplayCompact = getUserSettingDefinitionLazy("textAndImages", "messageDisplayCompact")!; +const MessageDisplayCompact = getUserSettingLazy("textAndImages", "messageDisplayCompact")!; const messageLinkRegex = /(?