├── 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 |
--------------------------------------------------------------------------------