deploy: 7723e299a6112fee4da4ccf5ff15b1777fb4a463

This commit is contained in:
everestmcarthur 2026-08-01 19:04:49 +00:00
parent dbf9e73a8b
commit 6417b451ba
5 changed files with 15 additions and 12 deletions

View file

@ -143,8 +143,8 @@
"category": "Moderation & Appearance",
"status": "revived",
"accent": "#F97316",
"tagline": "Turns the Quest Dock into an expandable server grid, with smarter folders.",
"note": "Fork of kmmiio99o's ServerDrawer. One lookup (useMobileQuestDock) was missing an optional-chaining guard - if that lookup came back empty, the whole onLoad threw and every patch after it in the sequence never got applied, not just that one surface. Fixed, plus every patch call is now wrapped so a single bad lookup only skips its own surface. Folder options (auto-collapse, hide preview icons) are adapted from fres621's BetterFolders - its icon-hiding half patched a \"GuildContainer\" component that no longer exists anywhere in current Discord builds (confirmed against decompiled source), and only applied to the native server rail anyway, which this plugin already replaces - so it's been rebuilt as a feature of the drawer's own folders instead.",
"tagline": "An expandable server grid with DMs, smarter folders, and mark-all-read built in.",
"note": "Fork of kmmiio99o's ServerDrawer. One lookup (useMobileQuestDock) was missing an optional-chaining guard - if that lookup came back empty, the whole onLoad threw and every patch after it in the sequence never got applied, not just that one surface. Fixed, plus every patch call is now wrapped so a single bad lookup only skips its own surface. Folder options (auto-collapse, hide preview icons) are adapted from fres621's BetterFolders - its icon-hiding half patched a \"GuildContainer\" component that no longer exists anywhere in current Discord builds (confirmed against decompiled source), and only applied to the native server rail anyway, which this plugin already replaces - so it's been rebuilt as a feature of the drawer's own folders instead. Two more bugs fixed after real device testing: guild icons that never loaded (GuildStore lookups weren't reactive to guild data streaming in after connect, so most servers just showed a bare unread dot with no icon) and taps in the drawer not navigating anywhere (several lookups - transitionToGuild, the create/join action, the root nav ref - were resolved once at plugin-load time, before Discord had necessarily required those modules yet, same class of bug as YouBar+'s startup race). Both fixed; DMs also moved from a leftover sidebar icon into the drawer itself, and a mark-all-servers-as-read button was added.",
"howItWorks": "Hijacks the Quest Dock - the strip Discord normally uses for daily quests, right above the tab bar - and puts a grid of your servers there instead. Tap it to expand, tap a server to jump to it, long-press for the usual context menu (mark as read, notification settings, leave, etc). A + button opens Discord's own create/join-server modal. Optionally hides the left server rail down to a single DMs icon, since your servers now live in the drawer instead.",
"features": [
"Tap-to-expand server grid with folders, unread badges, and mention counts",
@ -153,10 +153,12 @@
"Optional: collapse the left server rail to a single DMs icon",
"Toggle unread badges independently",
"Auto-collapse other open folders when you open a new one",
"Optional plain folder icon instead of the 4-server preview when collapsed"
"Optional plain folder icon instead of the 4-server preview when collapsed",
"DMs tile in the drawer instead of a separate sidebar icon",
"Mark every channel in every server as read in one tap"
],
"commands": [],
"limitations": "Depends on several internal Quest Dock lookups (11 in total) - each is individually guarded, so a future Discord rename degrades one surface at a time instead of breaking the whole plugin. Drawer position (left/right/top) is planned but not in this build yet - it currently only replaces the Quest Dock's native bottom position.",
"limitations": "Depends on several internal Quest Dock lookups (11 in total) - each is individually guarded, so a future Discord rename degrades one surface at a time instead of breaking the whole plugin. Drawer position (left/right/top) is still planned but not in this build yet - it currently only replaces the Quest Dock's native bottom position.",
"pageUrl": "https://rp.jarviscli.dev/server-drawer/",
"installUrl": "https://rp.jarviscli.dev/server-drawer/install/",
"sourceUrl": "https://github.com/everestmcarthur/revenge-plugins/tree/main/plugins/server-drawer",
@ -387,8 +389,8 @@
"category": "Utility",
"status": "revived",
"accent": "#F0637E",
"tagline": "A grab-bag of independent utilities - Spotify listen-along, a Tenor fix, colorful channels, and more.",
"note": "Fork of nexpid's NexxUtils. Fixed the reported \"render is not a function in SpotifyPlayButton\" crash - Discord converted it from a class component to a function component, confirmed against decompiled current-build source, so patching .prototype.render no longer worked. Also fixed six other lookups across the plugin that had the same unguarded pattern that crashed FPTE's whole bundle at load time - any one of them failing would have taken the entire plugin down, not just one module.",
"tagline": "Spotify listen-along, a Tenor fix, colorful channels, and more - now actually working.",
"note": "Fork of nexpid's NexxUtils. Fixed the reported \"render is not a function in SpotifyPlayButton\" crash - Discord converted it from a class component to a function component, confirmed against decompiled current-build source, so patching .prototype.render no longer worked. Also fixed six other lookups across the plugin that had the same unguarded pattern that crashed FPTE's whole bundle at load time - any one of them failing would have taken the entire plugin down, not just one module. A more serious bug was found and fixed after real device testing: opening RoseUtils' own settings screen crashed outright with \"Cannot convert undefined value to object\". Root cause, confirmed by reading the compiled bundle directly: this repo's SWC build config lowers class syntax to plain functions for compatibility, but doesn't also handle the separate class-fields transform, so every field initializer on the internal Module class (errors, patches, started, listeners) was silently dropped from the compiled output - every module was missing all four. Fixed by assigning them in the constructor body instead, which every build target handles the same way. Also added a new module: Enforce Developer Mode, which keeps Discord's Developer Mode switched on since it tends to reset itself on Revenge.",
"howItWorks": "Each utility is its own independently toggleable module: Spotify listen-along buttons on activities, a fix for Tenor GIFs downloading as videos, an invite-to-listen-along button in the chat attachment menu, a fun \"minimod\" that shows member timeouts in chat, and colorful/NSFW-tagged channel icons. Every module tracks its own errors and shows a one-tap \"copy report\" row if something goes wrong, so a problem in one module is easy to report without digging through logs. The original's Material-Design component reskin (Switch/Toast/Alert) wasn't ported - it depends on react-native-reanimated, which isn't part of this build, and it was already disabled by default upstream due to known issues.",
"features": [
"Spotify listen-along buttons on activities (fixed)",
@ -396,7 +398,8 @@
"Send-a-Spotify-invite button in the attachment menu",
"Minimod: shows member timeouts in chat",
"Colorful, NSFW-tagged channel icons",
"Per-module error tracking with one-tap copy for bug reports"
"Per-module error tracking with one-tap copy for bug reports",
"Enforce Developer Mode - keeps it on since it resets itself on Revenge-based clients"
],
"commands": [],
"limitations": "The Material-Design component reskin from the original isn't included (needs react-native-reanimated). Each module was fixed and defensively guarded, but only the specific reported crash was verified against live decompiled source - the rest are guarded, not individually confirmed working on-device.",

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"name":"RoseUtils","description":"A small collection of independent utilities - Spotify listen-along, a Tenor download fix, colorful channel icons, and more. Fork of nexpid's NexxUtils.","authors":[{"name":"everestmcarthur"},{"name":"nexpid"}],"main":"index.js","hash":"f38420b78e1d622085a482a51db142f592c4e093a8c77c429734adfcddaa7ad6"}
{"name":"RoseUtils","description":"A small collection of independent utilities - Spotify listen-along, a Tenor download fix, colorful channel icons, and more. Fork of nexpid's NexxUtils.","authors":[{"name":"everestmcarthur"},{"name":"nexpid"}],"main":"index.js","hash":"54b0f23d30bed6575a7bf8fac7d58655e055c31a05225b49d6e2ee06b545d8f0"}

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"name":"ServerDrawer","description":"Replaces the Quest Dock with a server grid drawer above the YouBar - tap to expand, long-press a server for its context menu, plus a one-tap create/join button.","authors":[{"name":"everestmcarthur"},{"name":"kmmiio99o"},{"name":"fres"}],"main":"index.js","vendetta":{"icon":"ServerIcon"},"hash":"16050115ca69a6df56c2ba681967b0a113ea2f9bb6ff911431a97493d8223d75"}
{"name":"ServerDrawer","description":"Replaces the Quest Dock with a server grid drawer above the YouBar - tap to expand, long-press a server for its context menu, plus a one-tap create/join button.","authors":[{"name":"everestmcarthur"},{"name":"kmmiio99o"},{"name":"fres"}],"main":"index.js","vendetta":{"icon":"ServerIcon"},"hash":"c4faaed1ba1d9ba08a56168d07c43f02b23af1ec7fdc449fb55de5eb37604ce9"}