Compare commits
11 commits
Author | SHA1 | Date | |
---|---|---|---|
027db6fc8d | |||
|
0755af9366 | ||
|
f2916d4b79 | ||
|
094ff7c879 | ||
|
e5d834fdbc | ||
|
aa4bd693bd | ||
|
b7e329ad9f | ||
|
d0b9d63d12 | ||
|
6728bb9270 | ||
|
6558cb3521 | ||
|
a573c3943f |
26 changed files with 139 additions and 589 deletions
29
.github/workflows/build.yml
vendored
29
.github/workflows/build.yml
vendored
|
@ -1,7 +1,7 @@
|
|||
name: Build
|
||||
on:
|
||||
push:
|
||||
branches: [rewrite]
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
@ -9,23 +9,23 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: https://github.com/actions/checkout@v4
|
||||
with:
|
||||
repository: "vendetta-mod/builds"
|
||||
repository: "revenge-mod/builds"
|
||||
path: "builds"
|
||||
token: ${{ secrets.BEEF_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
token: ${{ secrets.ACTIONS_TOKEN }}
|
||||
# TODO: replace with gh equivelants before opening a PR
|
||||
# ssh-key: ${{ secrets.BUILDS_SSH_PRIVKEY }}
|
||||
# ssh-known-hosts: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILzaDn52MW7i6krceJeGIv20XkzVz+VRYS8FWyh+pXhf'
|
||||
- uses: oven-sh/setup-bun@v1
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
npm i -g pnpm
|
||||
pnpm i
|
||||
bun i
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
run: bun run build
|
||||
|
||||
- name: Push builds
|
||||
run: |
|
||||
|
@ -38,7 +38,8 @@ jobs:
|
|||
git commit -m "Build $GITHUB_SHA" || exit 0
|
||||
git push
|
||||
|
||||
- name: Purge CDN cache
|
||||
run: |
|
||||
curl https://purge.jsdelivr.net/gh/vendetta-mod/builds
|
||||
### NOTE: temporarily commented out since we're not on github
|
||||
# - name: Purge CDN cache
|
||||
# run: |
|
||||
# curl https://purge.jsdelivr.net/gh/vendetta-mod/builds
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"printWidth": 240,
|
||||
"tabWidth": 4,
|
||||
"singleQuote": false,
|
||||
"jsxSingleQuote": false,
|
||||
"bracketSpacing": true,
|
||||
"useTabs": false
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
github: [maisymoe, wingio]
|
1
LICENSE
1
LICENSE
|
@ -1,6 +1,7 @@
|
|||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2023, Team Vendetta
|
||||
Copyright (c) 2024, Team Revenge
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
|
69
README.md
69
README.md
|
@ -1,50 +1,51 @@
|
|||
# Revenge
|
||||
|
||||
A modification for the Discord Android app. Continuation of [Vendetta](https://github.com/vendetta-mod). Get it? Vendetta is like, revenging..., yeah.
|
||||
|
||||
## ⬇️ Installing
|
||||
|
||||
> [!NOTE]
|
||||
> While Revenge is platform-agnostic, there is no guarantee it will always work on iOS. I do not have a device to test the changes I've made, so feel free to report iOS-specific issues in the Issues tab if you encounter one.
|
||||
|
||||
<!--1. Install [Vendetta](https://github.com/vendetta-mod/Vendetta)
|
||||
2. Go to Settings > General and enable Developer Settings
|
||||
3. Go to Settings > Developer, then enable `Load from custom url` and input `[PLACEHOLDER]`
|
||||
- If that settings section does not appear, restart the app.
|
||||
4. Restart the app and check if it says Revenge in the settings--->
|
||||
|
||||
Installing is currently not possible yet. Please check back later.
|
||||
|
||||
## 💖 Contributing
|
||||
|
||||
> [!IMPORTANT]
|
||||
> As of 06/02/24, Vendetta has been discontinued.
|
||||
> This project now uses [Bun](https://bun.sh) instead of Node.js.
|
||||
> It is **recommended** to use Bun over Node.js because Bun is faster and far better for development.
|
||||
>
|
||||
> If you're on Windows, we recommend checking out WSL.
|
||||
|
||||
# Vendetta
|
||||
A mod for Discord's mobile apps.
|
||||
1. Install [Vendetta](https://github.com/vendetta-mod/Vendetta)
|
||||
|
||||
## Installing
|
||||
Vendetta's codebase is platform-agnostic, but you need a platform-specific loader.
|
||||
1. Go to Settings > General and enable Developer Settings.
|
||||
|
||||
### Android
|
||||
* Root - [VendettaXposed](https://github.com/vendetta-mod/VendettaXposed/releases/latest)
|
||||
* Non-root - [VendettaManager](https://github.com/vendetta-mod/VendettaManager/releases/latest)
|
||||
- Manager not working? No problem! Pre-built APKs are provided [here](https://discord.k6.tf/).
|
||||
- The minimum Android version required is 9. It will not work any lower.
|
||||
|
||||
### iOS
|
||||
* Jailbroken - [VendettaTweak](https://github.com/vendetta-mod/VendettaTweak)
|
||||
- You can get prebuilt `.deb` files from GitHub Actions - we support rootful and rootless jailbreaks!
|
||||
* Jailed - You can get IPAs from [the thread](https://discord.com/channels/1015931589865246730/1087295482667208766) in our [Discord server](https://discord.gg/n9QQ4XhhJP) or from our [host](https://discord.k6.tf/ios/).
|
||||
- These IPAs do *not* work with AltStore! You should use [Sideloadly](https://sideloadly.io).
|
||||
|
||||
## Contributing
|
||||
1. Install a Vendetta loader with loader config support (any mentioned in the [Installing](#installing) section).
|
||||
|
||||
2. Go to Settings > General and enable Developer Settings.
|
||||
|
||||
3. Clone the repo:
|
||||
2. Clone the repo:
|
||||
```
|
||||
git clone https://github.com/vendetta-mod/Vendetta
|
||||
git clone https://github.com/revenge-mod/Revenge
|
||||
```
|
||||
|
||||
4. Install dependencies:
|
||||
3. Install dependencies:
|
||||
```
|
||||
pnpm i
|
||||
bun i
|
||||
```
|
||||
<sup>`npm` or `yarn` should also work.</sup>
|
||||
|
||||
5. Build Vendetta's code:
|
||||
4. Build Revenge's code:
|
||||
```
|
||||
pnpm build
|
||||
bun run build
|
||||
```
|
||||
<sup>`npm` or `yarn` should also work.</sup>
|
||||
|
||||
6. In the newly created `dist` directory, run a HTTP server. I recommend [http-server](https://www.npmjs.com/package/http-server).
|
||||
5. In the newly created `dist` directory, run a HTTP server. We recommend [http-server](https://www.npmjs.com/package/http-server).
|
||||
|
||||
7. Go to Settings > Developer enabled earlier). Enable `Load from custom url` and input the IP address and port of the server (e.g. e.g. `http://192.168.1.236:4040`) in the new input box labelled `VENDETTA URL`.
|
||||
6. Go to Settings > Developer enabled earlier). Enable `Load from custom url` and input the IP address and port of the server (e.g. e.g. `http://192.168.1.236:4040`) in the new input box labelled `VENDETTA URL`.
|
||||
|
||||
8. Restart Discord. Upon reload, you should notice that your device will download Vendetta's bundled code from your server, rather than GitHub.
|
||||
7. Restart Discord. Upon reload, you should notice that your device will download Revenge's bundled code from your server, rather than GitHub.
|
||||
|
||||
9. Make your changes, rebuild, reload, go wild!
|
||||
8. Make your changes, rebuild, reload, go wild!
|
||||
|
|
14
biome.json
Normal file
14
biome.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"$schema": "https://biomejs.dev/schemas/1.5.3/schema.json",
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"bracketSpacing": true,
|
||||
"indentSize": 4,
|
||||
"indentStyle": "space",
|
||||
"jsxQuoteStyle": "double",
|
||||
"lineWidth": 240,
|
||||
"quoteStyle": "double"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ const commit = (await exec("git rev-parse HEAD")).stdout.trim().substring(0, 7)
|
|||
try {
|
||||
await build({
|
||||
entryPoints: ["./src/entry.ts"],
|
||||
outfile: "./dist/vendetta.js",
|
||||
outfile: "./dist/revenge.js",
|
||||
minify: true,
|
||||
bundle: true,
|
||||
format: "iife",
|
||||
|
@ -44,10 +44,10 @@ try {
|
|||
alias(aliases),
|
||||
],
|
||||
define: {
|
||||
__vendettaVersion: `"${commit}"`,
|
||||
__revengeVersion: `"${commit}"`,
|
||||
},
|
||||
footer: {
|
||||
js: "//# sourceURL=Vendetta",
|
||||
js: "//# sourceURL=Revenge",
|
||||
},
|
||||
legalComments: "none",
|
||||
});
|
||||
|
|
BIN
bun.lockb
Executable file
BIN
bun.lockb
Executable file
Binary file not shown.
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"name": "vendetta",
|
||||
"name": "revenge",
|
||||
"version": "1.0.0",
|
||||
"description": "A mod for Discord's mobile apps.",
|
||||
"description": "A modification for the Discord Android app.",
|
||||
"scripts": {
|
||||
"build": "node build.mjs"
|
||||
"build": "bun run build.mjs"
|
||||
},
|
||||
"keywords": [
|
||||
"discord",
|
||||
|
@ -11,9 +11,10 @@
|
|||
"ios",
|
||||
"react native"
|
||||
],
|
||||
"author": "Beef",
|
||||
"author": "maisymoe",
|
||||
"license": "BSD-3-Clause",
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^1.5.3",
|
||||
"@react-native-clipboard/clipboard": "1.10.0",
|
||||
"@swc/core": "1.3.50",
|
||||
"@types/chroma-js": "^2.4.0",
|
||||
|
|
461
pnpm-lock.yaml
461
pnpm-lock.yaml
|
@ -1,461 +0,0 @@
|
|||
lockfileVersion: '6.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
dependencies:
|
||||
'@swc/helpers':
|
||||
specifier: 0.5.0
|
||||
version: 0.5.0
|
||||
spitroast:
|
||||
specifier: ^1.4.3
|
||||
version: 1.4.3
|
||||
|
||||
devDependencies:
|
||||
'@react-native-clipboard/clipboard':
|
||||
specifier: 1.10.0
|
||||
version: 1.10.0
|
||||
'@swc/core':
|
||||
specifier: 1.3.50
|
||||
version: 1.3.50(@swc/helpers@0.5.0)
|
||||
'@types/chroma-js':
|
||||
specifier: ^2.4.0
|
||||
version: 2.4.0
|
||||
'@types/lodash':
|
||||
specifier: ^4.14.194
|
||||
version: 4.14.194
|
||||
'@types/react':
|
||||
specifier: 18.0.35
|
||||
version: 18.0.35
|
||||
'@types/react-native':
|
||||
specifier: 0.70.6
|
||||
version: 0.70.6
|
||||
esbuild:
|
||||
specifier: ^0.17.16
|
||||
version: 0.17.16
|
||||
esbuild-plugin-alias:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1
|
||||
moment:
|
||||
specifier: 2.22.2
|
||||
version: 2.22.2
|
||||
typescript:
|
||||
specifier: ^5.0.4
|
||||
version: 5.2.2
|
||||
|
||||
packages:
|
||||
|
||||
/@esbuild/android-arm64@0.17.16:
|
||||
resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/android-arm@0.17.16:
|
||||
resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/android-x64@0.17.16:
|
||||
resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/darwin-arm64@0.17.16:
|
||||
resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/darwin-x64@0.17.16:
|
||||
resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/freebsd-arm64@0.17.16:
|
||||
resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/freebsd-x64@0.17.16:
|
||||
resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-arm64@0.17.16:
|
||||
resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-arm@0.17.16:
|
||||
resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-ia32@0.17.16:
|
||||
resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-loong64@0.17.16:
|
||||
resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-mips64el@0.17.16:
|
||||
resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-ppc64@0.17.16:
|
||||
resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-riscv64@0.17.16:
|
||||
resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-s390x@0.17.16:
|
||||
resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-x64@0.17.16:
|
||||
resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/netbsd-x64@0.17.16:
|
||||
resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/openbsd-x64@0.17.16:
|
||||
resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/sunos-x64@0.17.16:
|
||||
resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-arm64@0.17.16:
|
||||
resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-ia32@0.17.16:
|
||||
resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-x64@0.17.16:
|
||||
resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@react-native-clipboard/clipboard@1.10.0:
|
||||
resolution: {integrity: sha512-1L+I0vmeUJgMi8MnNsqI00391/RFLkmmxj9qAuOS2madpvce/oNqJb8Pwk2Fc/uxIJSxOckTpq+dQwyPU6s+7w==}
|
||||
peerDependencies:
|
||||
react: '>=16.0'
|
||||
react-native: '>=0.57.0'
|
||||
peerDependenciesMeta:
|
||||
react:
|
||||
optional: true
|
||||
react-native:
|
||||
optional: true
|
||||
dev: true
|
||||
|
||||
/@swc/core-darwin-arm64@1.3.50:
|
||||
resolution: {integrity: sha512-riJGLORCFOMeUccEV0hzua0iyJFks7kef+5GfcmC93SLno+LHFDnaJ4mKVXcCAmQ7GYhVTPJs9gSHIW2fO5anQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-darwin-x64@1.3.50:
|
||||
resolution: {integrity: sha512-XaAhpeUoAK8tOUYSXH/v35yEjIoSP6ClGV/EaqBmDuCzAPue6uJMlIAW+nTmdtqVm5ZNZy2cKtP4ZHhVlfl7xw==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm-gnueabihf@1.3.50:
|
||||
resolution: {integrity: sha512-8hDtXs0T5biMtA3I21JQG1uxL+Hb/D2t0NZENuajVK5Vky3GXmf+ICVeQzwGzSXiyftaDgyNAvBidbKPBlNEtw==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-gnu@1.3.50:
|
||||
resolution: {integrity: sha512-iS908P5cNTHWus4QefSg2jn4lDYcl15sN1Fvx8fQgqYQra2O9CsR8lXBJYkvllykkzoKvWfcOLRCTquz3vsnVQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-arm64-musl@1.3.50:
|
||||
resolution: {integrity: sha512-ysh8MeaWjGqVwIPCDUhUOr4oczIx5qb8vFBoegI+SOUfcpWik22/+hG25LWzZY6PwAtqUGkhsJt/+5dY4IMhEA==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-gnu@1.3.50:
|
||||
resolution: {integrity: sha512-Ci4LQaGIPweWNVWgR2f47nrYEfq7002Pj6WWKGrnO6g+k5cwR3izxHMOnZhcKyAD3cWOS904i/GbfgXs2wBCDQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-linux-x64-musl@1.3.50:
|
||||
resolution: {integrity: sha512-SEXOhGjmC4rdBeucCvNmtO2vflUEhkmWLfqvkalHYDbPMA/gwLSoYu3D85u5XqB8DatDi4TOCUx80IR1b/vDBQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-arm64-msvc@1.3.50:
|
||||
resolution: {integrity: sha512-DPsJ2r9mYU8VzF9vhK323psyE8modj5be9M9diOsqF58Fu9ARtOfuulY+eiS5e41ya2XM/H2N/qOfsA+h2KRcg==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-ia32-msvc@1.3.50:
|
||||
resolution: {integrity: sha512-2iyzHLat0C93S3XLp7QJ6RTA9Md+EcPl2fq1S/m2EZqofcq7wu5SuywaXoF89xOibOJBnWe6KwOnOFWFaXrPjQ==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core-win32-x64-msvc@1.3.50:
|
||||
resolution: {integrity: sha512-iFRU2Y5DVIEdjaWnlLij8QQBM5Q91UJotNNgzuevPSIOhOyhF6V2AQS1QC4mfkPCy3Bw0GrZDChu3GcuBj9Rzw==}
|
||||
engines: {node: '>=10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@swc/core@1.3.50(@swc/helpers@0.5.0):
|
||||
resolution: {integrity: sha512-soTAHlwkI8zukR9KftWZ0gZ7HKU99B/C3CtBxzSI3N23QG+EfSSOgrYARfuZk5g4yLWpsU0rEkojd78vixqkwg==}
|
||||
engines: {node: '>=10'}
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
'@swc/helpers': ^0.5.0
|
||||
peerDependenciesMeta:
|
||||
'@swc/helpers':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@swc/helpers': 0.5.0
|
||||
optionalDependencies:
|
||||
'@swc/core-darwin-arm64': 1.3.50
|
||||
'@swc/core-darwin-x64': 1.3.50
|
||||
'@swc/core-linux-arm-gnueabihf': 1.3.50
|
||||
'@swc/core-linux-arm64-gnu': 1.3.50
|
||||
'@swc/core-linux-arm64-musl': 1.3.50
|
||||
'@swc/core-linux-x64-gnu': 1.3.50
|
||||
'@swc/core-linux-x64-musl': 1.3.50
|
||||
'@swc/core-win32-arm64-msvc': 1.3.50
|
||||
'@swc/core-win32-ia32-msvc': 1.3.50
|
||||
'@swc/core-win32-x64-msvc': 1.3.50
|
||||
dev: true
|
||||
|
||||
/@swc/helpers@0.5.0:
|
||||
resolution: {integrity: sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==}
|
||||
dependencies:
|
||||
tslib: 2.6.2
|
||||
|
||||
/@types/chroma-js@2.4.0:
|
||||
resolution: {integrity: sha512-JklMxityrwjBTjGY2anH8JaTx3yjRU3/sEHSblLH1ba5lqcSh1LnImXJZO5peJfXyqKYWjHTGy4s5Wz++hARrw==}
|
||||
dev: true
|
||||
|
||||
/@types/lodash@4.14.194:
|
||||
resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==}
|
||||
dev: true
|
||||
|
||||
/@types/prop-types@15.7.5:
|
||||
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
||||
dev: true
|
||||
|
||||
/@types/react-native@0.70.6:
|
||||
resolution: {integrity: sha512-ynQ2jj0km9d7dbnyKqVdQ6Nti7VQ8SLTA/KKkkS5+FnvGyvij2AOo1/xnkBR/jnSNXuzrvGVzw2n0VWfppmfKw==}
|
||||
dependencies:
|
||||
'@types/react': 18.0.35
|
||||
dev: true
|
||||
|
||||
/@types/react@18.0.35:
|
||||
resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==}
|
||||
dependencies:
|
||||
'@types/prop-types': 15.7.5
|
||||
'@types/scheduler': 0.16.3
|
||||
csstype: 3.1.2
|
||||
dev: true
|
||||
|
||||
/@types/scheduler@0.16.3:
|
||||
resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
|
||||
dev: true
|
||||
|
||||
/csstype@3.1.2:
|
||||
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
|
||||
dev: true
|
||||
|
||||
/esbuild-plugin-alias@0.2.1:
|
||||
resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==}
|
||||
dev: true
|
||||
|
||||
/esbuild@0.17.16:
|
||||
resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@esbuild/android-arm': 0.17.16
|
||||
'@esbuild/android-arm64': 0.17.16
|
||||
'@esbuild/android-x64': 0.17.16
|
||||
'@esbuild/darwin-arm64': 0.17.16
|
||||
'@esbuild/darwin-x64': 0.17.16
|
||||
'@esbuild/freebsd-arm64': 0.17.16
|
||||
'@esbuild/freebsd-x64': 0.17.16
|
||||
'@esbuild/linux-arm': 0.17.16
|
||||
'@esbuild/linux-arm64': 0.17.16
|
||||
'@esbuild/linux-ia32': 0.17.16
|
||||
'@esbuild/linux-loong64': 0.17.16
|
||||
'@esbuild/linux-mips64el': 0.17.16
|
||||
'@esbuild/linux-ppc64': 0.17.16
|
||||
'@esbuild/linux-riscv64': 0.17.16
|
||||
'@esbuild/linux-s390x': 0.17.16
|
||||
'@esbuild/linux-x64': 0.17.16
|
||||
'@esbuild/netbsd-x64': 0.17.16
|
||||
'@esbuild/openbsd-x64': 0.17.16
|
||||
'@esbuild/sunos-x64': 0.17.16
|
||||
'@esbuild/win32-arm64': 0.17.16
|
||||
'@esbuild/win32-ia32': 0.17.16
|
||||
'@esbuild/win32-x64': 0.17.16
|
||||
dev: true
|
||||
|
||||
/moment@2.22.2:
|
||||
resolution: {integrity: sha512-LRvkBHaJGnrcWvqsElsOhHCzj8mU39wLx5pQ0pc6s153GynCTsPdGdqsVNKAQD9sKnWj11iF7TZx9fpLwdD3fw==}
|
||||
dev: true
|
||||
|
||||
/spitroast@1.4.3:
|
||||
resolution: {integrity: sha512-JdkzAy2tT82ahx+eEtM5ohBeHICqFln/Yzo+vPGnE5sX1LYgPHCU2qcaSIJfR/xNrhI0q+ftwFz0H2aJysv3EA==}
|
||||
dev: false
|
||||
|
||||
/tslib@2.6.2:
|
||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||
|
||||
/typescript@5.2.2:
|
||||
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
dev: true
|
6
src/def.d.ts
vendored
6
src/def.d.ts
vendored
|
@ -486,7 +486,7 @@ interface VendettaObject {
|
|||
};
|
||||
storage: {
|
||||
createProxy: <T>(target: T) => { proxy: T, emitter: Emitter };
|
||||
useProxy: <T>(storage: T) => T;
|
||||
useProxy: <T>(storage: T & { [key: symbol]: any }) => T;
|
||||
createStorage: <T>(backend: StorageBackend) => Promise<Awaited<T>>;
|
||||
wrapSync: <T extends Promise<any>>(store: T) => Awaited<T>;
|
||||
awaitSyncWrapper: (store: any) => Promise<void>;
|
||||
|
@ -511,10 +511,10 @@ interface VendettaPluginObject {
|
|||
|
||||
declare global {
|
||||
type React = typeof _React;
|
||||
const __vendettaVersion: string;
|
||||
const __revengeVersion: string;
|
||||
|
||||
interface Window {
|
||||
[key: PropertyKey]: any;
|
||||
[key: Exclude<PropertyKey, number>]: any;
|
||||
modules: MetroModules;
|
||||
vendetta: VendettaObject;
|
||||
React: typeof _React;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { ClientInfoManager } from "@lib/native";
|
||||
|
||||
// This logs in the native logging implementation, e.g. logcat
|
||||
console.log("Hello from Vendetta!");
|
||||
console.log("Hello from Revenge!");
|
||||
|
||||
// Make 'freeze' and 'seal' do nothing
|
||||
Object.freeze = Object;
|
||||
|
@ -10,9 +10,10 @@ Object.seal = Object;
|
|||
import(".").then((m) => m.default()).catch((e) => {
|
||||
console.log(e?.stack ?? e.toString());
|
||||
alert([
|
||||
"Failed to load Vendetta!\n",
|
||||
"Failed to load Revenge!\n",
|
||||
`Build Number: ${ClientInfoManager.Build}`,
|
||||
`Vendetta: ${__vendettaVersion}`,
|
||||
// TODO: Rename this
|
||||
`Revenge: ${__revengeVersion}`,
|
||||
e?.stack || e.toString(),
|
||||
].join("\n"));
|
||||
});
|
||||
|
|
|
@ -30,5 +30,5 @@ export default async () => {
|
|||
unloads.push(await initPlugins());
|
||||
|
||||
// We good :)
|
||||
logger.log("Vendetta is ready!");
|
||||
logger.log("Revenge is ready!");
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
// TODO: Replace links and constants with actual values
|
||||
export const DISCORD_SERVER = "https://discord.gg/n9QQ4XhhJP";
|
||||
export const DISCORD_SERVER_ID = "1015931589865246730";
|
||||
export const PLUGINS_CHANNEL_ID = "1091880384561684561";
|
||||
export const THEMES_CHANNEL_ID = "1091880434939482202";
|
||||
export const GITHUB = "https://github.com/vendetta-mod";
|
||||
export const GITHUB = "https://github.com/revenge-mod";
|
||||
export const PROXY_PREFIX = "https://vd-plugins.github.io/proxy";
|
||||
export const HTTP_REGEX = /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$/;
|
||||
export const HTTP_REGEX_MULTI = /https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g;
|
|
@ -59,7 +59,7 @@ export function patchLogHook() {
|
|||
}
|
||||
}
|
||||
|
||||
export const versionHash: string = __vendettaVersion;
|
||||
export const versionHash: string = __revengeVersion;
|
||||
|
||||
export function getDebugInfo() {
|
||||
// Hermes
|
||||
|
|
|
@ -2,6 +2,6 @@ import { Logger } from "@types";
|
|||
import { findByProps } from "@metro/filters";
|
||||
|
||||
export const logModule = findByProps("setLogFn").default;
|
||||
const logger: Logger = new logModule("Vendetta");
|
||||
const logger: Logger = new logModule("Revenge");
|
||||
|
||||
export default logger;
|
|
@ -40,6 +40,6 @@ if (window.__vendetta_loader?.features.themes) {
|
|||
try {
|
||||
initThemes();
|
||||
} catch (e) {
|
||||
console.error("[Vendetta] Failed to initialize themes...", e);
|
||||
console.error("[Revenge] Failed to initialize themes...", e);
|
||||
}
|
||||
}
|
|
@ -81,7 +81,7 @@ export function useProxy<T>(storage: T & { [key: symbol]: any }): T {
|
|||
return storage;
|
||||
}
|
||||
|
||||
export async function createStorage<T>(backend: StorageBackend): Promise<Awaited<T>> {
|
||||
export async function createStorage<T>(backend: StorageBackend): Promise<Awaited<T & { [key: symbol]: any }>> {
|
||||
const data = await backend.get();
|
||||
const { proxy, emitter } = createProxy(data);
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ export default async (unloads: any[]): Promise<VendettaObject> => ({
|
|||
version: debug.versionHash,
|
||||
unload: () => {
|
||||
unloads.filter(i => typeof i === "function").forEach(p => p());
|
||||
// @ts-expect-error explode
|
||||
// @ts-expect-error On unload, nothing would be using this
|
||||
delete window.vendetta;
|
||||
},
|
||||
});
|
||||
|
|
|
@ -9,7 +9,6 @@ const styles = stylesheet.createThemedStyleSheet({
|
|||
margin: 0,
|
||||
padding: 0,
|
||||
borderBottomWidth: 0,
|
||||
background: "none",
|
||||
backgroundColor: "none",
|
||||
}
|
||||
});
|
||||
|
|
|
@ -15,7 +15,7 @@ export default function SettingsSection() {
|
|||
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
<FormSection key="Vendetta" title={`Vendetta${settings.safeMode?.enabled ? " (Safe Mode)" : ""}`}>
|
||||
<FormSection key="Revenge" title={`Revenge${settings.safeMode?.enabled ? " (Safe Mode)" : ""}`}>
|
||||
{screens.map((s, i) => (
|
||||
<>
|
||||
<FormRow
|
||||
|
|
|
@ -34,13 +34,13 @@ const keyMap = (screens: Screen[], data: string | ((s: Screen) => any) | null) =
|
|||
|
||||
export const getScreens = (youKeys = false): Screen[] => [
|
||||
{
|
||||
key: formatKey("VendettaSettings", youKeys),
|
||||
key: formatKey("RevengeSettings", youKeys),
|
||||
title: "General",
|
||||
icon: "settings",
|
||||
render: General,
|
||||
},
|
||||
{
|
||||
key: formatKey("VendettaPlugins", youKeys),
|
||||
key: formatKey("RevengePlugins", youKeys),
|
||||
title: "Plugins",
|
||||
icon: "debug",
|
||||
options: {
|
||||
|
@ -51,7 +51,7 @@ export const getScreens = (youKeys = false): Screen[] => [
|
|||
if (!input.startsWith(PROXY_PREFIX) && !settings.developerSettings)
|
||||
setImmediate(() => showConfirmationAlert({
|
||||
title: "Unproxied Plugin",
|
||||
content: "The plugin you are trying to install has not been proxied/verified by Vendetta staff. Are you sure you want to continue?",
|
||||
content: "The plugin you are trying to install has not been verified by Revenge staff. Are you sure you want to continue?",
|
||||
confirmText: "Install",
|
||||
onConfirm: () =>
|
||||
installPlugin(input)
|
||||
|
@ -67,7 +67,7 @@ export const getScreens = (youKeys = false): Screen[] => [
|
|||
render: Plugins,
|
||||
},
|
||||
{
|
||||
key: formatKey("VendettaThemes", youKeys),
|
||||
key: formatKey("RevengeThemes", youKeys),
|
||||
title: "Themes",
|
||||
icon: "ic_theme_24px",
|
||||
// TODO: bad
|
||||
|
@ -78,7 +78,7 @@ export const getScreens = (youKeys = false): Screen[] => [
|
|||
render: Themes,
|
||||
},
|
||||
{
|
||||
key: formatKey("VendettaDeveloper", youKeys),
|
||||
key: formatKey("RevengeDeveloper", youKeys),
|
||||
title: "Developer",
|
||||
icon: "ic_progress_wrench_24px",
|
||||
shouldRender: () => settings.developerSettings ?? false,
|
||||
|
@ -86,7 +86,7 @@ export const getScreens = (youKeys = false): Screen[] => [
|
|||
},
|
||||
{
|
||||
key: formatKey("VendettaCustomPage", youKeys),
|
||||
title: "Vendetta Page",
|
||||
title: "Revenge Page",
|
||||
shouldRender: () => false,
|
||||
render: ({ render: PageView, noErrorBoundary, ...options }: { render: React.ComponentType; noErrorBoundary: boolean } & Record<string, object>) => {
|
||||
const navigation = NavigationNative.useNavigation();
|
||||
|
@ -110,8 +110,8 @@ export const getYouData = () => {
|
|||
|
||||
return {
|
||||
getLayout: () => ({
|
||||
title: "Vendetta",
|
||||
label: "Vendetta",
|
||||
title: "Revenge",
|
||||
label: "Revenge",
|
||||
// We can't use our keyMap function here since `settings` is an array not an object
|
||||
settings: getRenderableScreens(true).map(s => s.key)
|
||||
}),
|
||||
|
|
|
@ -48,7 +48,7 @@ export default function Developer() {
|
|||
{window.__vendetta_loader?.features.loaderConfig && <FormSection title="Loader config">
|
||||
<FormSwitchRow
|
||||
label="Load from custom url"
|
||||
subLabel={"Load Vendetta from a custom endpoint."}
|
||||
subLabel={"Load Revenge from a custom endpoint."}
|
||||
leading={<FormRow.Icon source={getAssetIDByName("copy")} />}
|
||||
value={loaderConfig.customLoadUrl.enabled}
|
||||
onValueChange={(v: boolean) => {
|
||||
|
@ -60,8 +60,8 @@ export default function Developer() {
|
|||
<FormInput
|
||||
value={loaderConfig.customLoadUrl.url}
|
||||
onChange={(v: string) => loaderConfig.customLoadUrl.url = v}
|
||||
placeholder="http://localhost:4040/vendetta.js"
|
||||
title="VENDETTA URL"
|
||||
placeholder="http://localhost:4040/revenge.js"
|
||||
title="REVENGE URL"
|
||||
/>
|
||||
<FormDivider />
|
||||
</>}
|
||||
|
@ -100,7 +100,7 @@ export default function Developer() {
|
|||
options: [
|
||||
// @ts-expect-error
|
||||
// Of course, to trigger an error, we need to do something incorrectly. The below will do!
|
||||
{ label: "Vendetta", onPress: () => navigation.push("VendettaCustomPage", { render: () => <undefined /> }) },
|
||||
{ label: "Revenge", onPress: () => navigation.push("VendettaCustomPage", { render: () => <undefined /> }) },
|
||||
{ label: "Discord", isDestructive: true, onPress: () => navigation.push("VendettaCustomPage", { noErrorBoundary: true }) },
|
||||
],
|
||||
})}
|
||||
|
|
|
@ -16,7 +16,7 @@ export default function General() {
|
|||
|
||||
const versions = [
|
||||
{
|
||||
label: "Vendetta",
|
||||
label: "Revenge",
|
||||
version: debugInfo.vendetta.version,
|
||||
icon: "ic_progress_wrench_24px",
|
||||
},
|
||||
|
|
|
@ -44,7 +44,7 @@ function oldYouPatch(patches: Function[]) {
|
|||
ancestorRendererData: data.rendererConfigs[s.key],
|
||||
setting: s.key,
|
||||
title: data.titleConfig[s.key],
|
||||
breadcrumbs: ["Vendetta"],
|
||||
breadcrumbs: ["Revenge"],
|
||||
icon: data.rendererConfigs[s.key].icon,
|
||||
})),
|
||||
// .filter can be removed when dropping support for 189.3 and below (unless Discord changes things again)
|
||||
|
@ -78,7 +78,7 @@ function newYouPatch(patches: Function[]) {
|
|||
patches.push(before("type", settingsListComponents.SearchableSettingsList, ([{ sections }]) => manipulateSections(sections, data.getLayout())));
|
||||
|
||||
patches.push(after("getSettingListSearchResultItems", gettersModule, (_, ret) => {
|
||||
ret.forEach((s: any) => screens.some(b => b.key === s.setting) && (s.breadcrumbs = ["Vendetta"]))
|
||||
ret.forEach((s: any) => screens.some(b => b.key === s.setting) && (s.breadcrumbs = ["Revenge"]))
|
||||
}));
|
||||
|
||||
const oldRendererConfig = settingConstantsModule.SETTING_RENDERER_CONFIG;
|
||||
|
@ -94,7 +94,7 @@ function newYouPatch(patches: Function[]) {
|
|||
const isLabel = (i: any, name: string) => i?.label === name || i?.title === name;
|
||||
|
||||
function manipulateSections(sections: any[], layout: any) {
|
||||
if (!Array.isArray(sections) || sections.find((i: any) => isLabel(i, "Vendetta"))) return;
|
||||
if (!Array.isArray(sections) || sections.find((i: any) => isLabel(i, "Revenge"))) return;
|
||||
|
||||
// Add our settings
|
||||
const accountSettingsIndex = sections.findIndex((i: any) => isLabel(i, i18n.Messages.ACCOUNT_SETTINGS));
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"paths": {
|
||||
"@/*": ["src/*"],
|
||||
"@types": ["src/def.d.ts"],
|
||||
|
|
Loading…
Reference in a new issue