From fddccea8b84012e377d9ebf187c90fae6c689443 Mon Sep 17 00:00:00 2001 From: programminglaboratorys Date: Fri, 28 Jun 2024 17:41:53 +0300 Subject: [PATCH] removing UserSettingDefinitions --- src/api/UserSettingDefinitions.ts | 83 --------------------- src/plugins/_api/userSettingsDefinitions.ts | 50 ------------- 2 files changed, 133 deletions(-) delete mode 100644 src/api/UserSettingDefinitions.ts delete mode 100644 src/plugins/_api/userSettingsDefinitions.ts diff --git a/src/api/UserSettingDefinitions.ts b/src/api/UserSettingDefinitions.ts deleted file mode 100644 index 7a2ed5be9..000000000 --- a/src/api/UserSettingDefinitions.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Vencord, a modification for Discord's desktop app - * Copyright (c) 2023 Vendicated and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -import { proxyLazy } from "@utils/lazy"; -import { Logger } from "@utils/Logger"; -import { findModuleId, proxyLazyWebpack, wreq } from "@webpack"; - -import { Settings } from "./Settings"; - -interface UserSettingDefinition { - /** - * Get the setting value - */ - getSetting(): T; - /** - * Update the setting value - * @param value The new value - */ - updateSetting(value: T): Promise; - /** - * Update the setting value - * @param value A callback that accepts the old value as the first argument, and returns the new value - */ - updateSetting(value: (old: T) => T): Promise; - /** - * Stateful React hook for this setting value - */ - useSetting(): T; - userSettingDefinitionsAPIGroup: string; - userSettingDefinitionsAPIName: string; -} - -export const UserSettingsDefinitions: Record> | undefined = proxyLazyWebpack(() => { - const modId = findModuleId('"textAndImages","renderSpoilers"'); - if (modId == null) return new Logger("UserSettingDefinitionsAPI").error("Didn't find settings definitions module."); - - return wreq(modId as any); -}); - -/** - * Get the definition for a setting. - * - * @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."); - - for (const key in UserSettingsDefinitions) { - const userSettingDefinition = UserSettingsDefinitions[key]; - - if (userSettingDefinition.userSettingDefinitionsAPIGroup === group && userSettingDefinition.userSettingDefinitionsAPIName === name) { - return userSettingDefinition; - } - } -} - -/** - * {@link getUserSettingDefinition}, lazy. - * - * Get the definition for a setting. - * - * @param group The setting group - * @param name The name of the setting - */ -export function getUserSettingDefinitionLazy(group: string, name: string) { - return proxyLazy(() => getUserSettingDefinition(group, name)); -} diff --git a/src/plugins/_api/userSettingsDefinitions.ts b/src/plugins/_api/userSettingsDefinitions.ts deleted file mode 100644 index 3a00bc116..000000000 --- a/src/plugins/_api/userSettingsDefinitions.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Vencord, a modification for Discord's desktop app - * Copyright (c) 2022 Vendicated and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -import { Devs } from "@utils/constants"; -import definePlugin from "@utils/types"; - -export default definePlugin({ - name: "UserSettingsAPI", - description: "Patches Discord's UserSettings to expose their group and name.", - authors: [Devs.Nuckyz], - - patches: [ - { - find: ",updateSetting:", - replacement: [ - // Main setting definition - { - match: /(?<=INFREQUENT_USER_ACTION.{0,20},)useSetting:/, - replace: "userSettingsAPIGroup:arguments[0],userSettingsAPIName:arguments[1],$&" - }, - // Selective wrapper - { - match: /updateSetting:.{0,100}SELECTIVELY_SYNCED_USER_SETTINGS_UPDATE/, - replace: "userSettingsAPIGroup:arguments[0].userSettingsAPIGroup,userSettingsAPIName:arguments[0].userSettingsAPIName,$&" - }, - // Override wrapper - { - match: /updateSetting:.{0,60}USER_SETTINGS_OVERRIDE_CLEAR/, - replace: "userSettingsAPIGroup:arguments[0].userSettingsAPIGroup,userSettingsAPIName:arguments[0].userSettingsAPIName,$&" - } - - ] - } - ] -});