/* * Vencord, a Discord client mod * Copyright (c) 2024 Vendicated and contributors * SPDX-License-Identifier: GPL-3.0-or-later */ import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; export const settings = definePluginSettings({ dms: { type: OptionType.BOOLEAN, default: true, description: "Remove shops above DMs list", restartNeeded: true, }, billing: { type: OptionType.BOOLEAN, default: true, description: "Remove billing settings", restartNeeded: true, }, gift: { type: OptionType.BOOLEAN, default: true, description: "Remove gift button", restartNeeded: true, }, emojiList: { type: OptionType.BOOLEAN, default: true, description: "Remove unavailable categories from the emoji picker", restartNeeded: true, }, }); export default definePlugin({ name: "Anammox", description: "Remove Some Discord Settings", authors: [Devs.Kyuuhachi], settings, patches: [ { // Above DMs, mouse nav find: 'tutorialId:"direct-messages"', replacement: [ { match: /"premium"\)/, replace: "$&&&undefined", }, { match: /"discord-shop"\)/, replace: "$&&&undefined", }, ], predicate: () => settings.store.dms, }, { // Above DMs, keyboard nav find: ".hasLibraryApplication()&&!", replacement: [ { match: /\i\.\i\.APPLICATION_STORE,/, replace: "/*$&*/", }, { match: /\i\.\i\.COLLECTIBLES_SHOP,/, replace: "/*$&*/", }, ], predicate: () => settings.store.dms, }, { // Settings, sidebar find: "Messages.BILLING_SETTINGS", replacement: [ { match: /(?<=Messages.BILLING_SETTINGS,)/, replace: "capitalism:true," }, { match: /\i\?\i:\i\.toSpliced\(3,0,\i\)/, replace: "($&).filter(e=>!e.capitalism)", }, ], predicate: () => settings.store.billing, }, { // Gift button find: 'Messages.PREMIUM_GIFT_BUTTON_LABEL,"aria-haspopup":"dialog",onClick:', replacement: { match: /if\(\i\)return null;/, replace: "return null;", }, predicate: () => settings.store.gift, }, { // Emoji list find: "Messages.EMOJI_PICKER_CREATE_EMOJI_TITLE,size:", replacement: { match: /(\i)=\i\|\|!\i&&\i.\i\i.isEmojiCategoryNitroLocked\(\{[^}]*\}\);/, replace: "$&$1||" }, predicate: () => settings.store.emojiList, }, { // Emoji category list find: "Messages.EMOJI_CATEGORY_TOP_GUILD_EMOJI.format({", replacement: { match: /(?<=(\i)\.unshift\((\i)\):)(?=\1\.push\(\2\))/, replace: "$2.isNitroLocked||" }, predicate: () => settings.store.emojiList, } ], });