`;return(0,eval)(n)}var tc,Ks,nc,Mn,Jn,Ke,zg,oc,Ot,rc,ic,j=g(()=>{"use strict";a();wn();ec();Ze();qs();tc=new ie("Webpack"),nc=new Promise(e=>Ks=e),Ke={byProps:(...e)=>e.length===1?t=>t[e[0]]!==void 0:t=>e.every(n=>t[n]!==void 0),byCode:(...e)=>t=>{if(typeof t!="function")return!1;let n=Function.prototype.toString.call(t);for(let r of e)if(!n.includes(r))return!1;return!0},byStoreName:e=>t=>t.constructor?.displayName===e,componentByCode:(...e)=>{let t=Ke.byCode(...e);return n=>t(n)?!0:n.$$typeof?n.type?t(n.type):n.render?t(n.render):!1:!1}},zg=new Map,oc=new Set;Ot=$n("find",function(t,{isIndirect:n=!1,isWaitFor:r=!1}={}){if(typeof t!="function")throw new Error("Invalid filter. Expected a function got "+typeof t);for(let i in Jn){let s=Jn[i];if(!!s?.exports){if(t(s.exports))return r?[s.exports,Number(i)]:s.exports;if(s.exports.default&&t(s.exports.default)){let l=s.exports.default;return r?[l,Number(i)]:l}}}return n||Mi("find",t),r?[null,null]:null});rc=$n("findBulk",function(...t){if(!Array.isArray(t))throw new Error("Invalid filters. Expected function[] got "+typeof t);let{length:n}=t;if(n===0)throw new Error("Expected at least two filters.");if(n===1)return Ot(t[0]);let r=t,i=0,s=Array(n);e:for(let l in Jn){let c=Jn[l];if(!!c?.exports)for(let u=0;u<n;u++){let p=r[u];if(p!==void 0){if(p(c.exports)){if(s[u]=c.exports,r[u]=void 0,++i===n)break e;break}if(c.exports.default&&p(c.exports.default)){if(s[u]=c.exports.default,r[u]=void 0,++i===n)break e;break}}}}if(i!==n){let l=new Error(`Got${n}filters,butonlyfound${i}modules!`);tc.warn(l)}return s}),ic=$n("findModuleId",function(t){for(let r in Mn.m)if(Mn.m[r].toString().includes(t))return Number(r);let n=new Error(`Didn'tfindmodulewithcode:
`);if(r.shift()!=="id,tooltip,image"){new ie("BadgeAPI").error("Invalid badges.csv file!");return}for(let i of r){let[s,l,c]=i.split(",");(Mc[s]??=[]).push({image:c,description:l})}}var lw,cw,Mc,Pc,fh=g(()=>{"use strict";a();aa();Tc();le();Lt();bc();P();Ze();at();Re();dt();w();A();lw="https://cdn.discordapp.com/attachments/1033680203433660458/1092089947126780035/favicon.png",cw={description:"Vencord Contributor",image:lw,position:0,props:{style:{borderRadius:"50%",transform:"scale(0.9)"}},shouldShow:({user:e})=>Ei(e.id),link:"https://github.com/Vendicated/Vencord"},Mc={};Pc=y({name:"BadgeAPI",description:"API to add badges to users.",authors:[d.Megu,d.Ven,d.TheSun],required:!0,patches:[{find:"Messages.PROFILE_USER_BADGES,role:",replacement:[{match:/&&(\i)\.push\(\{id:"premium".+?\}\);/,replace:"$&$1.unshift(...Vencord.Api.Badges._getBadges(arguments[0]));"},{match:/alt:" ","aria-hidden":!0,src:(?=(\i)\.src)/,replace:"...$1.props,$& $1.image??"},{match:/(?<=text:(\i)\.description,spacing:12,)children:/,replace:"children:$1.component ? () => $self.renderBadgeComponent($1) :"},{match:/href:(\i)\.link/,replace:"...($1.onClick && { onClick: $1.onClick }),$&"}]}],toolboxActions:{async"Refetch Badges"(){await mh(!0),ee.show({id:ee.genId(),message:"Successfully refetched badges!",type:ee.Type.SUCCESS})}},async start(){Vencord.Api.Badges.addBadge(cw),await mh()},renderBadgeComponent:_.wrap(e=>{let t=e.component;return o(t,{...e})},{noop:!0}),getDonorBadges(e){return Mc[e]?.map(t=>({...t,position:0,props:{style:{borderRadius:"50%",transform:"scale(0.9)"}},onClick(){let n=je(r=>o(_,{noop:!0,onError:()=>{Vn(n),VencordNative.native.openExternal("https://github.com/sponsors/Vendicated")}},o(Cn.ModalRoot,{...r},o(Cn.ModalHeader,null,o(ge,{style:{width:"100%",justifyContent:"center"}},o(S.FormTitle,{tag:"h2",style:{width:"100%",textAlign:"center",margin:0}},o(ra,null),"Vencord Donor"))),o(Cn.ModalContent,null,o(ge,null,o("img",{role:"presentation",src:"https://cdn.discordapp.com/emojis/1026533070955872337.png",alt:"",style:{margin:"auto"}}),o("img",{role:"presentation",src:"https://cdn.discordapp.com/emojis/1026533090627174460.png",alt:"",style:{margin:"auto"}})),o("div",{style:{padding:"1em"}},o(S.FormText,null,"This Badge is a special perk for Vencord Donors"),o(S.FormText,{className:q.top20},"Please consider supporting the development of Vencord by becoming a donor. It would mean a lot!!"))),o(Cn.ModalFooter,null,o(ge,{style:{width:"100%",justifyContent:"center"}},o(Oi,null))))))}}))}})});var Ic,gh=g(()=>{"use strict";a();P();w();Ic=y({name:"CommandsAPI",authors:[d.Arjix],description:"Api required by anything that uses commands",patches:[{find:',"tenor"',replacement:[{match:/(?<=\w=)(\w)(\.filter\(.{0,60}tenor)/,replace:"Vencord.Api.Commands._init($1)$2"}]},{find:"Unexpected value for option",replacement:{match:/,(\i)\.execute\((\i),(\i)\)/,replace:(e,t,n,r)=>`,Vencord.Api.Commands._handleCommand(${t},${n},${r})`}},{find:".source,children",replacement:{match:/(?<=:(.{1,3})\.displayDescription\}.{0,200}\.source,children:)[^}]+/,replace:"$1.plugin||($&)"}}]})});var Ac,hh=g(()=>{"use strict";a();P();w();Ac=y({name:"ContextMenuAPI",description:"API for adding/removing items to/from context menus.",authors:[d.Nuckyz,d.Ven],required:!0,patches:[{find:"\u266B (\u3064\uFF61\u25D5\u203F\u203F\u25D5\uFF61)\u3064 \u266A",replacement:{match:/let{navId:/,replace:"Vencord.Api.ContextMenu._patchContextMenu(arguments[0]);$&"}},{find:".Menu,{",all:!0,replacement:{match:/Menu,{(?<=\.jsxs?\)\(\i\.Menu,{)/g,replace:"$&contextMenuApiArguments:typeof arguments!=='undefined'?arguments:[],"}}]})});var Nc,yh=g(()=>{"use strict";a();P();w();Nc=y({name:"MemberListDecoratorsAPI",description:"API to add decorators to member list (both in servers and DMs)",authors:[d.TheSun,d.Ven],patches:[{find:".lostPermission)",replacement:[{match:/let\{[^}]*lostPermissionTooltipText:\i[^}]*\}=(\i),/,replace:"$&vencordProps=$1,"},{match:/decorators:.{0,100}?children:\[/,replace:"$&...(typeof vencordProps=='undefined'?[]:Vencord.Api.MemberListDecorators.__getDecorators(venco
`,e)}Kw=yn(async()=>{E.cloud.settingsSync&&E.cloud.authenticated&&(await Kr(),delete mr.Vencord_settingsDirty)},6e4),wa=new Set,ny={};Kn=Lo,E=su(Lo)});var ry=g(()=>{});var iy=g(()=>{});var cu={};Be(cu,{UpdateLogger:()=>hr,changes:()=>Eo,checkForUpdates:()=>Zr,getRepo:()=>lu,isNewer:()=>qi,isOutdated:()=>Do,maybePromptToUpdate:()=>Ki,update:()=>Xr,updateError:()=>Yr});async function Ma(e){let t=await e;if(t.ok)return t.value;throw Yr=t.error,t.error}async function Zr(){return Eo=await Ma(VencordNative.updater.getUpdates()),Eo.some(e=>e.hash===sn)?(qi=!0,Do=!1):Do=Eo.length>0}async function Xr(){if(!Do)return!0;let e=await Ma(VencordNative.updater.update());if(e&&(Do=!1,!await Ma(VencordNative.updater.rebuild())))throw new Error("The Build failed. Please try manually building the new update");return e}async function Ki(e,t=!1){try{if(await Zr()){let r=confirm(e);if(r&&qi)return alert("Your local copy has more recent commits. Please stash or reset them.");r&&(await Xr(),ln())}}catch(n){hr.error(n),alert("That also failed :( Try updating or re-installing with the installer!")}}var hr,Do,qi,Yr,Eo,lu,yr=g(()=>{"use strict";a();$r();Ze();Ro();hr=new ie("Updater","white"),Do=!1,qi=!1;lu=()=>Ma(VencordNative.updater.getRepo())});function sy(){Ki("Uh Oh! Failed to render this Page. However, there is an update available that might fix it. Would you like to update and restart now?")}var ay=g(()=>{"use strict";a();yr()});function uu(e){let t=!1,n;return function(){return t?n:(t=!0,n=e.apply(this,arguments))}}var pu=g(()=>{"use strict";a()});function vn({title:e,children:t}){return o(S.FormSection,null,o(re,{variant:"heading-lg/semibold",tag:"h2",className:q.bottom16},e),t)}function Sn(e,t){return _.wrap(e,{message:`Failedtorenderthe${t}tab.Ifthisissuepersists,tryusingtheinstallertoreinstall!`,onError:Zw})}var Zw,Oo=g(()=>{"use strict";a();ry();iy();le();ay();at();pu();A();Zw=uu(sy)});var py={};Be(py,{default:()=>Vw});function Xw(){let[e,,t]=rt(VencordNative.settings.getSettingsDir,{fallbackValue:"Loading..."}),n=ct(),r=O.useMemo(()=>Math.random()>.5?cy:uy,[]),i=navigator.platform.toLowerCase().startsWith("win"),s=navigator.platform.toLowerCase().startsWith("mac"),l=[{key:"useQuickCss",title:"Enable Custom CSS",note:"Loads your Custom CSS"},{key:"enableReactDevtools",title:"Enable React Developer Tools",note:"Requires a full restart"},{key:"frameless",title:"Disable the window frame",note:"Requires a full restart"},!1,i&&{key:"winCtrlQ",title:"Register Ctrl+Q as shortcut to close Discord (Alternative to Alt+F4)",note:"Requires a full restart"},!1,!1];return o(vn,{title:"Vencord Settings"},o(Qw,{image:r}),o(S.FormSection,{title:"Quick Actions"},o(wt,{className:ly("quick-actions-card")},o(O.Fragment,null,o(R,{onClick:ln,size:R.Sizes.SMALL},"Restart Client"),o(R,{onClick:()=>VencordNative.quickCss.openEditor(),size:R.Sizes.SMALL,disabled:e==="Loading..."},"Open QuickCSS File"),o(R,{onClick:()=>va(e),size:R.Sizes.SMALL,disabled:t},"Open Settings Folder"),o(R,{onClick:()=>VencordNative.native.openExternal("https://github.com/Vendicated/Vencord"),size:R.Sizes.SMALL,disabled:t},"Open in GitHub")))),o(S.FormDivider,null),o(S.FormSection,{className:q.top16,title:"Settings",tag:"h5"},o(S.FormText,{className:q.bottom20},'Hint: You can change the position of this settings section in the settings of the "Settings" plugin!'),l.map(c=>c&&o(pt,{key:c.key,value:n[c.key],onChange:u=>n[c.key]=u,note:c.note},c.title))),typeof Notification<"u"&&o(Jw,{settings:n.notifications}))}function Jw({settings:e}){return o(f,null,o(S.FormTitle,{tag:"h5"},"Notification Style"),e.useNative!=="never"&&Notification?.permission==="denied"&&o(hn,{style:{padding:"1em"},className:q.bottom8},o(S.FormTitle,{tag:"h5"},"Desktop Notification Permission denied"),o(S.FormText,null,"You have denied Notification Permissions. Thus, Desktop notifications will not work!")),o(S.FormText,{className:q.bottom8},"Some plugins may show you notifications. These come in two styles:",o("ul",null,o("li",null,o("strong",null,"Vencord Notifications"),": These are in-app notificatio
`,s),!1}}if(r?.length){Vt.info("Registering commands of plugin",n);for(let s of r)try{Qr(s,n)}catch(l){return Vt.error(`Failedtoregistercommand${s.name}
`,l),!1}}if(i)for(let s in i)F.subscribe(s,i[s]);return!0},e=>`startPlugin${e.name}`),Fu=$n("stopPlugin",function(t){let{name:n,commands:r,flux:i}=t;if(t.stop){if(Vt.info("Stopping plugin",n),!t.started)return Vt.warn(`${n}alreadystopped`),!1;try{t.stop(),t.started=!1}catch(s){return Vt.error(`Failedtostop${n}
`,s),!1}}if(r?.length){Vt.info("Unregistering commands of plugin",n);for(let s of r)try{ts(s.name)}catch(l){return Vt.error(`Failedtounregistercommand${s.name}
`,l),!1}}if(i)for(let s in i)F.unsubscribe(s,i[s]);return!0},e=>`stopPlugin${e.name}`)});function LM(e){ee.show({message:e,type:ee.Type.FAILURE,id:ee.genId(),options:{position:ee.Position.BOTTOM}})}function EM({required:e}){return o(wt,{className:Sr("info-card",{"restart-card":e})},e?o(f,null,o(S.FormTitle,{tag:"h5"},"Restart required!"),o(S.FormText,{className:Sr("dep-text")},"Restart now to apply new plugins and their settings"),o(R,{color:R.Colors.YELLOW,onClick:()=>location.reload()},"Restart")):o(f,null,o(S.FormTitle,{tag:"h5"},"Plugin Management"),o(S.FormText,null,"Press the cog wheel or info icon to get more info on a plugin"),o(S.FormText,null,"Plugins with a cog wheel have settings you can modify!")))}function Ra({plugin:e,disabled:t,onRestartNeeded:n,onMouseEnter:r,onMouseLeave:i,isNew:s}){let l=E.plugins[e.name],c=()=>l.enabled??!1;function u(){_i(async()=>m=>o(Ru,{...m,plugin:e,onRestartNeeded:()=>n(e.name)}))}function p(){let m=c();if(!m){let{restartNeeded:v,failures:T}=Da(e);if(T.length){Yy.error(`Failedtostartdependenciesfor${e.name}:${T.join(", ")}`),Zi("Failed to start dependencies: "+T.join(", "),"Close",()=>null);return}else if(v){l.enabled=!0,n(e.name);return}}if(e.patches?.length){l.enabled=!m,n(e.name);return}if(m&&!e.started){l.enabled=!m;return}if(!(m?Fu(e):is(e))){l.enabled=!1;let v=`Errorwhile${m?"stopping":"starting"}plugin${e.name}`;Yy.error(v),LM(v);return}l.enabled=!m}return o(Ea,{name:e.name,description:e.description,isNew:s,enabled:c(),setEnabled:p,disabled:t,onMouseEnter:r,onMouseLeave:i,infoButton:o("button",{role:"switch",onClick:()=>u(),className:oe(RM.button,Sr("info-button"))},e.options&&!Li(e.options)?o(by,null):o(Ia,null))})}function $u(){let e=ct(),t=O.useMemo(()=>new os,[]);O.useEffect(()=>()=>void(t.hasChanges&&rn.show({title:"Restart required",body:o(f,null,o("p",null,"The following plugins require a restart:"),o("div",null,t.map((v,T)=>o(f,null,T>0&&", ",Fe.parse("`"+v+"`"))))),confirmText:"Restart now",cancelText:"Later!",onConfirm:()=>location.reload()})),[]);let n=O.useMemo(()=>{let v={};for(let T in Oe){let M=Oe[T].dependencies;if(M)for(let b of M)v[b]??=[],v[b].push(T)}return v},[]),r=O.useMemo(()=>Object.values(Oe).sort((v,T)=>v.name.localeCompare(T.name)),[]),[i,s]=O.useState({value:"",status:0}),l=v=>s(T=>({...T,value:v})),c=v=>s(T=>({...T,status:v})),u=v=>{let T=e.plugins[v.name]?.enabled;if(T&&i.status===2||!T&&i.status===1||i.status===3&&!p?.includes(v.name))return!1;if(!i.value.length)return!0;let M=i.value.toLowerCase();return v.name.toLowerCase().includes(M)||v.description.toLowerCase().includes(M)||v.tags?.some(b=>b.toLowerCase().includes(M))},[p]=rt(()=>It("Vencord_existingPlugins").then(v=>{let T=Date.now()/1e3,M={},b=Object.values(r).map(N=>N.name),x=[];for(let{name:N}of r)(M[N]=v?.[N]??T)+60*60*24*2>T&&x.push(N);return Xt("Vencord_existingPlugins",M),cr.isEqual(x,b)?[]:x})),m,h;if(r?.length){m=[],h=[];for(let v of r){if(!v.options&&v.name.endsWith("API")&&i.value!=="API"||!u(v))continue;if(v.required||n[v.name]?.some(M=>e.plugins[M].enabled)){let M=v.required?"This plugin is required for Vencord to function.":DM(n[v.name]?.filter(b=>e.plugins[b].enabled));h.push(o(V,{text:M,key:v.name},({onMouseLeave:b,onMouseEnter:x})=>o(Ra,{onMouseLeave:b,onMouseEnter:x,onRestartNeeded:N=>t.handleChange(N),disabled:!0,plugin:v})))}else m.push(o(Ra,{onRestartNeeded:M=>t.handleChange(M),disabled:!1,plugin:v,isNew:p?.includes(v.name),key:v.name}))}}else m=h=o(re,{variant:"text-md/normal"},"No plugins meet search criteria.");return o(vn,{title:"Plugins"},o(EM,{required:t.hasChanges}),o(S.FormTitle,{tag:"h5",className:oe(q.top20,q.bottom8)},"Filters"),o("div",{className:Sr("filter-controls")},o(Ve,{autoFocus:!0,value:i.value,placeholder:"Search for a plugin...",onChange:l,className:q.bottom20}),o("div",{className:Zy.inputWrapper},o(Pn,{className:Zy.inputDefault,options:[{label:"Show All",value:0,default:!0},{label:"Show Enabled",value:1},{label:"Show Disabled",value:2},{label:"Show New",value:3}],serialize:String,select:c,isSelected:v=>v===i.status,closeOnSelect:!0
`)),[l,c]=J(null),[u,,p]=rt(VencordNative.themes.getThemesDir);De(()=>{m()},[]);async function m(){let x=await VencordNative.themes.getThemesList();c(x)}function h(x,N){if(N){if(e.enabledThemes.includes(x))return;e.enabledThemes=[...e.enabledThemes,x]}else e.enabledThemes=e.enabledThemes.filter(k=>k!==x)}async function v(x){if(x.stopPropagation(),x.preventDefault(),!x.currentTarget?.files?.length)return;let{files:N}=x.currentTarget,k=Array.from(N,B=>{let{name:U}=B;if(!!U.endsWith(".css"))return new Promise((Y,K)=>{let z=new FileReader;z.onload=()=>{VencordNative.themes.uploadTheme(U,z.result).then(Y).catch(K)},z.readAsText(B)})});await Promise.all(k),m()}function T(){return o(f,null,o(wt,{className:"vc-settings-card"},o(S.FormTitle,{tag:"h5"},"Find Themes:"),o("div",{style:{marginBottom:".5em",display:"flex",flexDirection:"column"}},o(st,{style:{marginRight:".5em"},href:"https://betterdiscord.app/themes"},"BetterDiscord Themes"),o(st,{href:"https://github.com/search?q=discord+theme"},"GitHub")),o(S.FormText,null,'If using the BD site, click on "Download" and place the downloaded .theme.css file into your themes folder.')),o(S.FormSection,{title:"Local Themes"},o(wt,{className:"vc-settings-quick-actions-card"},o(f,null,o(R,{onClick:()=>va(u),size:R.Sizes.SMALL,disabled:p},"Open Themes Folder"),o(R,{onClick:m,size:R.Sizes.SMALL},"Load missing Themes"),o(R,{onClick:()=>VencordNative.quickCss.openEditor(),size:R.Sizes.SMALL},"Edit QuickCSS"))),o("div",{className:FM("grid")},l?.map(x=>o(GM,{key:x.fileName,enabled:e.enabledThemes.includes(x.fileName),onChange:N=>h(x.fileName,N),onDelete:async()=>{h(x.fileName,!1),await VencordNative.themes.deleteTheme(x.fileName),m()},theme:x})))))}function M(){e.themeLinks=[...new Set(i.trim().split(/\n+/).map(x=>x.trim()).filter(Boolean))]}function b(){return o(f,null,o(wt,{className:"vc-settings-card vc-text-selectable"},o(S.FormTitle,{tag:"h5"},"Paste links to css files here"),o(S.FormText,null,"One link per line"),o(S.FormText,null,"Make sure to use direct links to files (raw or github.io)!")),o(S.FormSection,{title:"Online Themes",tag:"h5"},o(Qs,{value:i,onChange:s,className:oe(BM.textarea,"vc-settings-theme-links"),placeholder:"Theme Links",spellCheck:!1,onBlur:M,rows:10}),o($M,{themeLinks:e.themeLinks})))}return o(vn,{title:"Themes"},o(In,{type:"top",look:"brand",className:"vc-settings-tab-bar",selectedItem:n,onItemSelect:r},o(In.Item,{className:"vc-settings-tab-bar-item",id:0},"Local Themes"),o(In.Item,{className:"vc-settings-tab-bar-item",id:1},"Online Themes")),n===0&&T(),n===1&&b())}var _M,JO,BM,FM,zM,Vy=g(()=>{"use strict";a();$();Je();Lt();$t();lo();at();Re();Ro();Qe();j();A();Du();Oo();_M=I("resolveInvite"),JO=un(e=>e.prototype?.activateUploadDialogue&&e.prototype.setRef),BM=un(e=>typeof e.textarea=="string"),FM=Ue("vc-settings-theme-");zM=Sn(HM,"Themes")});var ov={};Be(ov,{default:()=>KM});function ev(e,t){return async()=>{e(!0);try{await t()}catch(r){if(hr.error("Failed to update",r),r)if(r.code&&r.cmd){let{code:i,path:s,cmd:l,stderr:c}=r;if(i==="ENOENT")var n=`Command\`${s}\` not found.
`;n+=c||`Code\`${i}\`. See the console for more info`}}elsevarn="An unknown error occurred. See the console for more info.";elsevarn=`An unknown error occurred (error is undefined).
`).map(i=>o("div",null,Fe.parse(i))))})}finally{e(!1)}}}function tv({repo:e,hash:t,disabled:n=!1}){return o(st,{href:`${e}/commit/${t}`,disabled:n},t)}function nv({updates:e,repo:t,repoPending:n}){return o(wt,{style:{padding:".5em"}},e.map(({hash:r,author:i,message:s})=>o("div",null,o("code",null,o(tv,{repo:t,hash:r,disabled:n})),o("span",{style:{marginLeft:"0.5em",color:"var(--text-normal)"}},s," - ",i))))}function jM(e){let[t,n]=O.useState(Eo),[r,i]=O.useState(!1),[s,l]=O.useState(!1),c=(t?.length??0)>0;return o(f,null,!t&&Yr?o(f,null,o(S.FormText,null,"Failed to check updates. Check the console for more info"),o(hn,{style:{padding:"1em"}},o("p",null,Yr.stderr||Yr.stdout||"An unknown error occurred"))):o(S.FormText,{className:q.bottom8},c?`Thereare${t.length}Updates`:"Up to Date!"),c&&o(nv,{updates:t,...e}),o(ge,{className:oe(q.bottom8,q.top8)},c&&o(R,{size:R.Sizes.SMALL,disabled:s||r,onClick:ev(l,async()=>{await Xr()&&(n([]),await new Promise(u=>{rn.show({title:"Update Success!",body:"Successfully updated. Restart now to apply the changes?",confirmText:"Restart",cancelText:"Not now!",onConfirm(){ln(),u()},onCancel:u})}))})},"Update Now"),o(R,{size:R.Sizes.SMALL,disabled:s||r,onClick:ev(i,async()=>{await Zr()?n(Eo):(n([]),ee.show({message:"No updates found!",id:ee.genId(),type:ee.Type.MESSAGE,options:{position:ee.Position.BOTTOM}}))})},"Check for Updates")))}function WM(e){return o(f,null,o(S.FormText,{className:q.bottom8},"Your local copy has more recent commits. Please stash or reset them."),o(nv,{...e,updates:Eo}))}function qM(){let e=ct(["notifyAboutUpdates","autoUpdate","autoUpdateNotification"]),[t,n,r]=rt(lu,{fallbackValue:"Loading..."});O.useEffect(()=>{n&&hr.error("Failed to retrieve repo",n)},[n]);let i={repo:t,repoPending:r};return o(vn,{title:"Vencord Updater"},o(S.FormTitle,{tag:"h5"},"Updater Settings"),o(pt,{value:e.notifyAboutUpdates,onChange:s=>e.notifyAboutUpdates=s,note:"Shows a notification on startup",disabled:e.autoUpdate},"Get notified about new updates"),o(pt,{value:e.autoUpdate,onChange:s=>e.autoUpdate=s,note:"Automatically update Vencord without confirmation prompt"},"Automatically update"),o(pt,{value:e.autoUpdateNotification,onChange:s=>e.autoUpdateNotification=s,note:"Shows a notification when Vencord automatically updates",disabled:!e.autoUpdate},"Get notified when an automatic update completes"),o(S.FormTitle,{tag:"h5"},"Repo"),o(S.FormText,{className:"vc-text-selectable"},r?t:n?"Failed to retrieve - check console":o(st,{href:t},t.split("/").slice(-2).join("/"))," ","(",o(tv,{hash:sn,repo:t,disabled:r}),")"),o(S.FormDivider,{className:q.top8+" "+q.bottom8}),o(S.FormTitle,{tag:"h5"},"Updates"),qi?o(WM,{...i}):o(jM,{...i}))}var KM,rv=g(()=>{"use strict";a();$();Hr();Lt();lo();at();Re();Ro();Qe();yr();A();$r();Oo();KM=Sn(qM,"Updater")});function _a({value:e,onChange:t,validate:n}){let[r,i]=O.useState(e),[s,l]=O.useState();function c(u){i(u);let p=n(u);p===!0?(l(void 0),t(u)):l(p)}return o(f,null,o(Ve,{type:"text",value:r,onChange:c,error:s}))}var Gu=g(()=>{"use strict";a();A()});var iv={};Be(iv,{default:()=>QM});function YM(e){try{return new URL(e),!0}catch{return"Invalid URL"}}async function ZM(){let e=await fetch(new URL("/v1/",ko()),{method:"DELETE",headers:new Headers({Authorization:await qr()})});if(!e.ok){ya.error(`Failedtoerasedata,APIreturned${e.status}`),Ie({title:"Cloud Integrations",body:`Couldnoterasealldata(APIreturned${e.status}),pleasecontactsupport.`,color:"var(--red-360)"});return}E.cloud.authenticated=!1,await ru(),Ie({title:"Cloud Integrations",body:"Successfully erased all data.",color:"var(--green-360)"})}function XM(){let{cloud:e}=ct(["cloud.authenticated","cloud.settingsSync"]),t=e.authenticated&&e.settingsSync;return o(S.FormSection,{title:"Settings Sync",className:q.top16},o(S.FormText,{variant:"text-md/normal",className:q.bottom20},"Synchronize your settings to the cloud. This allows easy synchronization across multiple devices with minimal effort."),o(pt,{key:"cloud-sync",disabled:!e.authenticated,value:e.settingsSync,onChange:n=>{e.settingsSync
`.trim().replaceAll("```\n","```")}}}],flux:{async CHANNEL_SELECT({channelId:e}){if(e===na&&!Ei(W.getCurrentUser().id)&&Do&&sn!==await Gt.get(cv)){let t=()=>Gt.set(cv,sn);rn.show({title:"Hold on!",body:o("div",null,o(S.FormText,null,"You are using an outdated version of Vencord! Chances are, your issue is already fixed."),o(S.FormText,null,"Please first update using the Updater Page in Settings, or use the VencordInstaller (Update Vencord Button) to do so, in case you can't access the Updater page.")),onCancel:t,onConfirm:t})}}}})});var ju,pv=g(()=>{"use strict";a();P();w();ju=y({name:"AlwaysAnimate",description:"Animates anything that can be animated",authors:[d.FieryFlames],patches:[{find:"canAnimate:",all:!0,noWarn:!0,replacement:{match:/canAnimate:.+?(?=([,}].*?\)))/g,replace:(e,t)=>t.match(/}=.+/)==null?"canAnimate:!0":e}},{find:".Messages.GUILD_OWNER,",replacement:{match:/(?<=\.activityEmoji,.+?animate:)\i/,replace:"!0"}}]})});var Wu,dv=g(()=>{"use strict";a();P();w();Wu=y({name:"AlwaysTrust",description:"Removes the annoying untrusted domain and suspicious file popup",authors:[d.zt],patches:[{find:'.displayName="MaskedLinkStore"',replacement:{match:/(?<=isTrustedDomain\(\i\){)return \i\(\i\)/,replace:"return true"}},{find:"isSuspiciousDownload:",replacement:{match:/function \i\(\i\){(?=.{0,60}\.parse\(\i\))/,replace:"$&return null;"}}]})});var nP,qu,mv=g(()=>{"use strict";a();$();P();w();nP=/\.tar\.\w+$/,qu=y({name:"AnonymiseFileNames",authors:[d.obscurity],description:"Anonymise uploaded file names",patches:[{find:"instantBatchUpload:function",replacement:{match:/uploadFiles:(.{1,2}),/,replace:"uploadFiles:(...args)=>(args[0].uploads.forEach(f=>f.filename=$self.anonymise(f.filename)),$1(...args)),"}}],options:{method:{description:"Anonymising method",type:4,options:[{label:"Random Characters",value:0,default:!0},{label:"Consistent",value:1},{label:"Timestamp (4chan-like)",value:2}]},randomisedLength:{description:"Random characters length",type:1,default:7,disabled:()=>E.plugins.AnonymiseFileNames.method!==0},consistent:{description:"Consistent filename",type:0,default:"image",disabled:()=>E.plugins.AnonymiseFileNames.method!==1}},anonymise(e){let t="image",r=nP.exec(e)?.index??e.lastIndexOf("."),i=r!==-1?e.slice(r):"";switch(E.plugins.AnonymiseFileNames.method){case 0:let s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";t=Array.from({length:E.plugins.AnonymiseFileNames.randomisedLength},()=>s[Math.floor(Math.random()*s.length)]).join("");break;case 1:t=E.plugins.AnonymiseFileNames.consistent;break;case 2:t=`${Math.floor(Date.now()/1e3)}${Math.floor(window.performance.now())}`;break}return t+i}})});async function fv(e,t){return(await ur.fetchAssetIds(e,[t]))[0]}async function rP(e){let t={};return await oP.fetchApplicationsRPC(t,e),t.application}var oP,gv,ni,Ku,hv=g(()=>{"use strict";a();Pa();lo();P();w();j();A();oP=I("fetchApplicationsRPC","getRemoteIconURL");gv={};Ku=y({name:"WebRichPresence (arRPC)",description:"Client plugin for arRPC to enable RPC on Discord Web (experimental)",authors:[d.Ducko],settingsAboutComponent:()=>o(f,null,o(S.FormTitle,{tag:"h3"},"How to use arRPC"),o(S.FormText,null,o(st,{href:"https://github.com/OpenAsar/arrpc/tree/main#server"},"Follow the instructions in the GitHub repo")," to get the server running, and then enable the plugin.")),async handleEvent(e){let t=JSON.parse(e.data),{activity:n}=t,r=n?.assets;if(r?.large_image&&(r.large_image=await fv(n.application_id,r.large_image)),r?.small_image&&(r.small_image=await fv(n.application_id,r.small_image)),n){let i=n.application_id;gv[i]||=await rP(i);let s=gv[i];n.name||=s.name}F.dispatch({type:"LOCAL_ACTIVITY_UPDATE",...t})},async start(){if("armcord"in window)return;if(ni&&ni.close(),ni=new WebSocket("ws://127.0.0.1:1337"),ni.onmessage=this.handleEvent,!await new Promise(t=>setTimeout(()=>t(ni.readyState===WebSocket.OPEN),1e3))){Zi("Failed to connect to arRPC, is it running?","Retry",()=>{fu(),this.start()});return}ee.show({message:"Connected to arRPC",type:ee.Type.SUCCESS,id:ee.genId(),options:{duration:1e3,positio
`}var ls,rp,_v=g(()=>{"use strict";a();$();P();w();rp=y({name:"BlurNSFW",description:"Blur attachments in NSFW channels until hovered",authors:[d.Ven],patches:[{find:".embedWrapper,embed",replacement:[{match:/\.embedWrapper/g,replace:"$&+(this.props.channel.nsfw?' vc-nsfw-img':'')"}]}],options:{blurAmount:{type:1,description:"Blur Amount",default:10,onChange:Ov}},start(){ls=document.createElement("style"),ls.id="VcBlurNsfw",document.head.appendChild(ls),Ov()},stop(){ls?.remove()}})});function pP(e){let t=E.plugins.CallTimer.format==="human",n=m=>t?m:m.toString().padStart(2,"0"),r=m=>t?m:"",i=t?" ":":",s=Math.floor(e/864e5),l=Math.floor(e%864e5/36e5),c=Math.floor(e%864e5%36e5/6e4),u=Math.floor(e%864e5%36e5%6e4/1e3),p="";return s&&(p+=`${s}d`),(l||p)&&(p+=`${n(l)}${r("h")}${i}`),(c||p||!t)&&(p+=`${n(c)}${r("m")}${i}`),p+=`${n(u)}${r("s")}`,p}var ip,Bv=g(()=>{"use strict";a();$();le();P();Qe();w();ip=y({name:"CallTimer",description:"Adds a timer to vcs",authors:[d.Ven],startTime:0,interval:void 0,options:{format:{type:4,description:"The timer format. This can be any valid moment.js format",options:[{label:"30d 23:00:42",value:"stopwatch",default:!0},{label:"30d 23h 00m 42s",value:"human"}]}},patches:[{find:"renderConnectionStatus(){",replacement:{match:/(?<=renderConnectionStatus\(\)\{.+\.channel,children:)\i/,replace:"[$&, $self.renderTimer(this.props.channel.id)]"}}],renderTimer(e){return o(_,{noop:!0},o(this.Timer,{channelId:e}))},Timer({channelId:e}){let t=Di({deps:[e]});return o("p",{style:{margin:0}},"Connected for ",o("span",{style:{fontFamily:"var(--font-code)"}},pP(t)))}})});var dp={};Be(dp,{_handleClick:()=>fP,_handlePreEdit:()=>mP,_handlePreSend:()=>dP,addClickListener:()=>up,addPreEditListener:()=>br,addPreSendListener:()=>Ht,removeClickListener:()=>pp,removePreEditListener:()=>Tr,removePreSendListener:()=>zt});async function dP(e,t,n,r){n.replyOptions=r;for(let i of ap)try{let s=await i(e,t,n);if(s&&s.cancel===!0)return!0}catch(s){sp.error(`MessageSendHandler:Listenerencounteredanunknownerror
`,s)}return!1}async function mP(e,t,n){for(let r of lp)try{await r(e,t,n)}catch(i){sp.error(`MessageEditHandler:Listenerencounteredanunknownerror
`,i)}}function Ht(e){return ap.add(e),e}function br(e){return lp.add(e),e}function zt(e){return ap.delete(e)}function Tr(e){return lp.delete(e)}function fP(e,t,n){e=An.getMessage(t.id,e.id)??e;for(let r of cp)try{r(e,t,n)}catch(i){sp.error(`MessageClickHandler:Listenerencounteredanunknownerror
`,i)}}function up(e){return cp.add(e),e}function pp(e){return cp.delete(e)}var sp,ap,lp,cp,Yn=g(()=>{"use strict";a();Ze();A();sp=new ie("MessageEvents","#e5c890"),ap=new Set,lp=new Set;cp=new Set});var Fv,Uv=g(()=>{"use strict";a();Fv=["action_object_map","action_type_map","action_ref_map","spm@*.aliexpress.com","scm@*.aliexpress.com","aff_platform","aff_trace_key","algo_expid@*.aliexpress.*","algo_pvid@*.aliexpress.*","btsid","ws_ab_test","pd_rd_*@amazon.*","_encoding@amazon.*","psc@amazon.*","tag@amazon.*","ref_@amazon.*","pf_rd_*@amazon.*","pf@amazon.*","crid@amazon.*","keywords@amazon.*","sprefix@amazon.*","sr@amazon.*","ie@amazon.*","node@amazon.*","qid@amazon.*","callback@bilibili.com","cvid@bing.com","form@bing.com","sk@bing.com","sp@bing.com","sc@bing.com","qs@bing.com","pq@bing.com","sc_cid","mkt_tok","trk","trkCampaign","ga_*","gclid","gclsrc","hmb_campaign","hmb_medium","hmb_source","spReportId","spJobID","spUserID","spMailingID","itm_*","s_cid","elqTrackId","elqTrack","assetType","assetId","recipientId","campaignId","siteId","mc_cid","mc_eid","pk_*","sc_campaign","sc_channel","sc_content","sc_medium","sc_outcome","sc_geo","sc_country","nr_email_referer","vero_conv","vero_id","yclid","_openstat","mbid","cmpid","cid","c_id","campaign_id","Campaign","hash@ebay.*","fb_action_ids","fb_action_types","fb_ref","fb_source","fbclid","refsrc@facebook.com","hrc@facebook.com","gs_l","gs_lcp@google.*","ved@google.*","ei@google.*","sei@google.*","gws_rd@google.*","gs_gbg@google.*","gs_mss@google.*","gs_rn@google.*","_hsenc","_hsmi","__hssc","__hstc","hsCtaTracking","source@sourceforge.net","position@sourceforge.net","t@*.twitter.com","s@*.twitter.com","ref_*@*.twitter.com","tt_medium","tt_content","lr@yandex.*","redircnt@yandex.*","feature@youtube.com","kw@youtube.com","si@youtube.com","pp@youtube.com","si@youtu.be","wt_zmc","utm_source","utm_content","utm_medium","utm_campaign","utm_term","si@open.spotify.com","igshid","share_id@reddit.com"]});var $v,gP,mp,Gv=g(()=>{"use strict";a();Yn();P();w();Uv();$v=/[\\^$.*+?()[\]{}|]/g,gP=RegExp($v.source),mp=y({name:"ClearURLs",description:"Removes tracking garbage from URLs",authors:[d.adryd],dependencies:["MessageEventsAPI"],escapeRegExp(e){return e&&gP.test(e)?e.replace($v,"\\$&"):e||""},createRules(){let e=Fv;this.universalRules=new Set,this.rulesByHost=new Map,this.hostRules=new Map;for(let t of e){let n=t.split("@"),r=new RegExp("^"+this.escapeRegExp(n[0]).replace(/\\\*/,".+?")+"$");if(!n[1]){this.universalRules.add(r);continue}let i=new RegExp("^(www\\.)?"+this.escapeRegExp(n[1]).replace(/\\\./,"\\.").replace(/^\\\*\\\./,"(.+?\\.)?").replace(/\\\*/,".+?")+"$"),s=i.toString();this.hostRules.set(s,i),this.rulesByHost.get(s)==null&&this.rulesByHost.set(s,new Set),this.rulesByHost.get(s).add(r)}},removeParam(e,t,n){(t===e||e instanceof RegExp&&e.test(t))&&n.delete(t)},replacer(e){try{var t=new URL(e)}catch{return e}return t.searchParams.entries().next().done?e:(this.universalRules.forEach(n=>{t.searchParams.forEach((r,i,s)=>{this.removeParam(n,i,s)})}),this.hostRules.forEach((n,r)=>{!n.test(t.hostname)||this.rulesByHost.get(r).forEach(i=>{t.searchParams.forEach((s,l,c)=>{this.removeParam(i,l,c)})})}),t.toString())},onSend(e){e.content.match(/http(s)?:\/\//)&&(e.content=e.content.replace(/(https?:\/\/[^\s<]+[^<.,:;"'>)|\]\s])/g,t=>this.replacer(t)))},start(){this.createRules(),this.preSend=Ht((e,t)=>this.onSend(t)),this.preEdit=br((e,t,n)=>this.onSend(n))},stop(){zt(this.preSend),Tr(this.preEdit)}})});var Hv=g(()=>{});function jv(e){let t=e.toString(16).padStart(6,"0");cs.store.color=t,Wv(t)}function vP(){let e=TP(cs.store.color)>45,t=Uo()===2;return o("div",{className:"client-theme-settings"},o("div",{className:"client-theme-container"},o("div",{className:"client-theme-settings-labels"},o(S.FormTitle,{tag:"h3"},"Theme Color"),o(S.FormText,null,"Add a color to your Discord client theme")),o(hP,{color:parseInt(cs.store.color,16),onChange:jv,showEyeDropper:!1,suggestedColors:yP})),e||t?o("div",null,o(S.FormDivider,{className:oe(q.top8,q.bottom8)}),o(S.FormText,{className:"client-t
}`}function bP(e){let t=parseInt(e.substring(0,2),16)/255,n=parseInt(e.substring(2,4),16)/255,r=parseInt(e.substring(4,6),16)/255,i=Math.max(t,n,r),s=Math.min(t,n,r),l=i-s,c,u,p;return p=(i+s)/2,l===0?(c=0,u=0):(u=l/(1-Math.abs(2*p-1)),i===t?c=(n-r)/l%6:i===n?c=(r-t)/l+2:c=(t-n)/l+4,c*=60,c<0&&(c+=360)),u*=100,p*=100,{hue:c,saturation:u,lightness:p}}function TP(e){let t=parseInt(e.substring(0,2),16)/255,n=parseInt(e.substring(2,4),16)/255,r=parseInt(e.substring(4,6),16)/255,i=Math.max(t,n,r),s=Math.min(t,n,r);return 100*((i+s)/2)}var hP,yP,cs,fp,zv,qv=g(()=>{"use strict";a();Hv();$();P();bt();at();Re();w();j();A();hP=Xe(".Messages.USER_SETTINGS_PROFILE_COLOR_SELECT_COLOR"),yP=["#1E1514","#172019","#13171B","#1C1C28","#402D2D","#3A483D","#344242","#313D4B","#2D2F47","#322B42","#3C2E42","#422938"];cs=D({color:{description:"Color your Discord client theme will be based around. Light mode isn't supported",type:6,default:"313338",component:()=>o(vP,null)},resetColor:{description:"Reset Theme Color",type:6,default:"313338",component:()=>o(R,{onClick:()=>jv(3224376)},"Reset Theme Color")}}),fp=y({name:"ClientTheme",authors:[d.F53,d.Nuckyz],description:"Recreation of the old client theme experiment. Add a color to your Discord client theme",settings:cs,startAt:"DOMContentLoaded",start(){Wv(cs.store.color),SP()},stop(){document.getElementById("clientThemeVars")?.remove(),document.getElementById("clientThemeOffsets")?.remove()}}),zv=/(--primary-[5-9]\d{2}-hsl):.*?(\S*)%;/g});var gp,Kv=g(()=>{"use strict";a();P();w();gp=y({name:"ColorSighted",description:"Removes the colorblind-friendly icons from statuses, just like 2015-2017 Discord",authors:[d.lewisakura],patches:[{find:"Masks.STATUS_ONLINE",replacement:{match:/Masks\.STATUS_(?:IDLE|DND|STREAMING|OFFLINE)/g,replace:"Masks.STATUS_ONLINE"}},{find:".AVATAR_STATUS_MOBILE_16;",replacement:{match:/(?<=fromIsMobile:\i=!0,.+?)status:(\i)/,replace:'status_$:$1="online"'}}]})});function xr(e){if(typeof e=="string")return e;let t=e.source.replaceAll("\\i","[A-Za-z_$][\\w$]*");return new RegExp(t,e.flags)}function Ba(e,t){let n=`Vencord.Plugins.plugins[${JSON.stringify(t)}]`;return typeof e!="function"?e.replaceAll("$self",n):(...r)=>e(...r).replaceAll("$self",n)}function hp(e,t){if(e.get){let n=e.get;e.get=function(){return t(n.call(this))}}else e.value&&(e.value=t(e.value));return e}function us(e,t){let n=Object.getOwnPropertyDescriptors(e);n.match=hp(n.match,xr),n.replace=hp(n.replace,r=>Ba(r,t)),Object.defineProperties(e,n)}var ps=g(()=>{"use strict";a()});var yp,Yv=g(()=>{"use strict";a();P();Ro();ps();w();j();j();A();yp=y({name:"ConsoleShortcuts",description:"Adds shorter Aliases for many things on the window. Run `shortcutList` for a list.",authors:[d.Ven],getShortcuts(){function e(r){let i=new Map;return function(...s){let l=String(s);if(i.has(l))return i.get(l);let c=rr(r(...s)),u=(()=>{switch(c.length){case 0:return null;case 1:return c[0];default:let p=[...new Set(c)];return p.length>1&&console.warn(`Warning:Thisfiltermatches${c.length}modules.Makeitmorespecific!
`,p),c[0]}})();return u&&l&&i.set(l,u),u}}let t,n=e(r=>r);return{...Vencord.Webpack.Common,wp:Vencord.Webpack,wpc:Mn.c,wreq:Mn,wpsearch:lc,wpex:Zs,wpexs:r=>Zs(ic(r)),find:n,findAll:rr,findByProps:e(Ke.byProps),findAllByProps:(...r)=>rr(Ke.byProps(...r)),findByCode:e(Ke.byCode),findAllByCode:r=>rr(Ke.byCode(r)),findComponentByCode:e(Ke.componentByCode),findAllComponentsByCode:(...r)=>rr(Ke.componentByCode(...r)),findExportedComponent:(...r)=>n(...r)[r[0]],findStore:e(Ke.byStoreName),PluginsApi:Vencord.Plugins,plugins:Vencord.Plugins.plugins,Settings:Vencord.Settings,Api:Vencord.Api,reload:()=>location.reload(),restart:ln,canonicalizeMatch:xr,canonicalizeReplace:Ba,canonicalizeReplacement:us,fakeRender:(r,i)=>{let s=t?.deref(),l=s?.closed===!1?s:window.open("about:blank","Fake Render","popup,width=500,height=500");t=new WeakRef(l),l.focus();let c=l.document;c.body.style.margin="1em",l.prepared||(l.prepared=!0,[...document.querySelectorAll("style"),...document.querySelectorAll("link[rel=stylesheet]")].forEach(u=>{let p=u.cloneNode(!0);u.parentElement?.tagName==="HEAD"?c.head.append(p):p.id?.startsWith("vencord-")||p.id?.startsWith("vcd-")?c.documentElement.append(p):c.body.append(p)})),sr.render(O.createElement(r,i),c.body.appendChild(document.createElement("div")))}}},start(){let e=this.getShortcuts();window.shortcutList=e;for(let[t,n]of Object.entries(e))window[t]=n},stop(){delete window.shortcutList;for(let e in this.getShortcuts())delete window[e]}})});var Zv,vp,Xv=g(()=>{"use strict";a();Pt();$t();P();w();A();Zv=(e,{user:t})=>()=>{e.push(o(G.MenuItem,{id:"vc-copy-user-url",label:"Copy User URL",action:()=>Zt.copy(`<https://discord.com/users/${t.id}>`),icon:Jr}))},vp=y({name:"CopyUserURLs",authors:[d.castdrian],description:"Adds a 'Copy User URL' option to the user context menu.",start(){ce("user-context",Zv)},stop(){de("user-context",Zv)}})});var $o,xP,Sp,bp,Fa,Tp,xp,Jv=g(()=>{"use strict";a();Ao();$();P();Ze();dt();w();yr();j();A();$o=new ie("CrashHandler"),xP=I("pushLazy","popAll"),Sp=D({attemptToPreventCrashes:{type:3,description:"Whether to attempt to prevent Discord crashes.",default:!0},attemptToNavigateToHome:{type:3,description:"Whether to attempt to navigate to the home when preventing Discord crashes.",default:!1}}),bp=0,Fa=0,Tp=!1,xp=y({name:"CrashHandler",description:"Utility plugin for handling and possibly recovering from Crashes without a restart",authors:[d.Nuckyz],enabledByDefault:!0,settings:Sp,patches:[{find:".Messages.ERRORS_UNEXPECTED_CRASH",replacement:{match:/(?=this\.setState\()/,replace:"$self.handleCrash(this)||"}}],handleCrash(e){if(Date.now()-Fa<=1e3&&!Tp)return!0;if(Tp=!1,++bp>5){try{Ie({color:"#eed202",title:"Discord has crashed!",body:"Awn :( Discord has crashed more than five times, not attempting to recover.",noPersist:!0})}catch{}return Fa=Date.now(),!1}setTimeout(()=>bp--,6e4);try{return bp===1&&Ki("Uh oh, Discord has just crashed... but good news, there is a Vencord update available that might fix this issue! Would you like to update now?",!0),Sp.store.attemptToPreventCrashes?(this.handlePreventCrash(e),!0):!1}catch(t){return $o.error("Failed to handle crash",t),!1}finally{Fa=Date.now()}},handlePreventCrash(e){if(Date.now()-Fa>=1e3)try{Ie({color:"#eed202",title:"Discord has crashed!",body:"Attempting to recover...",noPersist:!0})}catch{}try{F.dispatch({type:"CONTEXT_MENU_CLOSE"})}catch(t){$o.debug("Failed to close open context menu.",t)}try{xP?.popAll()}catch(t){$o.debug("Failed to close old modals.",t)}try{wc()}catch(t){$o.debug("Failed to close all open modals.",t)}try{F.dispatch({type:"USER_PROFILE_MODAL_CLOSE"})}catch(t){$o.debug("Failed to close user popout.",t)}try{F.dispatch({type:"LAYER_POP_ALL"})}catch(t){$o.debug("Failed to pop all layers.",t)}if(Sp.store.attemptToNavigateToHome)try{pr.transitionTo("/channels/@me")}catch(t){$o.debug("Failed to navigate to home",t)}try{Tp=!0,e.forceUpdate()}catch(t){$o.debug("Failed to update crash handler component.",t)}}})});function Ua(e){return Boolean(e)}function wp(e){return e!=null}var $a=g(()=>{"use strict";a()});async function Qv(e
`.trim().replace(/\s+/g," ")})}},{name:"view friend invites",description:"View a list of all generated friend invites.",inputType:3,execute:async(e,t)=>{let r=(await Za.getAllFriendInvites()).map(i=>`
`)||"You have no active friend invites!"})}},{name:"revoke friend invites",description:"Revokes all generated friend invites.",inputType:3,execute:async(e,t)=>{await Za.revokeFriendInvites(),ue(t.channel.id,{content:"All friend invites have been revoked."})}}]})});var qp,X1=g(()=>{a();(window.VencordStyles??=new Map).set("src/plugins/gameActivityToggle/style.css",{name:"src/plugins/gameActivityToggle/style.css",source:`[class*="withTagAsButton"]{
`,classNames:{},dom:null});id="src/plugins/imageZoom/styles.css"});var _e,f0,sd,rd=g(()=>{"use strict";a();Pt();$();Je();ka();P();zr();w();A();d0();td();m0();_e=D({saveZoomValues:{type:3,description:"Whether to save zoom and lens size values",default:!0},invertScroll:{type:3,description:"Invert scroll",default:!0},nearestNeighbour:{type:3,description:"Use Nearest Neighbour Interpolation when scaling images",default:!1},square:{type:3,description:"Make the lens square",default:!1},zoom:{description:"Zoom of the lens",type:5,markers:Fo(1,50,4),default:2,stickToMarkers:!1},size:{description:"Radius / Size of the lens",type:5,markers:Fo(50,1e3,50),default:100,stickToMarkers:!1},zoomSpeed:{description:"How fast the zoom / lens size changes",type:5,markers:Fo(.1,5,.2),default:.5,stickToMarkers:!1}}),f0=e=>()=>{e.push(o(G.MenuGroup,{id:"image-zoom"},o(G.MenuCheckboxItem,{id:"vc-square",label:"Square Lens",checked:_e.store.square,action:()=>{_e.store.square=!_e.store.square,dn.closeContextMenu()}}),o(G.MenuCheckboxItem,{id:"vc-nearest-neighbour",label:"Nearest Neighbour",checked:_e.store.nearestNeighbour,action:()=>{_e.store.nearestNeighbour=!_e.store.nearestNeighbour,dn.closeContextMenu()}}),o(G.MenuControlItem,{id:"vc-zoom",label:"Zoom",control:(t,n)=>o(G.MenuSliderControl,{ref:n,...t,minValue:1,maxValue:50,value:_e.store.zoom,onChange:yn(r=>_e.store.zoom=r,100)})}),o(G.MenuControlItem,{id:"vc-size",label:"Lens Size",control:(t,n)=>o(G.MenuSliderControl,{ref:n,...t,minValue:50,maxValue:1e3,value:_e.store.size,onChange:yn(r=>_e.store.size=r,100)})}),o(G.MenuControlItem,{id:"vc-zoom-speed",label:"Zoom Speed",control:(t,n)=>o(G.MenuSliderControl,{ref:n,...t,minValue:.1,maxValue:5,value:_e.store.zoomSpeed,onChange:yn(r=>_e.store.zoomSpeed=r,100),renderValue:r=>`${r.toFixed(3)}x`})})))},sd=y({name:"ImageZoom",description:"Lets you zoom in to images and gifs. Use scroll wheel to zoom in and shift + scroll wheel to increase lens radius / size",authors:[d.Aria],tags:["ImageUtilities"],patches:[{find:"Messages.OPEN_IN_BROWSER",replacement:{match:/return.{1,200}\.wrapper.{1,200}src:\i,/g,replace:`$&id:'${ys}',`}},{find:"handleImageLoad=",replacement:[{match:/showThumbhashPlaceholder:\i,/,replace:"...$self.makeProps(this),$&"},{match:/componentDidMount\(\){/,replace:"$&$self.renderMagnifier(this);"},{match:/componentWillUnmount\(\){/,replace:"$&$self.unMountMagnifier();"}]},{find:".carouselModal",replacement:{match:/(?<=\.carouselModal.{0,100}onClick:)\i,/,replace:"()=>{},"}}],settings:_e,currentMagnifierElement:null,element:null,Magnifier:od,root:null,makeProps(e){return{onMouseOver:()=>this.onMouseOver(e),onMouseOut:()=>this.onMouseOut(e),onMouseDown:t=>this.onMouseDown(t,e),onMouseUp:()=>this.onMouseUp(e),id:e.props.id}},renderMagnifier(e){e.props.id===ys&&(this.currentMagnifierElement||(this.currentMagnifierElement=o(od,{size:_e.store.size,zoom:_e.store.zoom,instance:e}),this.root=sr.createRoot(this.element),this.root.render(this.currentMagnifierElement)))},unMountMagnifier(){this.root?.unmount(),this.currentMagnifierElement=null,this.root=null},onMouseOver(e){e.setState(t=>({...t,mouseOver:!0}))},onMouseOut(e){e.setState(t=>({...t,mouseOver:!1}))},onMouseDown(e,t){e.button===0&&t.setState(n=>({...n,mouseDown:!0}))},onMouseUp(e){e.setState(t=>({...t,mouseDown:!1}))},start(){St(id),ce("image-context",f0),this.element=document.createElement("div"),this.element.classList.add("MagnifierContainer"),document.body.appendChild(this.element)},stop(){Ft(id),this.root&&this.root.unmount(),this.element?.remove(),de("image-context",f0)}})});function CI(e){let t=e?.message?.content,[n,r]=O.useState("password");return o(ze,{...e},o(lt,null,o(S.FormTitle,{tag:"h4"},"Decrypt Message")),o(et,null,o(S.FormTitle,{tag:"h5",style:{marginTop:"10px"}},"Message with Encryption"),o(Ve,{defaultValue:t,disabled:!0}),o(S.FormTitle,{tag:"h5",style:{marginTop:"10px"}},"Password"),o(Ve,{style:{marginBottom:"20px"},onChange:r})),o(_t,null,o(R,{color:R.Colors.GREEN,onClick:()=>{let i=ad(t,n,!0);!i||!e?.message||(Vencord.Plugins.plugins.InvisibleChat.buildEmbed(e?.m
`,classNames:{},dom:null});wd="src/plugins/messageLogger/deleteStyleText.css"});function $0(){E.plugins.MessageLogger.deleteStyle==="text"?(St(wd),Ft(xd)):(Ft(wd),St(xd))}var tA,G0,H0,z0,Md,j0=g(()=>{"use strict";a();B0();Pt();$();Je();le();P();Ze();w();j();A();F0();U0();tA=I("edited","communicationDisabled","isSystemMessage");G0="ml-remove-history",H0="ml-toggle-style",z0=(e,t)=>()=>{let{message:n}=t,{deleted:r,editHistory:i,id:s,channel_id:l}=n;if(!r&&!i?.length)return;e:{if(!r)break e;let c=document.getElementById(`chat-messages-${l}-${s}`);if(!c)break e;e.push(o(G.MenuItem,{id:H0,key:H0,label:"Toggle Deleted Highlight",action:()=>c.classList.toggle("messagelogger-deleted")}))}e.push(o(G.MenuItem,{id:G0,key:G0,label:"Remove Message History",color:"danger",action:()=>{r?F.dispatch({type:"MESSAGE_DELETE",channelId:l,id:s,mlDeleted:!0}):n.editHistory=[]}}))},Md=y({name:"MessageLogger",description:"Temporarily logs deleted and edited messages.",authors:[d.rushii,d.Ven,d.AutumnVN],start(){$0(),ce("message",z0)},stop(){de("message",z0)},renderEdit(e){return o(_,{noop:!0},o("div",{className:"messagelogger-edited"},Fe.parse(e.content),o(Gn,{timestamp:e.timestamp,isEdited:!0,isInline:!1},o("span",{className:tA.edited}," ","(",ot.Messages.MESSAGE_EDITED,")"))))},makeEdit(e,t){return{timestamp:mn?.call(e.edited_timestamp),content:t.content}},options:{deleteStyle:{type:4,description:"The style of deleted messages",default:"text",options:[{label:"Red text",value:"text",default:!0},{label:"Red overlay",value:"overlay"}],onChange:()=>$0()},ignoreBots:{type:3,description:"Whether to ignore messages by bots",default:!1},ignoreSelf:{type:3,description:"Whether to ignore messages by yourself",default:!1},ignoreUsers:{type:0,description:"Comma-separated list of user IDs to ignore",default:""},ignoreChannels:{type:0,description:"Comma-separated list of channel IDs to ignore",default:""},ignoreGuilds:{type:0,description:"Comma-separated list of guild IDs to ignore",default:""}},handleDelete(e,t,n){try{if(e==null||!n&&!e.has(t.id))return e;let r=i=>{let s=e.get(i);if(!s)return;let l=64;t.mlDeleted||(s.flags&l)===l||this.shouldIgnore(s)?e=e.remove(i):e=e.update(i,u=>u.set("deleted",!0).set("attachments",u.attachments.map(p=>(p.deleted=!0,p))))};n?t.ids.forEach(r):r(t.id)}catch(r){new ie("MessageLogger").error("Error during handleDelete",r)}return e},shouldIgnore(e){let{ignoreBots:t,ignoreSelf:n,ignoreUsers:r,ignoreChannels:i,ignoreGuilds:s}=E.plugins.MessageLogger,l=W.getCurrentUser().id;return t&&e.author?.bot||n&&e.author?.id===l||r.includes(e.author?.id)||i.includes(e.channel_id)||i.includes(Q.getChannel(e.channel_id)?.parent_id)||s.includes(Q.getChannel(e.channel_id)?.guild_id)},patches:[{find:'displayName="MessageStore"',replacement:[{match:/MESSAGE_DELETE:function\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?},/,replace:"MESSAGE_DELETE:function($1){ var cache = $2getOrCreate($1.channelId); cache = $self.handleDelete(cache, $1, false); $2commit(cache);},"},{match:/MESSAGE_DELETE_BULK:function\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?},/,replace:"MESSAGE_DELETE_BULK:function($1){ var cache = $2getOrCreate($1.channelId); cache = $self.handleDelete(cache, $1, true); $2commit(cache);},"},{match:/(MESSAGE_UPDATE:function\((\i)\).+?)\.update\((\i)/,replace:"$1.update($3,m => (($2.message.flags & 64) === 64 || $self.shouldIgnore($2.message)) ? m : $2.message.content !== m.editHistory?.[0]?.content && $2.message.content !== m.content ? m.set('editHistory',[...(m.editHistory || []), $self.makeEdit($2.message, m)]) : m).update($3"},{match:/(?<=getLastEditableMessage\(\i\)\{.{0,200}\.find\((\i)=>)/,replace:"!$1.deleted &&"}]},{find:"}addReaction(",replacement:[{match:/this\.customRenderedContent=(\i)\.customRenderedContent,/,replace:"this.customRenderedContent = $1.customRenderedContent,this.deleted = $1.deleted || false,this.editHistory = $1.editHistory || [],"}]},{find:"THREAD_STARTER_MESSAGE?null===",replacement:[{match:/interactionData:(\i)\.interactionData/,replace:"interactionData:$1.interactionData,deleted:$1.delete
`)}):(ue(n.channel.id,{content:`${jo}Thetag**${e.name}**doesnotexistanymore!PleasereloadurDiscordtofix:)`}),{content:`/${e.name}`}),[nA]:!0},"CustomTags")}var jo,sl,nA,il,rl,oA,rA,Pd,q0=g(()=>{"use strict";a();Qt();Wn();$();P();w();jo="<:luna:1035316192220553236>",sl="MessageTags_TAGS",nA=Symbol("MessageTags"),il=()=>It(sl).then(e=>e??[]),rl=e=>It(sl).then(t=>(t??[]).find(n=>n.name===e)??null),oA=async e=>{let t=await il();return t.push(e),Xt(sl,t),t},rA=async e=>{let t=await il();return t=await t.filter(n=>n.name!==e),Xt(sl,t),t};Pd=y({name:"MessageTags",description:"Allows you to save messages and to use them with a simple command.",authors:[d.Luna],options:{clyde:{name:"Clyde message on send",description:"If enabled, clyde will send you an ephemeral message when a tag was used.",type:3,default:!0}},dependencies:["CommandsAPI"],async start(){for(let e of await il())W0(e)},commands:[{name:"tags",description:"Manage all the tags for yourself",inputType:0,options:[{name:"create",description:"Create a new tag",type:1,options:[{name:"tag-name",description:"The name of the tag to trigger the response",type:3,required:!0},{name:"message",description:"The message that you will send when using this tag",type:3,required:!0}]},{name:"list",description:"List all tags from yourself",type:1,options:[]},{name:"delete",description:"Remove a tag from your yourself",type:1,options:[{name:"tag-name",description:"The name of the tag to trigger the response",type:3,required:!0}]},{name:"preview",description:"Preview a tag without sending it publicly",type:1,options:[{name:"tag-name",description:"The name of the tag to trigger the response",type:3,required:!0}]}],async execute(e,t){switch(e[0].name){case"create":{let n=it(e[0].options,"tag-name",""),r=it(e[0].options,"message","");if(await rl(n))return ue(t.channel.id,{content:`${jo}ATagwiththename**${n}**alreadyexists!`});let i={name:n,enabled:!0,message:r};W0(i),await oA(i),ue(t.channel.id,{content:`${jo}Successfullycreatedthetag**${n}**!`});break}case"delete":{let n=it(e[0].options,"tag-name","");if(!await rl(n))return ue(t.channel.id,{content:`${jo}ATagwiththename**${n}**doesnotexist!`});ts(n),await rA(n),ue(t.channel.id,{content:`${jo}Successfullydeletedthetag**${n}**!`});break}case"list":{ue(t.channel.id,{embeds:[{title:"All Tags:",description:(await il()).map(n=>`\`${n.name}\`: ${n.message.slice(0,72).replaceAll("\\n"," ")}${n.message.length>72?"...":""}`).join(`
`)||`${jo}Woops!Therearenotagsyet,use\`/tags create\` to create one!`,color:14122879,type:"rich"}]});break}case"preview":{letn=it(e[0].options,"tag-name",""),r=awaitrl(n);if(!r)returnue(t.channel.id,{content:`${jo} A Tag with the name **${n}** does not exist!`});ue(t.channel.id,{content:r.message.replaceAll("\\n",`
`)});break}default:{ue(t.channel.id,{content:"Invalid sub-command"});break}}}}]})});function iA(e){let t="";for(let n=0;n<e.length;n++)t+=n%2?e[n].toUpperCase():e[n].toLowerCase();return t}var Id,K0=g(()=>{"use strict";a();Qt();P();w();Id=y({name:"MoreCommands",description:"echo, lenny, mock",authors:[d.Arjix,d.echo,d.Samu],dependencies:["CommandsAPI"],commands:[{name:"echo",description:"Sends a message as Clyde (locally)",options:[Bo],inputType:3,execute:(e,t)=>{let n=it(e,"message","");ue(t.channel.id,{content:n})}},{name:"lenny",description:"Sends a lenny face",options:[Bo],execute:e=>({content:it(e,"message","")+" ( \u0361\xB0 \u035C\u0296 \u0361\xB0)"})},{name:"mock",description:"mOcK PeOpLe",options:[es],execute:e=>({content:iA(it(e,"message",""))})}]})});var Ad,Y0=g(()=>{"use strict";a();Qt();P();w();Ad=y({name:"MoreKaomoji",description:"Adds more Kaomoji to discord. \u30FD(\xB4\u25BD`)/",authors:[d.JacobTm],dependencies:["CommandsAPI"],commands:[{name:"dissatisfaction",description:"\uFF1E\uFE4F\uFF1C"},{name:"smug",description:"\u0CA0_\u0CA0"},{name:"happy",description:"\u30FD(\xB4\u25BD`)/"},{name:"crying",description:" \u0CA5_\u0CA5"},{name:"angry",description:" \u30FD(\uFF40\u0414\xB4)\uFF89"},{name:"anger",description:" \u30FD(\uFF4F`\u76BF\u2032\uFF4F)\uFF89"},{name:"joy",description:"<(\uFFE3\uFE36\uFFE3)>"},{name:"blush",description:"\u0AEE\u02F6\u1D54\u1D55\u1D54\u02F6\u10D0"},{name:"confused",description:"(\u2022\u0E34_\u2022\u0E34)?"},{name:"sleeping",description:"(\u1D17_\u1D17)"},{name:"laughing",description:"o(\u2267\u25BD\u2266)o"}].map(e=>({...e,options:[Bo],execute:t=>({content:it(t,"message","")+e.description})}))})});function aA(e){Wo.store.tagSettings??=Nd;let[t,n]=J(Wo.store.tagSettings),r=i=>{n(i),e.setValue(i)};return o(ge,{flexDirection:"column"},ai.map(i=>o(wt,{style:{padding:"1em1em0"}},o(S.FormTitle,{style:{width:"fit-content"}},o(V,{text:i.description},({onMouseEnter:s,onMouseLeave:l})=>o("div",{onMouseEnter:s,onMouseLeave:l},i.displayName,"Tag",o(uo,{type:uo.Types[i.name]})))),o(Ve,{type:"text",value:t[i.name]?.text??i.displayName,placeholder:`Text on tag (default: ${i.displayName})`,onChange:s=>{t[i.name].text=s,r(t)},className:q.bottom16}),o(pt,{value:t[i.name]?.showInChat??!0,onChange:s=>{t[i.name].showInChat=s,r(t)},hideBorder:!0},"Showinmessages"),o(pt,{value:t[i.name]?.showInNotChat??!0,onChange:s=>{t[i.name].showInNotChat=s,r(t)},hideBorder:!0},"Showinmemberlistandprofiles"))))}var sA,uo,Z0,ai,Nd,Wo,Cd,X0=g(()=>{"usestrict";a();$();Lt();P();at();w();j();A();sA=I("computePermissions","canEveryoneRole"),uo=un(e=>e.Types?.[0]==="BOT"),Z0=(e,t)=>!!e?.webhookId&&t.isNonUserBot(),ai=[{name:"WEBHOOK",displayName:"Webhook",description:"Messagessentbywebhooks",condition:Z0},{name:"OWNER",displayName:"Owner",description:"Ownstheserver",condition:(e,t,n)=>Te.getGuild(n?.guild_id)?.ownerId===t.id},{name:"ADMINISTRATOR",displayName:"Admin",description:"Hastheadministratorpermission",permissions:["ADMINISTRATOR"]},{name:"MODERATOR_STAFF",displayName:"Staff",description:"Canmanagetheserver,channelsorroles",permissions:["MANAGE_GUILD","MANAGE_CHANNELS","MANAGE_ROLES"]},{name:"MODERATOR",displayName:"Mod",description:"Canmanagemessagesorkick/banpeople",permissions:["MANAGE_MESSAGES","KICK_MEMBERS","BAN_MEMBERS"]},{name:"VOICE_MODERATOR",displayName:"VCMod",description:"Canmanagevoicechats",permissions:["MOVE_MEMBERS","MUTE_MEMBERS","DEAFEN_MEMBERS"]}],Nd=Object.fromEntries(ai.map(({name:e,displayName:t})=>[e,{text:t,showInChat:!0,showInNotChat:!0}]));Wo=D({dontShowForBots:{description:"Don'tshowextratagsforbots(excludingwebhooks)",type:3},dontShowBotTag:{description:"Onlyshowextratagsforbots/Hide[BOT]text",type:3},tagSettings:{type:6,component:aA,description:"fillme"}}),Cd=y({name:"MoreUserTags",description:"Addstagsforwebhooksandmoderativeroles(owner,admin,etc.)",authors:[d.Cyn,d.TheSun,d.RyanCaoDev,d.LordElias,d.AutumnVN],settings:Wo,patches:[{find:"BotTagTypes:",replacement:{match:/\((\i)=\{\}\)\)\[(\i)\.BOT/,replace:"($1=$
`,classNames:{},dom:null});Fd="src/plugins/noMosaic/styles.css"});var Ud,$d,rS=g(()=>{"use strict";a();$();Je();P();w();oS();Ud=D({inlineVideo:{description:"Play videos without carousel modal",type:3,default:!0,restartNeeded:!0},mediaLayoutType:{description:"Choose media layout type",type:4,restartNeeded:!0,options:[{label:"STATIC, render loading image but image isn't resposive, no problem unless discord window width is too small",value:"STATIC",default:!0},{label:"RESPONSIVE, image is responsive but not render loading image, cause messages shift when loaded",value:"RESPONSIVE"}]}}),$d=y({name:"NoMosaic",authors:[d.AutumnVN],description:"Removes Discord new image mosaic",tags:["image","mosaic","media"],settings:Ud,patches:[{find:".oneByTwoLayoutThreeGrid",replacement:[{match:/mediaLayoutType:\i\.\i\.MOSAIC/,replace:"mediaLayoutType:$self.mediaLayoutType()"},{match:/null!==\(\i=\i\.get\(\i\)\)&&void 0!==\i\?\i:"INVALID"/,replace:'"INVALID"'}]},{find:"renderAttachments(",predicate:()=>Ud.store.inlineVideo,replacement:{match:/url:(\i)\.url\}\);return /,replace:"$&$1.content_type?.startsWith('image/')&&"}},{find:"Messages.REMOVE_ATTACHMENT_TOOLTIP_TEXT",replacement:{match:/\i===\i\.\i\.MOSAIC/,replace:"true"}}],mediaLayoutType(){return Ud.store.mediaLayoutType},start(){St(Fd)},stop(){Ft(Fd)}})});var bA,bs,Gd,iS=g(()=>{"use strict";a();$();P();w();j();bA=I("getMessageRequestsCount"),bs=D({hideFriendRequestsCount:{type:3,description:"Hide incoming friend requests count",default:!0,restartNeeded:!0},hideMessageRequestsCount:{type:3,description:"Hide message requests count",default:!0,restartNeeded:!0},hidePremiumOffersCount:{type:3,description:"Hide nitro offers count",default:!0,restartNeeded:!0}}),Gd=y({name:"NoPendingCount",description:"Removes the ping count of incoming friend requests, message requests, and nitro offers.",authors:[d.amia],settings:bs,patches:[{find:"getPendingCount(){",predicate:()=>bs.store.hideFriendRequestsCount,replacement:{match:/(?<=getPendingCount\(\)\{)/,replace:"return 0;"}},{find:"getMessageRequestsCount(){",predicate:()=>bs.store.hideMessageRequestsCount,replacement:{match:/(?<=getMessageRequestsCount\(\)\{)/,replace:"return 0;"}},{find:".getSpamChannelsCount(),",predicate:()=>bs.store.hideMessageRequestsCount,replacement:{match:/(?<=getSpamChannelsCount\(\),\i=)\i\.getMessageRequestsCount\(\)/,replace:"$self.getRealMessageRequestCount()"}},{find:"showProgressBadge:",predicate:()=>bs.store.hidePremiumOffersCount,replacement:{match:/(?<=\{unviewedTrialCount:(\i),unviewedDiscountCount:(\i)\}.{0,200}\i=)\1\+\2/,replace:"0"}}],getRealMessageRequestCount(){return bA.getMessageRequestChannelIds().size}})});var Hd,sS=g(()=>{"use strict";a();P();w();Hd=y({name:"NoProfileThemes",description:"Completely removes Nitro profile themes",authors:[d.TheKodeToad],patches:[{find:".NITRO_BANNER,",replacement:{match:/=(?=\i\.\i\.isPremiumAtLeast\(null==(\i))/,replace:"=(arguments[0]?.bannerSrc||$1?.banner)&&"}},{find:".avatarPositionPremiumNoBanner,default:",replacement:{match:/\.avatarPositionPremiumNoBanner(?=,default:\i\.(\i))/,replace:".$1"}},{find:"hasThemeColors(){",replacement:{match:/get canUsePremiumProfileCustomization\(\){return /,replace:"$&false &&"}}]})});var ll,zd,aS=g(()=>{"use strict";a();$();P();w();ll=D({userList:{description:"List of users to allow or exempt pings for (separated by commas or spaces)",type:0,default:"1234567890123445,1234567890123445"},shouldPingListed:{description:"Behaviour",type:4,options:[{label:"Do not ping the listed users",value:!1},{label:"Only ping the listed users",value:!0,default:!0}]},inverseShiftReply:{description:"Invert Discord's shift replying behaviour (enable to make shift reply mention user)",type:3,default:!1}}),zd=y({name:"NoReplyMention",description:"Disables reply pings by default",authors:[d.DustyAngel47,d.axyie,d.pylix,d.outfoxxed],settings:ll,shouldMention(e,t){let n=ll.store.userList.includes(e.author.id),r=ll.store.shouldPingListed?n:!n;return ll.store.inverseShiftReply?t!==r:!t&&r},patches:[{find:',"Message")}function',replacement:{match:/:(\i),shou
`,s),"Failed to fetch user. Check the console for more info."}}return null}var ci,LS,DA,OA,dl,_A,BA,lm,DS=g(()=>{"use strict";a();Qt();P();wn();w();j();A();ci=js(_p()),LS=0,DA=20,OA=128,dl=10,_A=xo(()=>Promise.all(Array.from({length:dl},(e,t)=>ES(`https://raw.githubusercontent.com/VenPlugs/petpet/main/frames/pet${t}.gif`)))),BA=I("getUploads");lm=y({name:"petpet",description:"Adds a /petpet slash command to create headpet gifs from any image",authors:[d.Ven],dependencies:["CommandsAPI"],commands:[{inputType:0,name:"petpet",description:"Create a petpet gif. You can only specify one of the image options",options:[{name:"delay",description:"The delay between each frame. Defaults to 20.",type:4},{name:"resolution",description:"Resolution for the gif. Defaults to 120. If you enter an insane number and it freezes Discord that's your fault.",type:4},{name:"image",description:"Image attachment to use",type:11},{name:"url",description:"URL to fetch image from",type:3},{name:"user",description:"User whose avatar to use as image",type:6},{name:"no-server-pfp",description:"Use the normal avatar instead of the server specific one when using the 'user' option",type:5}],execute:async(e,t)=>{let n=await _A(),r=it(e,"no-server-pfp",!1);try{var i=await FA(e,t,r);if(!i)throw"No Image specified!"}catch(v){ue(t.channel.id,{content:String(v)});return}let s=await ES(i),l=it(e,"delay",DA),c=it(e,"resolution",OA),u=(0,ci.GIFEncoder)(),p=document.createElement("canvas");p.width=p.height=c;let m=p.getContext("2d");for(let v=0;v<dl;v++){m.clearRect(0,0,p.width,p.height);let T=v<dl/2?v:dl-v,M=.8+T*.02,b=.8-T*.05,x=(1-M)*.5+.1,N=1-b-.08;m.drawImage(s,x*c,N*c,M*c,b*c),m.drawImage(n[v],0,0,c,c);let{data:k}=m.getImageData(0,0,c,c),B=(0,ci.quantize)(k,256),U=(0,ci.applyPalette)(k,B);u.writeFrame(U,c,c,{transparent:!0,palette:B,delay:l})}u.finish();let h=new File([u.bytesView()],"petpet.gif",{type:"image/gif"});setTimeout(()=>Ri.promptToUpload([h],t.channel,LS),10)}}]})});var OS=g(()=>{});var _S,cm,BS=g(()=>{"use strict";a();OS();$();le();P();w();A();_S=D({loop:{description:"Whether to make the PiP video loop or not",type:3,default:!0,restartNeeded:!1}}),cm=y({name:"PictureInPicture",description:"Adds picture in picture to videos (next to the Download button)",authors:[d.Lumap],settings:_S,patches:[{find:".nonMediaAttachment]",replacement:{match:/\.nonMediaAttachment\]:!(\i).{0,10}children:\[(\S)/,replace:"$&,$1&&$2&&$self.renderPiPButton(),"}}],renderPiPButton:_.wrap(()=>o(V,{text:"Toggle Picture in Picture"},e=>o("div",{...e,className:"vc-pip-button",role:"button",style:{cursor:"pointer",paddingTop:"4px",paddingLeft:"4px",paddingRight:"4px"},onClick:t=>{let n=t.currentTarget.parentNode.parentNode.querySelector("video"),r=document.body.appendChild(n.cloneNode(!0));r.loop=_S.store.loop,r.style.display="none",r.onleavepictureinpicture=()=>r.remove();function i(){r.currentTime=n.currentTime,r.requestPictureInPicture(),n.pause(),r.play()}r.readyState===4?i():r.onloadedmetadata=i}},o("svg",{width:"24px",height:"24px",viewBox:"0 0 24 24"},o("path",{fill:"currentColor",d:"M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-1 2h-6v4h6v-4z"})))),{noop:!0})})});function $S(){return ct(["plugins.PinDMs.pinnedDMs"]),ml()}function ui(e){return ml().has(e)}function GS(e){let t=ml();t.delete(e)||t.add(e),US([...t])}function pm(){return ml(),Ps.store.pinOrder===0?UA.getPrivateChannelIds().filter(ui):Zn}function HS(e){return pm()[e]}function dm(e,t){let n=FS(),r=n.indexOf(e),i=r+t;[n[r],n[i]]=[n[i],n[r]],US(n)}var Ps,UA,Zn,um,FS,US,$A,ml,mm=g(()=>{"use strict";a();$();w();j();Ps=D({pinOrder:{type:4,description:"Which order should pinned DMs be displayed in?",options:[{label:"Most recent message",value:0,default:!0},{label:"Custom (right click channels to reorder)",value:1}]}}),UA=Me("PrivateChannelSortStore"),FS=()=>(E.plugins.PinDMs.pinnedDMs||void 0)?.split(","),US=e=>{um=void 0,E.plugins.PinDMs.pinnedDMs=e.join(",")},$A=()=>(Zn=FS()??[],um=new Set(Zn)),ml=()=>um??$A()});funct
`,e))},stop(){Om=void 0},decodeError(e,...t){let n=0;return Om?.[e]?.replace(/%s/g,()=>{let r=t[n];return n++,r})}})});var Fm={};Be(Fm,{ServerListRenderPosition:()=>Ml,addServerListElement:()=>Is,removeServerListElement:()=>As,renderAll:()=>gN});function Bm(e){return e===0?mN:fN}function Is(e,t){Bm(e).add(t)}function As(e,t){Bm(e).delete(t)}var dN,Ml,mN,fN,gN,Pl=g(()=>{"use strict";a();Ze();dN=new ie("ServerListAPI"),Ml=(n=>(n[n.Above=0]="Above",n[n.In=1]="In",n))(Ml||{}),mN=new Set,fN=new Set;gN=e=>{let t=[];for(let n of Bm(e))try{t.unshift(n())}catch(r){dN.error("Failed to render server list element:",r)}return t}});function hN(){let e=[];Object.values(Te.getGuilds()).forEach(t=>{Ur.getChannels(t.id).SELECTABLE.forEach(n=>{!ar.hasUnread(n.channel.id)||e.push({channelId:n.channel.id,messageId:ar.lastMessageId(n.channel.id),readStateType:0})})}),F.dispatch({type:"BULK_ACK",context:"APP",channels:e})}var yN,Um,Nb=g(()=>{"use strict";a();Pl();P();w();A();yN=()=>o(R,{onClick:hN,size:R.Sizes.MIN,color:R.Colors.BRAND,style:{marginTop:"2px",marginBottom:"8px",marginLeft:"9px"}},"Read all"),Um=y({name:"ReadAllNotificationsButton",description:"Read all server notifications with a single button click!",authors:[d.kemo],dependencies:["ServerListAPI"],renderReadAllButton:()=>o(yN,null),start(){Is(0,this.renderReadAllButton)},stop(){As(0,this.renderReadAllButton)}})});var en,Il=g(()=>{"use strict";a();$();w();en=D({notices:{type:3,description:"Also show a notice at the top of your screen when removed (use this if you don't want to miss any notifications).",default:!1},offlineRemovals:{type:3,description:"Notify you when starting discord if you were removed while offline.",default:!0},friends:{type:3,description:"Notify when a friend removes you",default:!0},friendRequestCancels:{type:3,description:"Notify when a friend request is cancelled",default:!0},servers:{type:3,description:"Notify when removed from a server",default:!0},groups:{type:3,description:"Notify when removed from a group chat",default:!0}})});var $m=g(()=>{"use strict";a()});async function bN(){Gt.delMany(["relationship-notifier-guilds","relationship-notifier-groups","relationship-notifier-friends"])}async function Gm(){await bN();let[e,t,n]=await Gt.getMany([Cb(),kb(),Rb()]);if(await Promise.all([Nl(),Cl(),Ns()]),en.store.offlineRemovals){if(en.store.groups&&t?.size)for(let[r,i]of t)mi.has(r)||mo(`Youarenolongerinthegroup${i.name}.`,i.iconURL);if(en.store.servers&&e?.size)for(let[r,i]of e)di.has(r)||mo(`Youarenolongerintheserver${i.name}.`,i.iconURL);if(en.store.friends&&n?.friends.length)for(let r of n.friends){if(Nr.friends.includes(r))continue;let i=await Rt.getUser(r).catch(()=>{});i&&mo(`Youarenolongerfriendswith${ao(i)}.`,i.getAvatarURL(void 0,void 0,!1),()=>_n(i.id))}if(en.store.friendRequestCancels&&n?.requests?.length)for(let r of n.requests){if(Nr.requests.includes(r)||[1,2,4].includes(nt.getRelationshipType(r)))continue;let i=await Rt.getUser(r).catch(()=>{});i&&mo(`Friendrequestfrom${ao(i)}hasbeenrevoked.`,i.getAvatarURL(void 0,void 0,!1),()=>_n(i.id))}}}function mo(e,t,n){en.store.notices&&Al.showNotice(e,"OK",()=>Al.popNotice()),Ie({title:"Relationship Notifier",body:e,icon:t,onClick:n})}function Lb(e){return di.get(e)}function Hm(e){di.delete(e),Nl()}async function Nl(){di.clear();let e=W.getCurrentUser().id;for(let[t,{name:n,icon:r}]of Object.entries(Te.getGuilds()))ke.isMember(t,e)&&di.set(t,{id:t,name:n,iconURL:r&&`https://cdn.discordapp.com/icons/${t}/${r}.png`});await Gt.set(Cb(),di)}function Eb(e){return mi.get(e)}function zm(e){mi.delete(e),Cl()}async function Cl(){mi.clear();for(let{type:e,id:t,name:n,rawRecipients:r,icon:i}of Q.getSortedPrivateChannels())e===3&&mi.set(t,{id:t,name:n||r.map(s=>s.username).join(", "),iconURL:i&&`https://cdn.discordapp.com/channel-icons/${t}/${i}.png`});await Gt.set(kb(),mi)}async function Ns(){Nr.friends=[],Nr.requests=[];let e=nt.getRelationships();for(let t in e)switch(e[t]){case 1:Nr.friends.push(t);break;case 3:Nr.requests.push(t);break}await Gt.set(Rb(),Nr)}var di,mi,Nr,Cb,kb,Rb,
`,classNames:{},dom:null});Es="src/plugins/shikiCodeblocks.desktop/devicon.css"});var Ds=g(()=>{"use strict";a()});var qN,Zo,xf=g(()=>{"use strict";a();$();Je();Re();ro();w();Ls();Sf();Tf();Ds();qN=Object.keys(go),Zo=D({theme:{type:4,description:"Default themes",options:qN.map(e=>({label:oo(vu(e)),value:go[e],default:go[e]===go.DarkPlus})),onChange:he.setTheme},customTheme:{type:0,description:"A link to a custom vscode theme",placeholder:go.MaterialCandy,onChange:e=>{he.setTheme(e||Zo.store.theme)}},tryHljs:{type:4,description:"Use the more lightweight default Discord highlighter and theme.",options:[{label:"Never",value:"NEVER"},{label:"Prefer Shiki instead of Highlight.js",value:"SECONDARY",default:!0},{label:"Prefer Highlight.js instead of Shiki",value:"PRIMARY"},{label:"Always",value:"ALWAYS"}]},useDevIcon:{type:4,description:"How to show language icons on codeblocks",options:[{label:"Disabled",value:"DISABLED"},{label:"Colorless",value:"GREYSCALE",default:!0},{label:"Colored",value:"COLOR"}],onChange:e=>{e==="DISABLED"?Ft(Es):St(Es)}},bgOpacity:{type:5,description:"Background opacity",markers:[0,20,40,60,80,100],default:100,componentProps:{stickToMarkers:!1,onValueRender:null}}},{theme:{disabled(){return!!this.store.customTheme}},customTheme:{isValid(e){if(!e)return!0;let t=hc(e);return t?t.pathname.endsWith(".json")?!0:"Must be a json file":"Must be a valid URL"}}})});function CT(e,t){let n=Zo.use(e),[r,i]=O.useState(!1),s={...n,...t},l=s.customTheme||s.theme;if(t){let c=he.currentThemeUrl&&l&&l!==he.currentThemeUrl,u=Object.keys(t).length===0;r&&(!c||u)&&i(!1),!r&&c&&(i(!0),he.setTheme(l))}return{...s,isThemeLoading:l!==he.currentThemeUrl}}var kT=g(()=>{"use strict";a();A();Ls();xf()});function RT(e){return e=e.slice(1),e.length<6&&(e=e.split("").map(t=>t+t).join("")),e.length===6&&(e+="ff"),e.length>6&&(e=e.slice(0,6)),e.split(/(..)/).filter(Boolean).map(t=>parseInt(t,16))}var LT=g(()=>{"use strict";a()});var Un,ET,Os=g(()=>{"use strict";a();Je();A();_l();Ds();Un=Ue("shiki-"),ET=({lang:e,tryHljs:t})=>{let n=e?lr?.getLanguage?.(e):null,i=(e?Cr(e):null)?.name;switch(t){case"ALWAYS":return!0;case"PRIMARY":return!!n||e==="";case"SECONDARY":return!i&&!!n;case"NEVER":return!1;default:return!1}}});function DT(e){let[t,n]=O.useState(!1);function r(i){Zt.copy(i),n(!0),setTimeout(()=>{n(!1)},e)}return[t,r]}var OT=g(()=>{"use strict";a();A()});function _T({content:e,...t}){let[n,r]=DT(1e3);return o("button",{...t,style:{...t.style,cursor:n?"default":void 0},onClick:()=>r(e)},n?"Copied!":"Copy")}var BT=g(()=>{"use strict";a();OT()});function FT({content:e,theme:t}){let n=[];return Zt.SUPPORTS_COPY&&n.push(o(_T,{content:e,className:Un("btn"),style:{backgroundColor:t.accentBgColor,color:t.accentFgColor}})),o("div",{className:Un("btns")},n)}var UT=g(()=>{"use strict";a();A();Os();BT()});var $T,GT=g(()=>{"use strict";a();A();Os();$T=({theme:e,useHljs:t,lang:n,content:r,tokens:i})=>{let s;if(t)try{let{value:c}=lr.highlight(n,r,!0);s=c.split(`
`);return o(S.FormSection,{title:"Server Trace",tag:"h2"},o("code",null,o(ge,{flexDirection:"column",style:{color:"var(--header-primary)",gap:5,userSelect:"text"}},t.map(n=>o("span",null,n)))))}function EC(){if(!Fs?.logs)return o("div",null,"Loading...");let e=Fs.logGroups.find(t=>t.serverTrace)?.serverTrace;return o(O.Fragment,null,o(RC,{title:"Startup Timings",logs:Fs.logs,traceEnd:Fs.endTime_}),o("div",{style:{marginTop:5}},"\xA0"),e&&o(LC,{trace:e}))}var Fs,DC,Ix=g(()=>{"use strict";a();le();Lt();j();A();Fs=I("markWithDelta","markAndLog","markAt");DC=_.wrap(EC)});var zf,Ax=g(()=>{"use strict";a();P();Qe();w();zf=y({name:"StartupTimings",description:"Adds Startup Timings to the Settings menu",authors:[d.Megu],patches:[{find:"UserSettingsSections.PAYMENT_FLOW_MODAL_TEST_PAGE,",replacement:{match:/{section:\i\.UserSettingsSections\.PAYMENT_FLOW_MODAL_TEST_PAGE/,replace:'{section:"StartupTimings",label:"Startup Timings",element:$self.StartupTimingPage},$&'}}],StartupTimingPage:tt(()=>(Ix(),To(Px)).default)})});var jf,Wf,Nx=g(()=>{"use strict";a();$();P();w();jf=D({superReactByDefault:{type:3,description:"Reaction picker will default to Super Reactions",default:!0},unlimitedSuperReactionPlaying:{type:3,description:"Remove the limit on Super Reactions playing at once",default:!1},superReactionPlayingLimit:{description:"Max Super Reactions to play at once",type:5,default:20,markers:[5,10,20,40,60,80,100],stickToMarkers:!0}},{superReactionPlayingLimit:{disabled(){return this.store.unlimitedSuperReactionPlaying}}}),Wf=y({name:"SuperReactionTweaks",description:"Customize the limit of Super Reactions playing at once, and super react by default",authors:[d.FieryFlames,d.ant0n],patches:[{find:",BURST_REACTION_EFFECT_PLAY",replacement:{match:/(?<=BURST_REACTION_EFFECT_PLAY:\i=>{.{50,100})(\i\(\i,\i\))>=\d+/,replace:"!$self.shouldPlayBurstReaction($1)"}},{find:".hasAvailableBurstCurrency)",replacement:{match:/(?<=\.useBurstReactionsExperiment.{0,20})useState\(!1\)(?=.+?(\i===\i\.EmojiIntention.REACTION))/,replace:"useState($self.settings.store.superReactByDefault && $1)"}}],settings:jf,shouldPlayBurstReaction(e){return!!(jf.store.unlimitedSuperReactionPlaying||e<=jf.store.superReactionPlayingLimit)}})});function Ex(e){let t=e.match(/^(\/)?(.+?)(?:\/([gimsuy]*))?$/);return t?new RegExp(t[2],t[3]?.split("").filter((n,r,i)=>i.indexOf(n)===r).join("")??"g"):new RegExp(e)}function _C(e){try{return Ex(e),null}catch(t){return o("span",{style:{color:"var(--text-danger)"}},String(t))}}function qf({initialValue:e,onChange:t,placeholder:n}){let[r,i]=J(e);return o(Ve,{placeholder:n,value:r,onChange:i,spellCheck:!1,onBlur:()=>r!==e&&t(r)})}function Cx({title:e,rulesArray:t,rulesKey:n,update:r}){let i=e==="Using Regex";async function s(c){c!==t.length-1&&(t.splice(c,1),await Gt.set(n,t),r())}async function l(c,u,p){u===t.length-1&&t.push(Lx()),t[u][p]=c,t[u].find===""&&t[u].replace===""&&t[u].onlyIfIncludes===""&&u!==t.length-1&&t.splice(u,1),await Gt.set(n,t),r()}return o(f,null,o(S.FormTitle,{tag:"h4"},e),o(ge,{flexDirection:"column",style:{gap:"0.5em"}},t.map((c,u)=>o(O.Fragment,{key:`${c.find}-${u}`},o(ge,{flexDirection:"row",style:{gap:0}},o(ge,{flexDirection:"row",style:{flexGrow:1,gap:"0.5em"}},o(qf,{placeholder:"Find",initialValue:c.find,onChange:p=>l(p,u,"find")}),o(qf,{placeholder:"Replace",initialValue:c.replace,onChange:p=>l(p,u,"replace")}),o(qf,{placeholder:"Only if includes",initialValue:c.onlyIfIncludes,onChange:p=>l(p,u,"onlyIfIncludes")})),o(R,{size:R.Sizes.MIN,onClick:()=>s(u),style:{background:"none",color:"var(--status-danger)",...u===t.length-1?{visibility:"hidden",pointerEvents:"none"}:{}}},o(Ty,null))),i&&_C(c.find)))))}function BC(){let[e,t]=J("");return o(f,null,o(S.FormTitle,{tag:"h4"},"Test Rules"),o(Ve,{placeholder:"Type a message",onChange:t}),o(Ve,{placeholder:"Message with rules applied",editable:!1,value:Dx(e)}))}function Dx(e){if(e.length===0)return e;if($l)for(let t of $l)!t.find||!t.replace||t.onlyIfIncludes&&!e.includes(t.onlyIfIncludes)||(e=`${e}`.replaceAll(t.find,t.replace.replaceAll("\\n",`
`)).replace(/^\s|\s$/g,""));if(Gl){for(let t of Gl)if(!(!t.find||!t.replace)&&!(t.onlyIfIncludes&&!e.includes(t.onlyIfIncludes)))try{let n=Ex(t.find);e=e.replace(n,t.replace.replaceAll("\\n",`
`))}catch{new ie("TextReplace").error(`Invalidregex:${t.find}`)}}return e=e.trim(),e}var kx,Rx,Lx,Ul,$l,Gl,OC,FC,Kf,Ox=g(()=>{"use strict";a();as();Yn();$();Lt();$t();P();Ze();Qe();w();A();kx="TextReplace_rulesString",Rx="TextReplace_rulesRegex",Lx=()=>({find:"",replace:"",onlyIfIncludes:""}),Ul=()=>[Lx()],$l=Ul(),Gl=Ul(),OC=D({replace:{type:6,description:"",component:()=>{let e=Po();return o(f,null,o(Cx,{title:"Using String",rulesArray:$l,rulesKey:kx,update:e}),o(Cx,{title:"Using Regex",rulesArray:Gl,rulesKey:Rx,update:e}),o(BC,null))}}});FC="1102784112584040479",Kf=y({name:"TextReplace",description:"Replace text in your messages. You can find pre-made rules in the #textreplace-rules channel in Vencord's Server",authors:[d.AutumnVN,d.TheKodeToad],dependencies:["MessageEventsAPI"],settings:OC,async start(){$l=await Gt.get(kx)??Ul(),Gl=await Gt.get(Rx)??Ul(),this.preSend=Ht((e,t)=>{e!==FC&&(t.content=Dx(t.content))})},stop(){zt(this.preSend)}})});var Yf,_x=g(()=>{"use strict";a();P();w();A();Yf=y({name:"ThemeAttributes",description:"Adds data attributes to various elements for theming purposes",authors:[d.Ven],patches:[{find:".tabBarRef",replacement:{match:/style:this\.getStyle\(\),role:"tab"/,replace:"$&,'data-tab-id':this.props.id"}},{find:".messageListItem",replacement:{match:/\.messageListItem(?=,"aria)/,replace:"$&,...$self.getMessageProps(arguments[0])"}}],getMessageProps(e){let t=e.message?.author?.id;return{"data-author-id":t,"data-is-self":t&&t===W.getCurrentUser()?.id}}})});var Zf,Bx=g(()=>{"use strict";a();P();w();Zf=y({name:"TimeBarAllActivities",description:"Adds the Spotify time bar to all activities if they have start and end timestamps",authors:[d.obscurity],patches:[{find:"}renderTimeBar(",replacement:{match:/renderTimeBar\((.{1,3})\){.{0,50}?let/,replace:"renderTimeBar($1){let"}}]})});var Fx=g(()=>{});var Dt,Us=g(()=>{"use strict";a();$();w();Dt=D({receivedInput:{type:0,description:"Input language for received messages",default:"auto",hidden:!0},receivedOutput:{type:0,description:"Output language for received messages",default:"en",hidden:!0},sentInput:{type:0,description:"Input language for sent messages",default:"auto",hidden:!0},sentOutput:{type:0,description:"Output language for sent messages",default:"en",hidden:!0},autoTranslate:{type:3,description:"Automatically translate your messages before sending. You can also shift/right click the translate button to toggle this",default:!1}})});var Hl,Xf=g(()=>{"use strict";a();Hl={auto:"Detect language",af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",as:"Assamese",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",eu:"Basque",be:"Belarusian",bn:"Bengali",bho:"Bhojpuri",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",ceb:"Cebuano",ny:"Chichewa","zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Dhivehi",doi:"Dogri",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",tl:"Filipino",fi:"Finnish",fr:"French",fy:"Frisian",gl:"Galician",ka:"Georgian",de:"German",el:"Greek",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",haw:"Hawaiian",iw:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",ilo:"Ilocano",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",rw:"Kinyarwanda",gom:"Konkani",ko:"Korean",kri:"Krio",ku:"Kurdish (Kurmanji)",ckb:"Kurdish (Sorani)",ky:"Kyrgyz",lo:"Lao",la:"Latin",lv:"Latvian",ln:"Lingala",lt:"Lithuanian",lg:"Luganda",lb:"Luxembourgish",mk:"Macedonian",mai:"Maithili",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi","mni-Mtei":"Meiteilon (Manipuri)",lus:"Mizo",mn:"Mongolian",my:"Myanmar (Burmese)",ne:"Nepali",no:"Norwegian",or:"Odia (Oriya)",om:"Oromo",ps:"Pashto",fa:"Persian",pl:"Polish",pt:"Portuguese",pa:"Punjabi",qu:"Quechua",ro:"Romanian",ru:"Russian",sm:"Samoan",sa:"Sanskrit",gd:"Scots Gaelic",nso:"Sepedi",sr:"Serbian",st:"Sesotho",sn:"Shona",sd:"Sindhi",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:
${r}`})},start(){this.preSend=Ht((e,t)=>this.unindentMsg(t)),this.preEdit=br((e,t,n)=>this.unindentMsg(n))},stop(){zt(this.preSend),Tr(this.preEdit)}})});var ag,Zx,lg,Xx=g(()=>{"use strict";a();Pt();$t();P();w();A();ag=1<<2,Zx=(e,{channel:t,message:{author:n,embeds:r,flags:i,id:s}})=>()=>{let l=(i&ag)!==0;if(!l&&!r.length)return;let c=t.isPrivate()||!!(Ce.getChannelPermissions({id:t.id})&Se.EMBED_LINKS);if(n.id===W.getCurrentUser().id&&!c)return;let u=mt("delete",e),p=u?.findIndex(m=>m?.props?.id==="delete");!p||!u||u.splice(p-1,0,o(G.MenuItem,{id:"unsuppress-embeds",key:"unsuppress-embeds",label:l?"Unsuppress Embeds":"Suppress Embeds",color:l?void 0:"danger",icon:l?Aa:Na,action:()=>Mt.patch({url:`/channels/${t.id}/messages/${s}`,body:{flags:l?i&~ag:i|ag}})}))},lg=y({name:"UnsuppressEmbeds",authors:[d.rad,d.HypedDomi],description:"Allows you to unsuppress embeds in messages",start(){ce("message",Zx)},stop(){de("message",Zx)}})});var cg,Jx=g(()=>{"use strict";a();Qt();Ca();P();w();cg=y({name:"UrbanDictionary",description:"Search for a word on Urban Dictionary via /urban slash command",authors:[d.jewdev],dependencies:["CommandsAPI"],commands:[{name:"urban",description:"Returns the definition of a word from Urban Dictionary",inputType:0,options:[{type:3,name:"word",description:"The word to search for on Urban Dictionary",required:!0}],execute:async(e,t)=>{try{let n=encodeURIComponent(e[0].value),{list:[r]}=await(await fetch(`https://api.urbandictionary.com/v0/define?term=${n}`)).json();if(!r)return void ue(t.channel.id,{content:"No results found."});let i=s=>s.replaceAll(`\r
`).replace(/([*>_`~\\])/gsi,"\\$1").replace(/\[(.+?)\]/g,(l,c)=>`[${c}](https://www.urbandictionary.com/define.php?term=${encodeURIComponent(c)} "Define '${c}' on Urban Dictionary")`).trim();returnvoidue(t.channel.id,{embeds:[{type:"rich",author:{name:`Uploaded by "${r.author}"`,url:`https://www.urbandictionary.com/author.php?author=${encodeURIComponent(r.author)}`},title:r.word,url:`https://www.urbandictionary.com/define.php?term=${encodeURIComponent(r.word)}`,description:i(r.definition),fields:[{name:"Example",value:i(r.example)},{name:"Want more definitions?",value:`Check out [more definitions](https://www.urbandictionary.com/define.php?term=${n} "Define "${e[0].value}" on Urban Dictionary") on Urban Dictionary.`}],color:16750848,footer:{text:`\u{1F44D} ${r.thumbs_up.toString()} | \u{1F44E} ${r.thumbs_down.toString()}`,icon_url:"https://www.urbandictionary.com/favicon.ico"},timestamp:newDate(r.written_on).toISOString()}]})}catch(n){ue(t.channel.id,{content:`Something went wrong: \`${n}\``})}}}]})});varQx=g(()=>{});varKC,YC,ZC,Vx,e2=g(()=>{"use strict";a();Qx();j();A();KC=I("selectChannel","selectVoiceChannel"),YC=Pi(".lastSection","children:"),ZC=1n<<20n,Vx=({channel:e,label:t,showHeader:n})=>o(YC,null,n&&o(S.FormTitle,{className:"vc-uvs-header"},"In a voice channel"),o(R,{className:"vc-uvs-button",color:R.Colors.TRANSPARENT,size:R.Sizes.SMALL,onClick:()=>{Ce.can(ZC,e)?KC.selectVoiceChannel(e.id):ee.show({message:"Insufficient permissions to enter the channel.",id:"user-voice-show-insufficient-permissions",type:ee.Type.FAILURE,options:{position:ee.Position.BOTTOM}})}},t))});varXC,ug,t2,pg,n2=g(()=>{"use strict";a();$();le();P();w();j();A();e2();XC=Me("VoiceStateStore"),ug=D({showInUserProfileModal:{type:3,description:"Show a user's voice channel in their profile modal",default:!0},showVoiceChannelSectionHeader:{type:3,description:'Whether to show "IN A VOICE CHANNEL" above the join button',default:!0}}),t2=_.wrap(({user:e})=>{let{channelId:t}=XC.getVoiceStateForUser(e.id)??{};if(!t)returnnull;letn=Q.getChannel(t);if(!n)returnnull;letr=Te.getGuild(n.guild_id);if(!r)returnnull;leti=`${r.name} | ${n.name}`;returno(Vx,{channel:n,label:i,showHeader:ug.store.showVoiceChannelSectionHeader})}),pg=y({name:"UserVoiceShow",description:"Shows whether a User is currently in a voice channel somewhere in their profile",authors:[d.LordElias],settings:ug,patchModal({user:e}){returnug.store.showInUserProfileModal?o("div",{className:"vc-uvs-modal-margin"},o(t2,{user:e})):null},patchPopout:({user:e})=>{lett=e.id===W.getCurrentUser().id;returno("div",{className:t?"vc-uvs-popout-margin-self":""},o(t2,{user:e}))},patches:[{find:".lastEditedByContainer",replacement:{match:/\(0,\i\.jsx\)\(\i\.\i,{user:\i,setNote/,replace:"$self.patchPopout(arguments[0]),$&"}},{find:".USER_PROFILE_MODAL",replacement:{match:/\.body.+?displayProfile:\i}\),/,replace:"$&$self.patchModal(arguments[0]),"}}]})});varo2,r2=g(()=>{a();(window.VencordStyles??=newMap).set("src/plugins/usrbg/index.css",{name:"src/plugins/usrbg/index.css",source:`:is([class*="userProfile"], [class*="userPopout"]) [class*="bannerPremium"] {
`,classNames:{},dom:null});o2="src/plugins/usrbg/index.css"});var JC,vo,jl,dg,i2=g(()=>{"use strict";a();$();Je();lo();P();w();r2();JC="https://raw.githubusercontent.com/AutumnVN/usrbg/main/usrbg.json",vo={},jl=D({nitroFirst:{description:"Banner to use if both Nitro and USRBG banners are present",type:4,options:[{label:"Nitro banner",value:!0,default:!0},{label:"USRBG banner",value:!1}]},voiceBackground:{description:"Use USRBG banners as voice chat backgrounds",type:3,default:!0,restartNeeded:!0}}),dg=y({name:"USRBG",description:"Displays user banners from USRBG, allowing anyone to get a banner without Nitro",authors:[d.AutumnVN,d.pylix,d.TheKodeToad],settings:jl,patches:[{find:".NITRO_BANNER,",replacement:[{match:/(\i)\.premiumType/,replace:"$self.premiumHook($1)||$&"},{match:/(?<=function \i\((\i)\)\{)(?=var.{30,50},bannerSrc:)/,replace:"$1.bannerSrc=$self.useBannerHook($1);"},{match:/\?\(0,\i\.jsx\)\(\i,{type:\i,shown/,replace:"&&$self.shouldShowBadge(arguments[0])$&"}]},{find:'"data-selenium-video-tile":',predicate:()=>jl.store.voiceBackground,replacement:[{match:/(?<=function\((\i),\i\)\{)(?=let.{20,40},style:)/,replace:"$1.style=$self.voiceBackgroundHook($1);"}]}],data:vo,settingsAboutComponent:()=>o(st,{href:"https://github.com/AutumnVN/usrbg#how-to-request-your-own-usrbg-banner"},"CLICK HERE TO GET YOUR OWN BANNER"),voiceBackgroundHook({className:e,participantUserId:t}){if(e.includes("tile_")&&vo[t])return{backgroundImage:`url(${vo[t]})`,backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"}},useBannerHook({displayProfile:e,user:t}){if(!(e?.banner&&jl.store.nitroFirst)&&vo[t.id])return vo[t.id]},premiumHook({userId:e}){if(vo[e])return 2},shouldShowBadge({displayProfile:e,user:t}){return e?.banner&&(!vo[t.id]||jl.store.nitroFirst)},async start(){St(o2);let e=await fetch(JC);e.ok&&(vo=await e.json(),this.data=vo)}})});function QC({data:e,UserMention:t,RoleMention:n,parse:r,props:i}){let[s,l]=J(e.userId);if(s)return o(t,{className:"mention",userId:s,channelId:e.channelId,inlinePreview:i.noStyleAndInteraction,key:i.key});let c=r(e.content,i);return o(n,{...e,inlinePreview:i.formatInline},o("span",{onMouseEnter:()=>{let u=c?.[0]?.props?.children;if(typeof u!="string")return;let p=u.match(/<@!?(\d+)>/)?.[1];if(!p||Wl.has(p))return;if(W.getUser(p))return l(p);let m=()=>{Wl.add(p),s2.unshift(()=>Rt.getUser(p).then(()=>{l(p),Wl.delete(p)}).catch(h=>{h?.status===429&&(s2.unshift(()=>Mo(1e3).then(m)),Wl.delete(p))}).finally(()=>Mo(300)))};m()}},c))}var Wl,s2,mg,a2=g(()=>{"use strict";a();le();P();Re();jr();w();A();Wl=new Set,s2=new kn(5);mg=y({name:"ValidUser",description:"Fix mentions for unknown users showing up as '<@343383572805058560>' (hover over a mention to fix it)",authors:[d.Ven],tags:["MentionCacheFix"],patches:[{find:'className:"mention"',replacement:{match:/react(?=\(\i,\i,\i\).{0,50}return null==\i\?\(0,\i\.jsx\)\((\i\.\i),.+?jsx\)\((\i\.\i),\{className:"mention")/,replace:"react:(...args)=>$self.renderMention($1,$2,...args),originalReact"}}],renderMention(e,t,n,r,i){return o(_,{noop:!0},o(QC,{RoleMention:e,UserMention:t,data:n,parse:r,props:i}))}})});var fg,gg,l2=g(()=>{"use strict";a();P();w();A();fg={},gg=y({name:"VoiceChatDoubleClick",description:"Join voice chats via double click instead of single click",authors:[d.Ven,d.D3SOX],patches:[...[".handleVoiceStatusClick",".handleClickChat"].map(e=>({find:e,replacement:[{match:/onClick:\(\)=>\{this.handleClick\(\)/g,replace:"onClick:()=>{$self.schedule(()=>{this.handleClick()},this)"}]})),{find:".shouldCloseDefaultModals",replacement:{match:/onClick:(\i)(?=,.{0,30}className:"channelMention".+?(\i)\.inContent)/,replace:(e,t,n)=>`onClick:(vcDoubleClickEvt)=>$self.shouldRunOnClick(vcDoubleClickEvt,${n})&&${t}()`}}],shouldRunOnClick(e,{channelId:t}){let n=Q.getChannel(t);return!n||![2,13].includes(n.type)?!0:e.detail>=2},schedule(e,t){let n=t.props.channel.id;if(Pe.getVoiceChannelId()===n){e();return}let r=fg[n]??={timeout:void 0,i:0};clearTimeout(r.timeout),++r.i>=2?(e(),delete fg[n]):r.timeout=setTimeout(()=>{delete fg[n]},500)}})});fun
`)}var xi,B2,Fg=g(()=>{"use strict";a();$();document.addEventListener("DOMContentLoaded",()=>{Uk(),Ql(),Og(E.useQuickCss),Wi("useQuickCss",Og),Wi("themeLinks",Ql),Wi("enabledThemes",Ql),VencordNative.quickCss.addThemeChangeListener(Ql)})});var Ug={};Be(Ug,{Common:()=>fc,_initWebpack:()=>Ys,_resolveReady:()=>Ks,addListener:()=>J2,cache:()=>Jn,extract:()=>Zs,filters:()=>Ke,find:()=>Ot,findAll:()=>rr,findBulk:()=>rc,findByCode:()=>jg,findByCodeLazy:()=>Pi,findByProps:()=>pn,findByPropsLazy:()=>I,findComponentByCode:()=>qg,findComponentByCodeLazy:()=>Xe,findComponentLazy:()=>sc,findExportedComponentLazy:()=>ac,findLazy:()=>un,findModuleId:()=>ic,findStore:()=>Wg,findStoreLazy:()=>Me,listeners:()=>oc,onceReady:()=>nc,removeListener:()=>Q2,search:()=>lc,subscriptions:()=>zg,waitFor:()=>ut,wreq:()=>Mn});var Vl=g(()=>{"use strict";a();A();j()});function U2(e){function t(n){try{$2(n[1])}catch(r){xn.error("Error in handlePush",r)}return t.$$vencordOriginal.call(e,n)}t.$$vencordOriginal=e.push,t.bind=(...n)=>t.$$vencordOriginal.bind(...n),Object.defineProperty(e,"push",{get:()=>t,set(n){t.$$vencordOriginal=n},configurable:!0})}function $2(e){let{subscriptions:t,listeners:n}=Vencord.Webpack,{patches:r}=Vencord.Plugins;for(let i in e){let s=e[i],l="0,"+s.toString().replaceAll(`
`,""),c=s,u=new Set,p=e[i]=function(m,h,v){try{s(m,h,v)}catch(M){if(s===c)throw M;return xn.error("Error in patched chunk",M),void c(m,h,v)}if(h=m.exports,!h)return;if(h===window){Object.defineProperty(v.c,i,{value:v.c[i],enumerable:!1,configurable:!0,writable:!0});return}let T=Number(i);for(let M of n)try{M(h,T)}catch(b){xn.error("Error in webpack listener",b)}for(let[M,b]of t)try{M(h)?(t.delete(M),b(h,T)):h.default&&M(h.default)&&(t.delete(M),b(h.default,T))}catch(x){xn.error("Error while firing callback for webpack chunk",x)}};p.toString=()=>s.toString(),p.original=c;for(let m=0;m<r.length;m++){let h=r[m],v=$n(`patchby${h.plugin}`,(T,M)=>l.replace(T,M));if(!(h.predicate&&!h.predicate())&&l.includes(h.find)){u.add(h.plugin);let T=s,M=l;for(let b of h.replacement){if(b.predicate&&!b.predicate())continue;let x=s,N=l;us(b,h.plugin);try{let k=v(b.match,b.replace);if(k===l){if(h.noWarn||xn.warn(`Patchby${h.plugin}hadnoeffect(Moduleidis${i}):${b.match}`),h.group){xn.warn(`Undoingpatch${h.find}by${h.plugin}becausereplacement${b.match}hadnoeffect`),l=M,s=T,u.delete(h.plugin);break}}else l=k,s=(0,eval)(`// Webpack Module ${i} - Patched by ${[...u].join(", ")}
${k}
//# sourceURL=WebpackModule${i}`)}catch(k){if(xn.error(`Patch by ${h.plugin} errored (Module id is ${i}): ${b.match}
`,k),u.delete(h.plugin),h.group){xn.warn(`Undoingpatch${h.find}by${h.plugin}becausereplacement${b.match}errored`),l=M,s=T;break}l=N,s=x}}h.all||r.splice(m--,1)}}}}var F2,xn,G2=g(()=>{"use strict";a();P();Ze();ps();qs();Vl();xn=new ie("WebpackInterceptor","#8caaee");window[jn]?(xn.info(`Patching${jn}.push(wasalreadyexistent,likelyfromcache!)`),Ys(window[jn]),U2(window[jn])):(Object.defineProperty(window,jn,{get:()=>F2,set:e=>{e?.push&&(e.push.$$vencordOriginal||(xn.info(`Patching${jn}.push`),U2(e)),Ys(e)&&(xn.info("Successfully initialised Vencord webpack"),delete window[jn],window[jn]=e)),F2=e},configurable:!0}),Object.defineProperty(Function.prototype,"m",{set(e){new Error().stack?.includes("discord.com")&&(xn.info("Found webpack module factory"),$2(e),delete Function.prototype.m),Object.defineProperty(this,"m",{value:e,configurable:!0})},configurable:!0}))});var Hk={};Be(Hk,{Api:()=>Eg,PlainSettings:()=>Kn,Plugins:()=>Uu,QuickCss:()=>Bg,Settings:()=>E,Updater:()=>cu,Util:()=>Dg,Webpack:()=>Ug});async function $k(){if(E.cloud.authenticated&&await It("Vencord_cloudSecret")===null){Ie({title:"Cloud Integrations",body:"We've noticed you have cloud integrations enabled in another client! Due to limitations, you will need to re-authenticate to continue using them. Click here to go to the settings page to do so!",color:"var(--yellow-360)",onClick:()=>Qn.open("VencordCloud")});return}E.cloud.settingsSync&&E.cloud.authenticated&&(mr.Vencord_settingsDirty?(await Kr(),delete mr.Vencord_settingsDirty):await xa(!1)&&Ie({title:"Cloud Settings",body:"Your settings have been updated! Click here to restart to fully apply changes!",color:"var(--green-360)",onClick:ln}))}async function Gk(){await nc,rs("WebpackReady"),$k();try{if(!await Zr())return;if(E.autoUpdate){await Xr(),E.autoUpdateNotification&&setTimeout(()=>Ie({title:"Vencord has been updated!",body:"Click here to restart",permanent:!0,noPersist:!0,onClick:ln}),1e4);return}E.notifyAboutUpdates&&setTimeout(()=>Ie({title:"A Vencord update is available!",body:"Click here to view the update",permanent:!0,noPersist:!0,onClick(){Qn.open("VencordUpdater")}}),1e4)}catch(e){hr.error("Failed to check for updates",e)}}var mx=g(()=>{a();as();Oa();_2();Fg();yr();Vl();Fg();G2();w();Wn();Ao();$();Oa();ca();Ro();ji();yr();Vl();A();rs("Init");Gk();document.addEventListener("DOMContentLoaded",()=>{rs("DOMContentLoaded")},{once:!0})});mx();return To(Hk);})();