diff --git a/README.md b/README.md index 81aa45a..102f23d 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,9 @@ > I might be a bit inactive to maintain Bunny until March '24.\ > I also recommend sticking to Vendetta as long as it works. - # Bunny A mod for Discord's mobile apps, a fork of Vendetta - ## FAQs ### What's Bunny? @@ -15,25 +13,23 @@ Bunny is a fork from someone from the Vendetta team who is still interested in m ### Bunny vs. Pyoncord -Pyoncord and Bunny are completely different mods. [Pyoncord](https://github.com/pyoncord/pyoncord) is my very own WIP mod, while Bunny is... simply a Vendetta fork. Bunny is put under Pyoncord branding following my initial plan, which was to eventually merge these codebases into one (sounds insane, I know). +Pyoncord and Bunny are completely different mods. [Pyoncord](https://github.com/pyoncord/pyoncord) is my very own WIP mod, while Bunny is my own iteration of Vendetta. The current plan is to supersede Pyoncord with this project, so I have been directing more attention toward this one. ### Discord server? -I have created [Pyoncord's server](https://discord.gg/XjYgWXHb9Q) for support and announcements, but getting support through GitHub issues is much preferable. +I have created [Pyoncord's server](https://discord.gg/XjYgWXHb9Q) for announcements and support, but getting support through GitHub issues is much preferable. > [!NOTE] > It's worth noting that I'm not so much of an active Discord user myself. With me being a loner, even managing a dead Discord server would be tough. - ### Progress? -Bunny is a side project that I work on for fun. I don’t have any intention to compete with other forks/client mods *(cough Revenge cough)* especially since I receive lack of support or encouragement from others. Bunny will go at its own pace and you may not get the same level of support as other mods. - +Bunny will try not to seriously compete with other client mods. Bunny is lacking *a lot* of help so if you're interested, you might want to check out [#Contributing](#contributing) to see what you could do with this project! ## Installing ## Android ### Root -If you are rooted, you can directly load Bunny through [PyonXposed](https://github.com/pyoncord/pyonxposed), a module dedicated to inject Bunny. +If you are rooted, you can directly load Bunny through [PyonXposed](https://github.com/pyoncord/pyonxposed), the Xposed module dedicated to inject Bunny. ### Non-root You can inject [PyonXposed](https://github.com/pyoncord/pyonxposed) through [Vendetta Manager](https://github.com/vendetta-mod/VendettaManager). @@ -44,15 +40,50 @@ You can inject [PyonXposed](https://github.com/pyoncord/pyonxposed) through [Ven #### *Developer settings must be enabled beforehand by going to Settings > About and pressing the version number 10 times ## iOS -At the time of writing, iOS support is a lower priority than Android. This is due to the fact that developing for iOS is very demanding. I *do* have some non-jailbroken iOS devices for testing around, but setting up the tweak and .ipa thingy is... meh. - -I am welcoming everyone who is interested in hopping in Bunny's development and develop Bunny for iOS. Just reach me out through Discord! +At the time of writing, iOS support is a lower priority than Android. This is due to the fact that developing for iOS is very demanding. I *do* have some non-jailbroken iOS devices for testing around, but setting up the tweak and .IPA thingy is not something I can work on. For now, you can opt-in Bunny directly from VendettaTweak! If you wish to opt-in, simply: 1. Go to Settings > Developer (under the Vendetta section) > Enable 'Load from custom url' -2. Insert [Pyoncord's bundle URL](https://raw.githubusercontent.com/pyoncord/detta-builds/main/bunny.js) > Restart. +2. Insert [Bunny's bundle URL](https://raw.githubusercontent.com/pyoncord/detta-builds/main/bunny.js) > Restart. It's worth noting that this method may not last long and eventually cease in the future, but that's the least thing to worry about!... probably. -## Contributing -Setting up Bunny is quite simple if you're already familiar with developing with Node.js. Simply `git clone`, `pnpm install`, `pnpm dev` and locally host the `/dist/bunny.js` bundle built by the script. Once you've got the local URL (something like `http://192.168.1.236:4040/bunny.js`), insert the URL under Settings > Developer (enabled in General beforehand) > Load custom URL and restart +## Contributing +I am highly welcoming everyone who is interested in hopping in Bunny's development. Just reach me out through Discord!\ +Bunny currenty needs some help especially with the following: +- Developments for iOS (Tweak, IPA) +- Setting up the rest of Bunny ecosystem (plugin template, plugin repository and such) + +## Building +1. Install a Bunny 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: + ``` + git clone https://github.com/pyoncord/Bunny + ``` + +4. Install dependencies: + ``` + pnpm i + ``` + +5. Build Bunny's code: + ``` + pnpm build + ``` + +6. In the newly created `dist` directory, run a HTTP server. I 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. `http://192.168.1.236:4040/bunny.js`) in the new input box labelled `Bunny URL`. + +8. Restart Discord. Upon reload, you should notice that your device will download Bunny's bundled code from your server, rather than GitHub. + +9. Make your changes, rebuild, reload, go wild! + +> [!NOTE] +> Alternatively, you can directly *serve* the bundled code by running `pnpm serve`.\ +> `bunny.js` will be hosted on your local address under the port 4040.\ +> You will then insert `http://:4040/bunny.js` as a custom url and reload.\ +> Whenever you restart your mobile client, the script will rebuild the bundle as your client fetches it. \ No newline at end of file diff --git a/src/core/commands/debug.ts b/src/core/commands/debug.ts index b5f23c7..5e1c421 100644 --- a/src/core/commands/debug.ts +++ b/src/core/commands/debug.ts @@ -17,7 +17,7 @@ export default () => { const info = getDebugInfo(); const content = [ "**Bunny Debug Info**", - `> Bunny: ${info.vendetta.version} (${info.vendetta.loader})`, + `> Bunny: ${info.bunny.version} (${info.bunny.loader})`, `> Discord: ${info.discord.version} (${info.discord.build})`, `> React: ${info.react.version} (RN ${info.react.nativeVersion})`, `> Hermes: ${info.hermes.version} (bcv${info.hermes.bytecodeVersion})`, diff --git a/src/core/ui/settings/pages/General.tsx b/src/core/ui/settings/pages/General.tsx index bcd3dd0..2baae30 100644 --- a/src/core/ui/settings/pages/General.tsx +++ b/src/core/ui/settings/pages/General.tsx @@ -11,7 +11,7 @@ import { semanticColors } from "@ui/color"; import { Strings } from "@/core/i18n"; const { Stack, TableRow, TableSwitchRow, TableRowGroup } = findByProps("TableRow"); -const debugInfo = getDebugInfo() as any; +const debugInfo = getDebugInfo(); const styles = stylesheet.createThemedStyleSheet({ container: { @@ -26,7 +26,7 @@ export default function General() { const versions = [ { label: Strings.BUNNY, - version: debugInfo.vendetta.version, + version: debugInfo.bunny.version, icon: "ic_progress_wrench_24px", }, { @@ -54,7 +54,7 @@ export default function General() { const platformInfo = [ { label: Strings.LOADER, - version: debugInfo.vendetta.loader, + version: debugInfo.bunny.loader, icon: "ic_download_24px", }, { diff --git a/src/index.ts b/src/index.ts index f91d19e..10927cf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,7 @@ export default async () => { try { initThemes(); } catch (e) { - console.error("[Vendetta] Failed to initialize themes...", e); + console.error("[Bunny] Failed to initialize themes...", e); } } @@ -40,5 +40,5 @@ export default async () => { unloads.push(await initPlugins()); // We good :) - logger.log("Vendetta is ready!"); + logger.log("Bunny is ready!"); } diff --git a/src/lib/debug.ts b/src/lib/debug.ts index f14ac07..d5c6d2d 100644 --- a/src/lib/debug.ts +++ b/src/lib/debug.ts @@ -92,10 +92,15 @@ export function getDebugInfo() { const rnVer = PlatformConstants.reactNativeVersion; return { + /** @deprecated */ vendetta: { version: versionHash, loader: getLoaderName(), }, + bunny: { + version: versionHash, + loader: getLoaderName(), + }, discord: { version: ClientInfoManager.Version, build: ClientInfoManager.Build, diff --git a/src/lib/utils/logger.ts b/src/lib/utils/logger.ts index 2b5fbce..3050037 100644 --- a/src/lib/utils/logger.ts +++ b/src/lib/utils/logger.ts @@ -12,6 +12,6 @@ export interface Logger { } export const logModule = findByProps("setLogFn").default; -const logger: Logger = new logModule("Vendetta"); +const logger: Logger = new logModule("Bunny"); export default logger; \ No newline at end of file