├── README.md ├── Install-RicherCider.ps1 └── richerCider.desktop.tsx /README.md: -------------------------------------------------------------------------------- 1 | # ⚠️ NO LONGER MAINTAINED, THIS FEATURE IS NOW AVAILABLE BY DEFAULT IN DISCORD AND UTILIZED IN CIDER 2.5+ ⚠️ 2 | --- 3 | # richerCider Plugin for Vencord 4 | A plugin that provides a simple header rewrite to allow Cider to show as the listening activity type. 5 | 6 | Created by cryptofyre 7 | 8 | ## Installation Guide (Automated, Windows Only) 9 | ### Run in Powershell (Non Admin) 10 | `Invoke-Expression (Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/ciderapp/RicherCider-Vencord/main/Install-RicherCider.ps1' -UseBasicParsing).Content` 11 | 12 | ## Installation Guide (Manual) 13 | 14 | #### You'll need the following dependencies 15 | - Git ([https://git-scm.com](https://git-scm.com/download)) 16 | - Node.JS (https://nodejs.org/dist/v18.16.0/node-v18.16.0-x64.msi) 17 | - pnpm (Install with `npm install -g pnpm`) 18 | 19 | #### Clone the Vencord repository 20 | ``` 21 | git clone https://github.com/Vendicated/Vencord 22 | ``` 23 | 24 | #### Download latest RicherCider plugin into directory. (Requires cURL) 25 | ``` 26 | curl https://raw.githubusercontent.com/ciderapp/RicherCider-Vencord/main/richerCider.desktop.tsx -o Vencord/src/plugins/richerCider.desktop.tsx 27 | ``` 28 | 29 | #### Navigate to directory 30 | ``` 31 | cd Vencord/ 32 | ``` 33 | 34 | #### Build & Inject 35 | ``` 36 | pnpm install; pnpm build; pnpm inject; 37 | ``` 38 | 39 | #### Do not use public forks including this file as we cannot assure the legitmacy of the repo and its contents. 40 | -------------------------------------------------------------------------------- /Install-RicherCider.ps1: -------------------------------------------------------------------------------- 1 | # Make sure the user is in their own home directory and **NOT** System32. 2 | $homeDirectory = [Environment]::GetFolderPath("UserProfile") 3 | Set-Location -Path $homeDirectory 4 | 5 | # Install Node.js v20 and Git using Winget 6 | winget install -e --id OpenJS.NodeJS 7 | winget install -e --id Git.Git 8 | 9 | # Install pnpm using npm 10 | npm install -g pnpm@9.1.0 11 | 12 | # Clone the Vencord repository 13 | git clone https://github.com/Vendicated/Vencord.git 14 | 15 | # Download a file into the cloned repository directory 16 | $downloadUrl = "https://raw.githubusercontent.com/ciderapp/RicherCider-Vencord/main/richerCider.desktop.tsx" 17 | $downloadPath = "Vencord/src/plugins/richerCider.desktop.tsx" 18 | Invoke-WebRequest -Uri $downloadUrl -OutFile $downloadPath 19 | 20 | # Kill all Discord clients including Canary and PTB versions. This is necessary to prevent the installer from failing. 21 | Stop-Process -Name Discord -Force -ErrorAction SilentlyContinue 22 | Stop-Process -Name DiscordCanary -Force -ErrorAction SilentlyContinue 23 | Stop-Process -Name DiscordPTB -Force -ErrorAction SilentlyContinue 24 | 25 | # Run the installer for Vencord 26 | Set-Location Vencord\ 27 | pnpm install 28 | pnpm run build 29 | 30 | # Prompt user to select "Install Vencord" option 31 | Write-Output "Please select the 'Install Vencord' option in the installer." 32 | pnpm run inject 33 | 34 | # Prompt installer should have completed successfully assuming you followed the instructions. 35 | Write-Output "If you followed the instructions correctly, the installer should have completed successfully." 36 | Write-Output "You'll need to make sure to enable the plugin (richerCider) in the Vencord settings inside of Discord > Settings > Plugins > richerCider and turn the switch on and click restart." 37 | -------------------------------------------------------------------------------- /richerCider.desktop.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * Vencord, a modification for Discord's desktop app 3 | * Copyright (c) 2022 OpenAsar 4 | * 5 | * This program is free software: you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program. If not, see . 17 | */ 18 | 19 | import { Link } from "@components/Link"; 20 | import { Logger } from "@utils/Logger"; 21 | import definePlugin from "@utils/types"; 22 | import { Forms } from "@webpack/common"; 23 | const appIds = [ 24 | "911790844204437504", 25 | "886578863147192350", 26 | "1020414178047041627", 27 | "1032800329332445255" 28 | ]; 29 | const logger = new Logger("richerCider"); 30 | export default definePlugin({ 31 | name: "richerCider", 32 | description: "Enhances Cider (More details in info button) by adding the \"Listening to\" type prefix to the user's rich presence when an applicable ID is found.", 33 | authors: [{ 34 | id: 191621342473224192n, 35 | name: "cryptofyre", 36 | }, 37 | { 38 | id: 546426958465073163n, 39 | name: "Core", 40 | } 41 | ], 42 | start() { 43 | logger.debug("Plugin started"); 44 | }, 45 | patches: [ 46 | { 47 | find: '="LocalActivityStore",', 48 | replacement: { 49 | match: /LOCAL_ACTIVITY_UPDATE:function\((\i)\)\{/, 50 | replace: "$&$self.patchActivity($1.activity);", 51 | } 52 | }, 53 | { 54 | find: "}renderTimeBar(", 55 | replacement: { 56 | match: /renderTimeBar\((.{1,3})\){.{0,50}?let/, 57 | replace: "renderTimeBar($1){let" 58 | } 59 | } 60 | ], 61 | settingsAboutComponent: () => ( 62 | <> 63 | Requirements 64 | 65 | You will need Cider (any version) to use this plugin. 66 | 67 |

68 | What is Cider? 69 | 70 | Cider is a cross-platform Apple Music experience built on Vue.js and written from the ground up with performance in mind. 71 | 72 |

73 | Recommended Optional Plugins 74 | 75 | I'd recommend using TimeBarAllActivities alongside this plugin to give off a much better visual to the eye (Keep in mind this only affects your client and will not show for other users) 76 | 77 | 78 | ), 79 | patchActivity(activity: { application_id: string; type: number; }) { 80 | if (appIds.includes(activity?.application_id)) { 81 | logger.debug("Found a matching application ID, correcting activity type"); 82 | activity.type = 2; /* LISTENING type */ 83 | } 84 | }, 85 | }); 86 | --------------------------------------------------------------------------------