From fe067e81055a0571aa97df6d8d642a2e12166fd2 Mon Sep 17 00:00:00 2001 From: Eazvy <57739965+Eazvy@users.noreply.github.com> Date: Sat, 29 Mar 2025 13:33:12 -0400 Subject: [PATCH 1/8] update (randomVoice) *fix chat bar buttons / new icon* (#204) * Update index.tsx * Update styles.css * Update index.tsx * Add files via upload * Add files via upload --- src/equicordplugins/randomVoice/index.tsx | 11 +++++------ src/equicordplugins/randomVoice/styles.css | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/equicordplugins/randomVoice/index.tsx b/src/equicordplugins/randomVoice/index.tsx index 9920b441b..78f97a96a 100644 --- a/src/equicordplugins/randomVoice/index.tsx +++ b/src/equicordplugins/randomVoice/index.tsx @@ -16,7 +16,7 @@ import { ChannelStore, ContextMenuApi, GuildStore, Menu, NavigationRouter, Permi import style from "./styles.css?managed"; -const ChatVoiceIcon = findComponentByCodeLazy("22H12Zm2-5.26c0"); +const ChatVoiceIcon = findComponentByCodeLazy("0l1.8-1.8c.17"); const Button = findComponentByCodeLazy(".NONE,disabled:", ".PANEL_BUTTON"); const VoiceStateStore = findStoreLazy("VoiceStateStore"); const MediaEngineStore = findStoreLazy("MediaEngineStore"); @@ -276,10 +276,9 @@ function ContextMenu() { @@ -485,7 +484,7 @@ function ContextMenu() { [class^="buttons__"]:not([class^="expression-picker"]) { width: 150px; margin-left: -15px; } [class^="micButtonParent__"] { width: 16px; -} +} \ No newline at end of file From cf1471c01ca45207d66ab53c10f9af8600b01b40 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sat, 29 Mar 2025 13:42:32 -0400 Subject: [PATCH 2/8] Make ChatBarIcons Match Other Sizes --- src/equicordplugins/encryptcord/index.tsx | 4 ++-- src/equicordplugins/furudoSpeak.dev/index.tsx | 2 +- src/equicordplugins/hideChatButtons/index.tsx | 4 ++-- src/equicordplugins/meow/index.tsx | 2 +- src/equicordplugins/moreStickers/index.tsx | 7 +++---- src/equicordplugins/signature/index.tsx | 2 +- src/equicordplugins/soundBoardLogger/components/Icons.tsx | 2 +- src/equicordplugins/talkInReverse/index.tsx | 2 +- src/equicordplugins/woof/index.tsx | 2 +- 9 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/equicordplugins/encryptcord/index.tsx b/src/equicordplugins/encryptcord/index.tsx index eef5628e9..a125e7779 100644 --- a/src/equicordplugins/encryptcord/index.tsx +++ b/src/equicordplugins/encryptcord/index.tsx @@ -114,8 +114,8 @@ const ChatBarIcon: ChatBarButtonFactory = ({ isMainChat }) => { }} > {!enabled && <> diff --git a/src/equicordplugins/furudoSpeak.dev/index.tsx b/src/equicordplugins/furudoSpeak.dev/index.tsx index 52d7f6149..7db2b2113 100644 --- a/src/equicordplugins/furudoSpeak.dev/index.tsx +++ b/src/equicordplugins/furudoSpeak.dev/index.tsx @@ -125,7 +125,7 @@ const FurudoSpeakChatToggle: ChatBarButtonFactory = ({ isMainChat }) => { tooltip={isEnabled ? "Disable FurudoSpeak" : "Enable FurudoSpeak"} onClick={toggle} > - + {isEnabled && ( <> diff --git a/src/equicordplugins/hideChatButtons/index.tsx b/src/equicordplugins/hideChatButtons/index.tsx index d5f771725..6d9a8359a 100644 --- a/src/equicordplugins/hideChatButtons/index.tsx +++ b/src/equicordplugins/hideChatButtons/index.tsx @@ -37,8 +37,8 @@ function HideToggleButton(props: { open: boolean | undefined, onClick: MouseEven diff --git a/src/equicordplugins/meow/index.tsx b/src/equicordplugins/meow/index.tsx index f6a5020a8..3ff34f3ce 100644 --- a/src/equicordplugins/meow/index.tsx +++ b/src/equicordplugins/meow/index.tsx @@ -17,7 +17,7 @@ async function handleButtonClick() { const ChatBarIcon: ChatBarButtonFactory = () => { return ( - + ); }; diff --git a/src/equicordplugins/moreStickers/index.tsx b/src/equicordplugins/moreStickers/index.tsx index 872653644..6ee8628d3 100644 --- a/src/equicordplugins/moreStickers/index.tsx +++ b/src/equicordplugins/moreStickers/index.tsx @@ -103,12 +103,11 @@ export default definePlugin({ onClick={onClick} style={{ backgroundColor: "transparent" }} > - { - /* Icon taken from: https://github.com/Pitu/Magane/blob/0ebb09acf9901933ebebe19fbd473ec08cf917b3/src/Button.svelte#L29 */} + {/* Icon taken from: https://github.com/Pitu/Magane/blob/0ebb09acf9901933ebebe19fbd473ec08cf917b3/src/Button.svelte#L29 */} { tooltip={isEnabled ? "Disable Signature" : "Enable Signature"} onClick={toggle} > - + {isEnabled && ( <> diff --git a/src/equicordplugins/soundBoardLogger/components/Icons.tsx b/src/equicordplugins/soundBoardLogger/components/Icons.tsx index 9964a9ccb..d227f9e2d 100644 --- a/src/equicordplugins/soundBoardLogger/components/Icons.tsx +++ b/src/equicordplugins/soundBoardLogger/components/Icons.tsx @@ -62,7 +62,7 @@ export const ChatBarIcon: ChatBarButtonFactory = () => { return ( - + ); }; diff --git a/src/equicordplugins/talkInReverse/index.tsx b/src/equicordplugins/talkInReverse/index.tsx index 9d17b6811..bf50fca8d 100644 --- a/src/equicordplugins/talkInReverse/index.tsx +++ b/src/equicordplugins/talkInReverse/index.tsx @@ -49,7 +49,7 @@ const ReverseMessageToggle: ChatBarButtonFactory = ({ isMainChat }) => { tooltip={enabled ? "Disable Reverse Message" : "Enable Reverse Message"} onClick={() => setEnabledValue(!enabled)} > - + ); }; diff --git a/src/equicordplugins/woof/index.tsx b/src/equicordplugins/woof/index.tsx index fb93e052d..06f1c2d6f 100644 --- a/src/equicordplugins/woof/index.tsx +++ b/src/equicordplugins/woof/index.tsx @@ -17,7 +17,7 @@ async function handleButtonClick() { const ChatBarIcon: ChatBarButtonFactory = () => { return ( - + ); }; From f86f6eefa6ce2925191f5130aea1343e0b37aa71 Mon Sep 17 00:00:00 2001 From: Eazvy <57739965+Eazvy@users.noreply.github.com> Date: Sun, 30 Mar 2025 07:06:11 -0400 Subject: [PATCH 3/8] Add files via upload (#205) --- src/equicordplugins/questCompleter/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/equicordplugins/questCompleter/index.tsx b/src/equicordplugins/questCompleter/index.tsx index 76f63d069..44fba2470 100644 --- a/src/equicordplugins/questCompleter/index.tsx +++ b/src/equicordplugins/questCompleter/index.tsx @@ -254,8 +254,8 @@ export default definePlugin({ find: "M7.5 21.7a8.95 8.95 0 0 1 9 0 1 1 0 0 0 1-1.73c", replacement: { match: /(?<=className:\i\}\))/, - replace: ",onClick:$self.openCompleteQuestUI()" - }, + replace: ",onClick:()=>$self.openCompleteQuestUI()" + }, predicate: () => settings.store.clickableQuestDiscovery } ], From 54f5b58325f7fdbee8feb60050d8ba4fd2b5ab3c Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sun, 30 Mar 2025 10:55:31 -0400 Subject: [PATCH 4/8] Equibop has addpatch --- src/webpack/patchWebpack.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts index 5abcd0274..802f9da99 100644 --- a/src/webpack/patchWebpack.ts +++ b/src/webpack/patchWebpack.ts @@ -519,11 +519,6 @@ function patchFactory(moduleId: PropertyKey, originalFactory: AnyModuleFactory): continue; } - // TODO: remove once Vesktop has been updated to use addPatch - if (patch.plugin === "Vesktop") { - canonicalizeReplacement(replacement, "VCDP"); - } - const lastCode = code; const lastFactory = originalFactory; From a4a50e1bb2164814280eb4f0a501e06a4294e682 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sun, 30 Mar 2025 12:33:52 -0400 Subject: [PATCH 5/8] Remove Migration --- CONTRIBUTING.md | 7 ++++--- src/main/patcher.ts | 15 +++------------ src/main/updater/http.ts | 28 +--------------------------- 3 files changed, 8 insertions(+), 42 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dedf1e48e..10dc32c1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Vencord is a community project and welcomes any kind of contribution from anyone! -We have development documentation for new contributors, which can be found at . +We have development documentation for new contributors, which can be found at . All contributions should be made in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). @@ -17,9 +17,10 @@ Pull requests can be made either to the `main` or the `dev` branch. However, unl Writing a plugin is the primary way to contribute. Before starting your plugin: +- Be in our discord - Check existing pull requests to see if someone is already working on a similar plugin -- Check our [plugin requests tracker](https://github.com/Vencord/plugin-requests/issues) to see if there is an existing request, or if the same idea has been rejected -- If there isn't an existing request, [open one](https://github.com/Vencord/plugin-requests/issues/new?assignees=&labels=&projects=&template=request.yml) yourself +- Check our [plugin requests tracker](https://discord.com/channels/1173279886065029291/1173334591302553631) to see if there is an existing request, or if the same idea has been rejected +- If there isn't an existing request, [open one](https://discord.com/channels/1173279886065029291/1173334591302553631) yourself. and include that you'd like to work on this yourself. Then wait for feedback to see if the idea even has any chance of being accepted. Or maybe others have some ideas to improve it! - Familarise yourself with our plugin rules below to ensure your plugin is not banned diff --git a/src/main/patcher.ts b/src/main/patcher.ts index e585d6226..6178478f8 100644 --- a/src/main/patcher.ts +++ b/src/main/patcher.ts @@ -26,13 +26,6 @@ import { IS_VANILLA } from "./utils/constants"; console.log("[Equicord] Starting up..."); -// FIXME: remove at some point -const isLegacyNonAsarVencord = IS_STANDALONE && !__dirname.endsWith(".asar"); -if (isLegacyNonAsarVencord) { - console.warn("This is a legacy non asar install! Migrating to asar and restarting..."); - require("./updater/http").migrateLegacyToAsar(); -} - // Our injector file at app/index.js const injectorPath = require.main!.filename; @@ -46,7 +39,7 @@ if (IS_VESKTOP || IS_EQUIBOP) require.main!.filename = join(dirname(injectorPath // @ts-ignore Untyped method? Dies from cringe app.setAppPath(asarPath); -if (!IS_VANILLA && !isLegacyNonAsarVencord) { +if (!IS_VANILLA) { const settings = RendererSettings.store; // Repatch after host updates on Windows if (process.platform === "win32") { @@ -162,7 +155,5 @@ if (!IS_VANILLA && !isLegacyNonAsarVencord) { console.log("[Equicord] Running in vanilla mode. Not loading Equicord"); } -if (!isLegacyNonAsarVencord) { - console.log("[Equicord] Loading original Discord app.asar"); - require(require.main!.filename); -} +console.log("[Equicord] Loading original Discord app.asar"); +require(require.main!.filename); diff --git a/src/main/updater/http.ts b/src/main/updater/http.ts index 5e2820073..c0affa694 100644 --- a/src/main/updater/http.ts +++ b/src/main/updater/http.ts @@ -19,9 +19,8 @@ import { get } from "@main/utils/simpleGet"; import { IpcEvents } from "@shared/IpcEvents"; import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent"; -import { app, dialog, ipcMain } from "electron"; +import { ipcMain } from "electron"; import { writeFileSync as originalWriteFileSync } from "original-fs"; -import { join } from "path"; import gitHash from "~git-hash"; import gitRemote from "~git-remote"; @@ -87,28 +86,3 @@ ipcMain.handle(IpcEvents.GET_REPO, serializeErrors(() => `https://github.com/${g ipcMain.handle(IpcEvents.GET_UPDATES, serializeErrors(calculateGitChanges)); ipcMain.handle(IpcEvents.UPDATE, serializeErrors(fetchUpdates)); ipcMain.handle(IpcEvents.BUILD, serializeErrors(applyUpdates)); - -export async function migrateLegacyToAsar() { - try { - const isFlatpak = process.platform === "linux" && !!process.env.FLATPAK_ID; - if (isFlatpak) throw "Flatpak Discord can't automatically be migrated."; - - const data = await get(`https://github.com/${gitRemote}/releases/latest/download/desktop.asar`); - - originalWriteFileSync(join(__dirname, "../equicord.asar"), data); - originalWriteFileSync(__filename, '// Legacy shim for new asar\n\nrequire("../equicord.asar");'); - - app.relaunch(); - app.exit(); - } catch (e) { - console.error("Failed to migrate to asar", e); - - app.whenReady().then(() => { - dialog.showErrorBox( - "Legacy Install", - "The way Equicord loaded was changed and the updater failed to migrate. Please reinstall using the Equicord Installer!" - ); - app.exit(1); - }); - } -} From 55532d58dfda743f8b3f1b45feeefee58b3ac4c0 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sun, 30 Mar 2025 12:57:16 -0400 Subject: [PATCH 6/8] Fix DIscord Server link --- README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 60489d737..1dfe5da07 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,19 @@ [![Equibop](https://img.shields.io/badge/Equibop-grey?style=flat)](https://github.com/Equicord/Equibop) [![Tests](https://github.com/Equicord/Equicord/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/Equicord/Equicord/actions/workflows/test.yml) -[![Discord](https://img.shields.io/discord/1207691698386501634.svg?color=768AD4&label=Discord&logo=discord&logoColor=white)](https://discord.gg/5Xh2W87egW) +[![Discord](https://img.shields.io/discord/1173279886065029291.svg?color=768AD4&label=Discord&logo=discord&logoColor=white)](https://discord.gg/5Xh2W87egW) Equicord is a fork of [Vencord](https://github.com/Vendicated/Vencord), with over 300+ plugins. You can join our [discord server](https://discord.gg/5Xh2W87egW) for commits, changes, chat or even support.


### Extra included plugins +
161 additional plugins ### All Platforms + - AllCallTimers by MaxHerbold & D3SOX - AltKrispSwitch by newwares - AlwaysExpandProfile by thororen @@ -170,43 +172,52 @@ You can join our [discord server](https://discord.gg/5Xh2W87egW) for commits, ch - YoutubeDescription by arHSM ### Web Only + - None At This Time ### Vesktop & Equibop Only + - ScreenRecorder by AutumnVN ### Discord Desktop Only + - MediaDownloader by Colorman - StatusWhilePlaying by thororen ### Equicord Devbuilds Only + - FurudoSpeak by example-git - Shakespearean by vmohammad - VoiceChannelLog by Sqaaakoi & maintained by thororen
- ## Installing / Uninstalling Windows + - [GUI](https://github.com/Equicord/Equilotl/releases/latest/download/Equilotl.exe) - [CLI](https://github.com/Equicord/Equilotl/releases/latest/download/EquilotlCli.exe) MacOS + - [GUI](https://github.com/Equicord/Equilotl/releases/latest/download/Equilotl.MacOS.zip) Linux + - [GUI-X11](https://github.com/Equicord/Equilotl/releases/latest/download/Equilotl-x11) - [GUI-Wayland](https://github.com/Equicord/Equilotl/releases/latest/download/Equilotl-wayland) - [CLI](https://github.com/Equicord/Equilotl/releases/latest/download/EquilotlCli-Linux) - [AUR](https://aur.archlinux.org/packages?O=0&K=equicord) + ```shell sh -c "$(curl -sS https://raw.githubusercontent.com/Equicord/Equicord/refs/heads/main/misc/install.sh)" ``` + ## Installing Equicord Devbuild ### Dependencies + [Git](https://git-scm.com/download) and [Node.JS LTS](https://nodejs.dev/en/) are required. Install `pnpm`: @@ -237,6 +248,7 @@ Build Equicord: ```shell pnpm build ``` + Inject Equicord into your client: ```shell From 9ba3f49ade4edb83f4f8766717707236d5fb58e1 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sun, 30 Mar 2025 13:56:37 -0400 Subject: [PATCH 7/8] Revert Reload --- src/Vencord.ts | 60 ++++++------------------------------------ src/webpack/webpack.ts | 2 +- 2 files changed, 9 insertions(+), 53 deletions(-) diff --git a/src/Vencord.ts b/src/Vencord.ts index a575cc59b..88a83ba92 100644 --- a/src/Vencord.ts +++ b/src/Vencord.ts @@ -30,7 +30,6 @@ import "./utils/quickCss"; import "./webpack/patchWebpack"; import { openUpdaterModal } from "@components/VencordSettings/UpdaterTab"; -import { Logger } from "@utils/Logger"; import { StartAt } from "@utils/types"; import { get as dsGet } from "./api/DataStore"; @@ -49,37 +48,6 @@ if (IS_REPORTER) { Settings.plugins.CharacterCounter.enabled = false; } -const logger = new Logger("Debug", "#a6d189"); - -let isFrozen = true; -const checkInterval = 5000; -const freezeChecker = setInterval(() => { - if (isFrozen) { - location.reload(); - } - isFrozen = true; -}, checkInterval); - -function safeInit() { - try { - startAllPlugins(StartAt.Init); - init(); - - const originalLoggerInfo = logger.info.bind(logger); - logger.info = function (message) { - originalLoggerInfo(message); - if (message.includes("Completed Equicord initialization.")) { - isFrozen = false; - clearInterval(freezeChecker); - } - }; - } catch (error) { - logger.error("Failed to initialize Equicord, reloading in 5 seconds...", error); - clearInterval(freezeChecker); - setTimeout(() => location.reload(), 5000); - } -} - async function syncSettings() { // pre-check for local shared settings if ( @@ -126,8 +94,6 @@ async function init() { syncSettings(); - logger.info("Completed Equicord initialization."); - if (!IS_WEB && !IS_UPDATER_DISABLED) { try { const isOutdated = await checkForUpdates(); @@ -173,25 +139,15 @@ async function init() { } } -safeInit(); +startAllPlugins(StartAt.Init); +init(); document.addEventListener("DOMContentLoaded", () => { - try { - startAllPlugins(StartAt.DOMContentLoaded); - - if (IS_DISCORD_DESKTOP && Settings.winNativeTitleBar && navigator.platform.toLowerCase().startsWith("win")) { - document.head.append(Object.assign(document.createElement("style"), { - id: "vencord-native-titlebar-style", - textContent: "[class*=titleBar]{display: none!important}" - })); - } - - isFrozen = false; - clearInterval(freezeChecker); - logger.info("DOMContentLoaded event handled successfully."); - } catch (error) { - logger.error("Error during DOMContentLoaded event, reloading in 5 seconds...", error); - clearInterval(freezeChecker); - setTimeout(() => location.reload(), 5000); + startAllPlugins(StartAt.DOMContentLoaded); + if (IS_DISCORD_DESKTOP && Settings.winNativeTitleBar && navigator.platform.toLowerCase().startsWith("win")) { + document.head.append(Object.assign(document.createElement("style"), { + id: "vencord-native-titlebar-style", + textContent: "[class*=titleBar]{display: none!important}" + })); } }, { once: true }); diff --git a/src/webpack/webpack.ts b/src/webpack/webpack.ts index 7796827b6..26d9c0d70 100644 --- a/src/webpack/webpack.ts +++ b/src/webpack/webpack.ts @@ -26,7 +26,7 @@ import { traceFunction } from "../debug/Tracer"; import { Flux } from "./common"; import { AnyModuleFactory, AnyWebpackRequire, ModuleExports, WebpackRequire } from "./wreq"; -export const logger = new Logger("Webpack"); +const logger = new Logger("Webpack"); export let _resolveReady: () => void; /** From 07a970b62316144ec89483809885685a95aac966 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Wed, 2 Apr 2025 19:57:30 -0400 Subject: [PATCH 8/8] Remove Codeberg Sync --- .github/workflows/codeberg-mirror.yml | 48 --------------------------- .vscode/settings.json | 2 +- 2 files changed, 1 insertion(+), 49 deletions(-) delete mode 100644 .github/workflows/codeberg-mirror.yml diff --git a/.github/workflows/codeberg-mirror.yml b/.github/workflows/codeberg-mirror.yml deleted file mode 100644 index 69f508626..000000000 --- a/.github/workflows/codeberg-mirror.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Sync to Codeberg -concurrency: - group: ${{ github.ref }} - cancel-in-progress: true -on: - push: - workflow_dispatch: - schedule: - - cron: "0 */6 * * *" - -jobs: - codeberg: - name: Sync Codeberg and Github - - runs-on: self-hosted - steps: - - uses: actions/checkout@v3 - - - name: Set up SSH private key - run: | - mkdir -p ~/.ssh - echo "${{ env.ssh_private_key }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - env: - ssh_private_key: ${{ secrets.CODEBERG }} - - - name: Add SSH known host - run: | - mkdir -p ~/.ssh - ssh-keyscan -t rsa codeberg.org >> ~/.ssh/known_hosts - - - name: Set up SSH username - run: | - export GIT_SSH_COMMAND="ssh -v -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -l git" - - - name: Add remote mirror and push - run: | - if git remote get-url mirror > /dev/null 2>&1; then - git remote remove mirror - fi - git remote add mirror "${{ env.target_repo_url}}" - git fetch --unshallow - git push --tags --force --prune mirror "refs/remotes/origin/*:refs/heads/*" - env: - target_repo_url: "git@codeberg.org:thororen/Equicord.git" - - - name: Clean up - run: git remote remove mirror diff --git a/.vscode/settings.json b/.vscode/settings.json index df9c501a4..eb9a3812e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,4 +20,4 @@ } ], "equicord-companion.showSidebar": true, -} \ No newline at end of file +}