diff --git a/plugins-data.json b/plugins-data.json index aee9517..4d10f61 100644 --- a/plugins-data.json +++ b/plugins-data.json @@ -187,6 +187,34 @@ "sourceUrl": "https://github.com/everestmcarthur/revenge-plugins/tree/main/plugins/staff-tags", "issueUrl": "https://github.com/everestmcarthur/revenge-plugins/issues/new?title=%5BStaff%20Tags%5D%20" }, + { + "id": "you-bar-plus", + "name": "YouBar+", + "description": "Adds up to 2 configurable buttons (Direct Messages, Settings, or none) to the YouBar, in whatever order you pick.", + "authors": [ + "everestmcarthur", + "Purple_Ξye™" + ], + "category": "Moderation & Appearance", + "status": "revived", + "accent": "#5865F2", + "tagline": "Configurable buttons on the YouBar - up to 2 at a time, in your chosen order.", + "note": "Fork of Purple-EyeZ's YouBar+. Fixed a startup race condition: the original did a single one-shot component lookup during onLoad and silently gave up for the rest of the session if it ran before the target had registered in Metro yet (a real risk on a cold app start) - restarting Discord just got lucky on a re-roll. This port polls for the component instead of looking it up once. Also replaced the original's two independent on/off toggles with a real slot-based system: 2 ordered slots, each set to None, Direct Messages, or Settings.", + "howItWorks": "The YouBar is the row near your avatar/status at the top of the app. This plugin patches its notification button area to also render up to 2 extra icon buttons, each pulled from one of 2 configurable slots. Each slot cycles between None, Direct Messages (jumps to your DMs), and Settings (opens user settings) - tap a slot in the plugin's settings to cycle it. Slot order controls left-to-right button order, and each slot is independent, so you can run just one button, both, or neither. Both slots default to Direct Messages then Settings, matching the original plugin's default look.", + "features": [ + "Up to 2 buttons on the YouBar, each independently configurable", + "Choices per slot: None, Direct Messages, Settings", + "Slot order controls left-to-right button order", + "Settings changes apply immediately, no restart needed", + "Startup race condition fixed - polls for the target component instead of a single one-shot lookup" + ], + "commands": [], + "limitations": "Only wires up to actions with a confirmed, still-working lookup (jump to DMs, open Settings) - no additional slot choices were added beyond what could be verified against a real findByProps target.", + "pageUrl": "https://rp.jarviscli.dev/you-bar-plus/", + "installUrl": "https://rp.jarviscli.dev/you-bar-plus/install/", + "sourceUrl": "https://github.com/everestmcarthur/revenge-plugins/tree/main/plugins/you-bar-plus", + "issueUrl": "https://github.com/everestmcarthur/revenge-plugins/issues/new?title=%5BYouBar%2B%5D%20" + }, { "id": "message-snippets", "name": "Message Snippets", diff --git a/you-bar-plus/index.html b/you-bar-plus/index.html new file mode 100644 index 0000000..d3dce5e --- /dev/null +++ b/you-bar-plus/index.html @@ -0,0 +1,736 @@ + + + + + +revenge-plugins + + + + + + +
+ + +
+
+ + Revenge Plugins +
+

Discord, your way.

+

A hand-built collection of plugins for Revenge, the Discord Android client mod - rebuilt from scratch where the old ecosystem broke, and net-new where nothing existed yet.

+ + +
+
+ +
+
+
+ + ⌘K +
+
+
+ +
+

+
+ +
+
+ +
+ + + +
+ +
+
+ +
+
+
+ + + + diff --git a/you-bar-plus/install/11d89273b5bd6cc6.png b/you-bar-plus/install/11d89273b5bd6cc6.png new file mode 100644 index 0000000..323afc3 Binary files /dev/null and b/you-bar-plus/install/11d89273b5bd6cc6.png differ diff --git a/you-bar-plus/install/3a73d84a21043a5e.png b/you-bar-plus/install/3a73d84a21043a5e.png new file mode 100644 index 0000000..6beb211 Binary files /dev/null and b/you-bar-plus/install/3a73d84a21043a5e.png differ diff --git a/you-bar-plus/install/4d1aef97fe869aaf.png b/you-bar-plus/install/4d1aef97fe869aaf.png new file mode 100644 index 0000000..8a5e8af Binary files /dev/null and b/you-bar-plus/install/4d1aef97fe869aaf.png differ diff --git a/you-bar-plus/install/88eacd3588829ded.png b/you-bar-plus/install/88eacd3588829ded.png new file mode 100644 index 0000000..752ed54 Binary files /dev/null and b/you-bar-plus/install/88eacd3588829ded.png differ diff --git a/you-bar-plus/install/8b628d7e3fc05957.png b/you-bar-plus/install/8b628d7e3fc05957.png new file mode 100644 index 0000000..6441795 Binary files /dev/null and b/you-bar-plus/install/8b628d7e3fc05957.png differ diff --git a/you-bar-plus/install/9901722947705011.png b/you-bar-plus/install/9901722947705011.png new file mode 100644 index 0000000..e2485b5 Binary files /dev/null and b/you-bar-plus/install/9901722947705011.png differ diff --git a/you-bar-plus/install/a738efc867a225ee.png b/you-bar-plus/install/a738efc867a225ee.png new file mode 100644 index 0000000..10c32ee Binary files /dev/null and b/you-bar-plus/install/a738efc867a225ee.png differ diff --git a/you-bar-plus/install/b0d124bd12658047.png b/you-bar-plus/install/b0d124bd12658047.png new file mode 100644 index 0000000..f6346dc Binary files /dev/null and b/you-bar-plus/install/b0d124bd12658047.png differ diff --git a/you-bar-plus/install/cb7a2c9b3fb9561c.png b/you-bar-plus/install/cb7a2c9b3fb9561c.png new file mode 100644 index 0000000..e582452 Binary files /dev/null and b/you-bar-plus/install/cb7a2c9b3fb9561c.png differ diff --git a/you-bar-plus/install/cb8b45023e70bb61.png b/you-bar-plus/install/cb8b45023e70bb61.png new file mode 100644 index 0000000..48151f6 Binary files /dev/null and b/you-bar-plus/install/cb8b45023e70bb61.png differ diff --git a/you-bar-plus/install/cba17334eeaf3198.png b/you-bar-plus/install/cba17334eeaf3198.png new file mode 100644 index 0000000..1715494 Binary files /dev/null and b/you-bar-plus/install/cba17334eeaf3198.png differ diff --git a/you-bar-plus/install/d170a10bd3781e4a.png b/you-bar-plus/install/d170a10bd3781e4a.png new file mode 100644 index 0000000..5397356 Binary files /dev/null and b/you-bar-plus/install/d170a10bd3781e4a.png differ diff --git a/you-bar-plus/install/d6a4e512cdcf1078.png b/you-bar-plus/install/d6a4e512cdcf1078.png new file mode 100644 index 0000000..07b9916 Binary files /dev/null and b/you-bar-plus/install/d6a4e512cdcf1078.png differ diff --git a/you-bar-plus/install/ea31146eb15fdde7.png b/you-bar-plus/install/ea31146eb15fdde7.png new file mode 100644 index 0000000..5d31eab Binary files /dev/null and b/you-bar-plus/install/ea31146eb15fdde7.png differ diff --git a/you-bar-plus/install/f47fd463dcaac61e.png b/you-bar-plus/install/f47fd463dcaac61e.png new file mode 100644 index 0000000..21fd500 Binary files /dev/null and b/you-bar-plus/install/f47fd463dcaac61e.png differ diff --git a/you-bar-plus/install/f944dbd033a60207.png b/you-bar-plus/install/f944dbd033a60207.png new file mode 100644 index 0000000..c691abc Binary files /dev/null and b/you-bar-plus/install/f944dbd033a60207.png differ diff --git a/you-bar-plus/install/fead9e69933db668.png b/you-bar-plus/install/fead9e69933db668.png new file mode 100644 index 0000000..d9aa794 Binary files /dev/null and b/you-bar-plus/install/fead9e69933db668.png differ diff --git a/you-bar-plus/install/index.js b/you-bar-plus/install/index.js new file mode 100644 index 0000000..d37fe3c --- /dev/null +++ b/you-bar-plus/install/index.js @@ -0,0 +1 @@ +(function(f,b,c,d,e,v,g,E,S){"use strict";function w(t,n,r,o){try{return r()}catch(a){return o.error(`[${t}] Failed to apply the "${n}" patch, that surface will be skipped: ${a}`),function(){}}}function N(t,n,r){const o=Object.entries(r).map(function([a,s]){return w(t,a,s,n)});return function(){return o.forEach(function(a){return a()})}}function P(t,n,r=100){let o=!1,a;const s=t();return s?(n(s),{cancel(){}}):(a=setInterval(function(){if(o)return;const i=t();i&&(o=!0,clearInterval(a),n(i))},r),{cancel(){o=!0,a&&clearInterval(a)}})}const p=["none","dms","settings"],I={none:"None",dms:"Direct Messages",settings:"Settings"};let h=function(){};function T(){let t=function(){};const n=P(function(){return d.findByTypeName("YouBarNotificationsButton")},function(r){t=Y(r)});return function(){n.cancel(),t()}}function Y(t){const n=d.findByProps("openUserSettings"),r=d.findByProps("transitionToGuild"),o={dms:g.getAssetIDByName("ChatIcon"),settings:g.getAssetIDByName("SettingsIcon")},a=function(s){s==="dms"?r?.transitionToGuild?.("@me"):s==="settings"&&n?.openUserSettings?.()};return v.instead("type",t,function(s,i){try{const[,D]=e.React.useReducer(function(l){return~l},0);h=function(){return D()};const u=i(...s);if(!u?.props?.children)return u;const L=u.props.children.type,B=u.props.children.props,m=[c.storage.slot1,c.storage.slot2];return e.React.createElement(e.React.Fragment,null,m.map(function(l,H){return l==="none"?null:e.React.createElement(L,{key:`you-bar-plus-${H}`,variant:B?.variant||"tertiary",size:B?.size||"sm",icon:o[l],onPress:function(){return a(l)}})}),u)}catch{return i(...s)}})}const{ScrollView:F,View:O}=e.ReactNative;function U({children:t}){return e.React.createElement(F,{style:{flex:1}},t,e.React.createElement(O,{style:{height:24}}))}const{View:_,Text:A}=e.ReactNative;function V({children:t,style:n}){return e.React.createElement(_,{style:[{marginHorizontal:16,marginVertical:8,padding:10,borderRadius:8,borderWidth:1,borderColor:"rgba(128,128,128,0.25)"},n]},e.React.createElement(A,{style:{fontSize:12.5,lineHeight:18,opacity:.75}},t))}const{FormSection:$,FormRow:k}=S.Forms;function x(t){const n=p.indexOf(t);return p[(n+1)%p.length]}function y({label:t,slotKey:n}){const r=c.storage[n];return e.React.createElement(k,{label:t,subLabel:I[r],onPress:function(){c.storage[n]=x(r),h()}})}function z(){return E.useProxy(c.storage),e.React.useEffect(function(){return function(){return h()}},[]),e.React.createElement(U,null,e.React.createElement(V,null,"YouBar+ adds up to 2 buttons to the YouBar - the row with your avatar and status near the top of the app. Tap a slot below to cycle it through None, Direct Messages, and Settings; the first slot renders on the left. Fork of Purple-EyeZ's YouBar+, ported to Revenge's Vendetta-compat API with a fix for a startup race that could silently skip the button patch for an entire session."),e.React.createElement($,{title:"Buttons"},e.React.createElement(y,{label:"First button",slotKey:"slot1"}),e.React.createElement(y,{label:"Second button",slotKey:"slot2"})))}let R=function(){};var C={onLoad:function(){c.storage.slot1??="dms",c.storage.slot2??="settings",R=N("YouBar+",b.logger,{"YouBar buttons":T})},onUnload:function(){return R()},settings:z};return f.default=C,Object.defineProperty(f,"__esModule",{value:!0}),f})({},vendetta,vendetta.plugin,vendetta.metro,vendetta.metro.common,vendetta.patcher,vendetta.ui.assets,vendetta.storage,vendetta.ui.components); diff --git a/you-bar-plus/install/manifest.json b/you-bar-plus/install/manifest.json new file mode 100644 index 0000000..48f314e --- /dev/null +++ b/you-bar-plus/install/manifest.json @@ -0,0 +1 @@ +{"name":"YouBar+","description":"Adds up to 2 configurable buttons (Direct Messages, Settings, or none) to the YouBar, in whatever order you pick.","authors":[{"name":"everestmcarthur"},{"name":"Purple_Ξye™"}],"main":"index.js","hash":"0732a112d0498fa94fd83b7336564c149f03e957ed6d2164920e8d0b3a6e9fe7"} \ No newline at end of file