/* * 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 { getSettingStoreLazy } from "@api/SettingsStore"; import { disableStyle, enableStyle } from "@api/Styles"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin from "@utils/types"; import { Tooltip } from "@webpack/common"; import style from "./style.css?managed"; const ShowCurrentGame = getSettingStoreLazy("status", "showCurrentGame"); function GameActivityToggleButton() { const showCurrentGame = ShowCurrentGame?.useSetting(); return ( {tooltipProps => ( )} ); } export default definePlugin({ name: "GameActivityToggle", description: "Adds a button next to the mic and deafen button to toggle game activity.", authors: [Devs.Nuckyz], dependencies: ["SettingsStoreAPI"], patches: [ { find: ".Messages.ACCOUNT_SPEAKING_WHILE_MUTED", replacement: { match: /this\.renderNameZone\(\).+?children:\[/, replace: "$&$self.GameActivityToggleButton()," } } ], GameActivityToggleButton: ErrorBoundary.wrap(GameActivityToggleButton, { noop: true }), start() { enableStyle(style); }, stop() { disableStyle(style); } });