diff --git a/src/equicordplugins/cursorBuddy/index.tsx b/src/equicordplugins/cursorBuddy/index.tsx index f84f6e1ef..890abd41a 100644 --- a/src/equicordplugins/cursorBuddy/index.tsx +++ b/src/equicordplugins/cursorBuddy/index.tsx @@ -168,6 +168,7 @@ export default definePlugin({ name: "CursorBuddy", description: "only a slightly annoying plugin", authors: [Devs.Ven, Devs.adryd, EquicordDevs.nexpid, EquicordDevs.ZcraftElite], + tags: ["Oneko", "FatassHorse", "Pet"], settings, isModified: true, diff --git a/src/plugins/messageClickActions/index.ts b/src/plugins/messageClickActions/index.ts index 96ec2e106..6cd8f5237 100644 --- a/src/plugins/messageClickActions/index.ts +++ b/src/plugins/messageClickActions/index.ts @@ -1,20 +1,8 @@ /* - * 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 . -*/ + * Vencord, a Discord client mod + * Copyright (c) 2026 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ import { isPluginEnabled } from "@api/PluginManager"; import { definePluginSettings } from "@api/Settings"; @@ -27,10 +15,20 @@ import { Channel, Message } from "@vencord/discord-types"; import { ApplicationIntegrationType, MessageFlags } from "@vencord/discord-types/enums"; import { AuthenticationStore, Constants, EditMessageStore, FluxDispatcher, MessageActions, MessageTypeSets, PermissionsBits, PermissionStore, PinActions, RestAPI, Toasts, WindowStore } from "@webpack/common"; -let isDeletePressed = false; -const keydown = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = true); -const keyup = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = false); -const focusChanged = () => !WindowStore.isFocused() && (isDeletePressed = false); +let isKeyPressed = false; +const keydown = (e: KeyboardEvent) => { + const key = settings.store.keySelection === "backspace" ? "Backspace" : "Delete"; + if (e.key === key) { + isKeyPressed = true; + } +}; +const keyup = (e: KeyboardEvent) => { + const key = settings.store.keySelection === "backspace" ? "Backspace" : "Delete"; + if (e.key === key) { + isKeyPressed = false; + } +}; +const focusChanged = () => !WindowStore.isFocused() && (isKeyPressed = false); let doubleClickTimeout: ReturnType | null = null; let pendingDoubleClickAction: (() => void) | null = null; @@ -62,6 +60,14 @@ const settings = definePluginSettings({ { label: "None (Disabled)", value: ClickAction.NONE } ] }, + keySelection: { + type: OptionType.SELECT, + description: "Key to use for click actions (Backspace or Delete)", + options: [ + { label: "Backspace", value: "backspace", default: true }, + { label: "Delete", value: "delete" } + ] + }, doubleClickAction: { type: OptionType.SELECT, description: "Action on double-click (on your messages)", @@ -260,7 +266,8 @@ function quoteMessage(channel: Channel, msg: Message) { export default definePlugin({ name: "MessageClickActions", description: "Customize message click actions - choose what happens when you click, double-click, or hold backspace", - authors: [Devs.Ven, EquicordDevs.keyages], + authors: [Devs.Ven, EquicordDevs.keyages, EquicordDevs.ZcraftElite], + isModified: true, settings, @@ -291,7 +298,7 @@ export default definePlugin({ if ((settings.store.disableInDms && isDM) || (settings.store.disableInSystemDms && isSystemDM)) return; - if (isDeletePressed) { + if (isKeyPressed) { const action = settings.store.backspaceClickAction; if (action === ClickAction.NONE) return;