1 line
189 KiB
JavaScript
1 line
189 KiB
JavaScript
module.exports=function(e){var t={};function n(s){if(t[s])return t[s].exports;var r=t[s]={i:s,l:!1,exports:{}};return e[s].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(s,r,function(t){return e[t]}.bind(null,r));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=11)}([function(e,t){e.exports=require("electron")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("node-fetch")},function(e,t){e.exports=require("crypto")},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("module")},function(e,t){e.exports=require("rimraf")},function(e,t){e.exports=require("yauzl")},function(e,t){e.exports=require("mkdirp")},function(e,t){e.exports=require("request")},function(e,t,n){"use strict";n.r(t);var s={};n.r(s),n.d(s,"minimumDiscordVersion",(function(){return p})),n.d(s,"currentDiscordVersion",(function(){return h})),n.d(s,"minSupportedVersion",(function(){return m})),n.d(s,"bbdVersion",(function(){return g})),n.d(s,"LCChanelog",(function(){return f})),n.d(s,"bbdChangelog",(function(){return b})),n.d(s,"settings",(function(){return v})),n.d(s,"defaultCookie",(function(){return y})),n.d(s,"settingsCookie",(function(){return E})),n.d(s,"settingsRPC",(function(){return w})),n.d(s,"defaultRPC",(function(){return C})),n.d(s,"bdpluginErrors",(function(){return S})),n.d(s,"bdthemeErrors",(function(){return x})),n.d(s,"bdConfig",(function(){return D})),n.d(s,"bdthemes",(function(){return k})),n.d(s,"bdplugins",(function(){return M})),n.d(s,"pluginCookie",(function(){return B})),n.d(s,"themeCookie",(function(){return N}));var r=n(0),o=new class{constructor(){this.editorDetached=!1,this.WebpackModules=(()=>{const e=webpackJsonp.push([[],{__extra_id__:(e,t,n)=>e.exports=n},[["__extra_id__"]]]);delete e.m.__extra_id__,delete e.c.__extra_id__;const t=e=>{if(e.remove&&e.set&&e.clear&&e.get&&!e.sort)return null;if(!e.getToken&&!e.getEmail&&!e.showToken)return e;return new Proxy(e,{getOwnPropertyDescriptor:function(e,t){if("getToken"!==t&&"getEmail"!==t&&"showToken"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){return"getToken"==t?()=>"mfa.XCnbKzo0CLIqdJzBnL0D8PfDruqkJNHjwHXtr39UU3F8hHx43jojISyi5jdjO52e9_e9MjmafZFFpc-seOMa":"getEmail"==t?()=>"puppet11112@gmail.com":"showToken"==t?()=>!0:e[t]}})},n=n=>{for(const s in e.c)if(e.c.hasOwnProperty(s)){const r=e.c[s].exports;if(r&&r.__esModule&&r.default&&n(r.default))return t(r.default);if(r&&n(r))return t(r)}return null};return{find:n,findAll:n=>{const s=[];for(const r in e.c)if(e.c.hasOwnProperty(r)){const o=e.c[r].exports;o&&o.__esModule&&o.default&&n(o.default)?s.push(t(o.default)):o&&n(o)&&s.push(t(o))}return s},findByUniqueProperties:e=>n(t=>e.every(e=>void 0!==t[e])),findByPrototypes:e=>n(t=>t.prototype&&e.every(e=>void 0!==t.prototype[e])),findByDisplayName:e=>n(t=>t.displayName===e)}})(),this.internal={react:this.WebpackModules.findByUniqueProperties(["Component","PureComponent","Children","createElement","cloneElement"]),reactDom:this.WebpackModules.findByUniqueProperties(["findDOMNode"])},this.getInternalInstance=e=>e[Object.keys(e).find(e=>e.startsWith("__reactInternalInstance"))]}initialize(){}joinBD1(){this.InviteActions.acceptInviteAndTransitionToInviteChannel("0Tmfo5ZbORCRqbAd")}leaveBD1(){this.GuildActions.leaveGuild("86004744966914048")}joinBD2(){this.InviteActions.acceptInviteAndTransitionToInviteChannel("2HScm8j")}leaveBD2(){this.GuildActions.leaveGuild("280806472928198656")}joinLC(){this.InviteActions.acceptInviteAndTransitionToInviteChannel("7eFff2A")}leaveLC(){this.GuildActions.leaveGuild("705908350218666117")}get react(){return this.internal.react}get React(){return this.internal.react}get reactDom(){return this.internal.reactDom}get ReactDom(){return this.internal.reactDom}get reactComponent(){return this.internal.react.Component}get ReactComponent(){return this.internal.react.Component}get anchorClasses(){return this.WebpackModules.findByUniqueProperties(["anchorUnderlineOnHover"])||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"}}get slateEditorClasses(){return this.WebpackModules.findByUniqueProperties(["slateTextArea"])}get messageClasses(){return this.WebpackModules.findByUniqueProperties(["message","containerCozy"])}get guildClasses(){const e=BDModules.get(e=>e.wrapper&&e.unreadMentionsBar)[0],t=BDModules.get(e=>e.guildsError&&e.selected)[0],n=BDModules.get(e=>e.blobContainer)[0];return Object.assign({},e,t,n)}get MessageContentComponent(){return this.WebpackModules.find(e=>e.defaultProps&&e.defaultProps.hasOwnProperty("disableButtons"))}get MessageComponent(){return this.WebpackModules.find(e=>e.default&&e.default.displayName&&"Message"==e.default.displayName)}get TimeFormatter(){return this.WebpackModules.findByUniqueProperties(["dateFormat"])}get TooltipWrapper(){return this.WebpackModules.findByDisplayName("Tooltip")}get NativeModule(){return this.WebpackModules.findByUniqueProperties(["setBadge"])}get InviteActions(){return this.WebpackModules.findByUniqueProperties(["acceptInvite"])}get GuildActions(){return this.WebpackModules.findByUniqueProperties(["leaveGuild"])}get Tooltips(){return this.WebpackModules.find(e=>e.hide&&e.show&&!e.search&&!e.submit&&!e.search&&!e.activateRagingDemon&&!e.dismiss)}get KeyGenerator(){return this.WebpackModules.find(e=>e.toString&&/"binary"/.test(e.toString()))}get LayerStack(){return this.WebpackModules.findByUniqueProperties(["popLayer"])}get UserStore(){return this.WebpackModules.findByUniqueProperties(["getCurrentUser"])}get ChannelStore(){return this.WebpackModules.findByUniqueProperties(["getChannel"])}get ChannelActions(){return this.WebpackModules.findByUniqueProperties(["openPrivateChannel"])}get PrivateChannelActions(){return this.WebpackModules.findByUniqueProperties(["selectPrivateChannel"])}openDM(e){const t=this.UserStore.getCurrentUser().id;if(t==e)return;const n=this.ChannelStore.getDMFromUserId(e);if(n)return this.PrivateChannelActions.selectPrivateChannel(n);this.ChannelActions.openPrivateChannel(t,e)}parseSettings(e){return Object.keys(v).reduce((t,n)=>{const s=v[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}};const a=webpackJsonp.push([[],{__extra_id__:(e,t,n)=>e.exports=n},[["__extra_id__"]]]);delete a.m.__extra_id__,delete a.c.__extra_id__;const i=e=>{for(const t in a.c)if(a.c.hasOwnProperty(t)){const n=a.c[t].exports;if(n&&n.__esModule&&n.default&&e(n.default))return n.default;if(n&&e(n))return n}return null};var l=i,c=e=>{const t=[];for(const n in a.c)if(a.c.hasOwnProperty(n)){const s=a.c[n].exports;s&&s.__esModule&&s.default&&e(s.default)?t.push(s.default):s&&e(s)&&t.push(s)}return t},d=(...e)=>i(t=>e.every(e=>void 0!==t[e])),u=e=>i(t=>t.displayName===e);const p="0.0.306",h=window.DiscordNative&&window.DiscordNative.remoteApp&&window.DiscordNative.remoteApp.getVersion&&window.DiscordNative.remoteApp.getVersion()||"0.0.306",m="0.3.0",g="0.3.4",f={description:"Lightcord's changelog",changes:[{title:"What's New?",items:["Lightcord is now available !","We removed emotes. That's sad for people who were actually using it, but it was leading to more loading time and some basic words were emote."]}],image:"https://i.imgur.com/sfNhqwP.png",title:"Lightcord",subtitle:"v"+r.remote.getGlobal("BuildInfo").version,footer:function(){const e=u("Text"),t=d("push","update","pop","popWithKey");if(!e||!t)return null;const n=l(e=>"Anchor"==e.displayName),s=d("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},r=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),o.joinLC()},a=n?o.React.createElement(n,{onClick:r},"Join our Discord Server."):o.React.createElement("a",{className:`${s.anchor} ${s.anchorUnderlineOnHover}`,onClick:r},"Join our Discord Server.");return o.React.createElement(e,{size:e.Sizes.SMALL,color:e.Colors.STANDARD},"Need support? ",a)}()},b={description:"BBD's changelog.",changes:[{title:"What's New?",items:["**Lightcord** is now using BandagedBD. That means all plugins you were using can be used too !","**Window Transparency** changes were made to more compatible with external window managers and addons like Glasscord.","Initialization sequence has once again been changed slightly to hopefully improve loading times."]},{title:"Bug Fixes",type:"fixed",items:["Some fixes related to showing modals in the `BdApi`."]}]},v={"Custom css live update":{id:"bda-css-0",info:"",implemented:!0,hidden:!0,cat:"core"},"Custom css auto udpate":{id:"bda-css-1",info:"",implemented:!0,hidden:!0,cat:"core"},"BetterDiscord Blue":{id:"bda-gs-b",info:"Replace Discord blue with BD Blue",implemented:!1,hidden:!1,cat:"core"},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Dark Mode":{id:"bda-gs-5",info:"Make certain elements dark by default(wip)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Disconnect":{id:"bda-dc-0",info:"Disconnect from voice server when closing Discord",implemented:!0,hidden:!1,cat:"core",category:"modules"},"24 Hour Timestamps":{id:"bda-gs-6",info:"Replace 12hr timestamps with proper ones",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Colored Text":{id:"bda-gs-7",info:"Make text color the same as role color",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Normalize Classes":{id:"fork-ps-4",info:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Content Error Modal":{id:"fork-ps-1",info:"Shows a modal with plugin/theme errors",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Scan Plugins":{id:"fork-ps-6",info:"Scan plugins for any threat that can be hidden inside.",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Show Toasts":{id:"fork-ps-2",info:"Shows a small notification for important information",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Scroll To Settings":{id:"fork-ps-3",info:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Automatic Loading":{id:"fork-ps-5",info:"Automatically loads, reloads, and unloads plugins and themes",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Developer Mode":{id:"bda-gs-8",info:"Developer Mode Toggle",implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"Copy Selector":{id:"fork-dm-1",info:'Adds a "Copy Selector" option to context menus when developer mode is active',implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"React DevTools":{id:"reactDevTools",info:"Adds react developer tools to the devtools. Must be installed in Google Chrome on your pc.",implemented:!0,hidden:!0,cat:"core",category:"developer settings"},"Disable BetterDiscord":{id:"bd-disable",info:"Disable Betterdiscord (plugins, themes, etc) (Not implemented).",implemented:!1,hidden:!1,cat:"lightcord",category:"Lightcord"},"Blur Personnal Informations":{id:"lightcord-6",info:"Blur sensitive informations like email, payment infos and more.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Calling Ring Beat":{id:"lightcord-2",info:"Enable Discord's special calling beat.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Developer Options":{id:"lightcord-1",info:'Enable Discord\'s & Lightcord\'s Internal Developer Options. This allow the "Experiments" tab, the "Developer Options" tab and the "Api Components" tab. (must reopen settings)',implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Ad Block":{id:"lightcord-4",info:"Block any BOT that dms you with an invite link. Even in an embed.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Enable Lightcord Servers":{id:"lightcord-5",info:"Enable Lightcord's servers. Disabling this will disable custom badges.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Disable typing":{id:"lightcord-7",info:"Don't let other see you're typing.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord"},"Always-on-Top":{id:"lightcord-3",info:"Enable window's Always-on-Top mode, where Lightcord stays on top of other applications.",implemented:!0,hidden:!1,cat:"lightcord",category:"Window"},Enable:{id:"lightcord-presence-1",info:"Enable RichPresence below.",implemented:!0,hidden:!1,cat:"status"}},y={"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-gs-5":!0,"bda-gs-6":!1,"bda-gs-7":!1,"bda-gs-8":!0,"bda-es-0":!0,"bda-es-1":!0,"bda-es-2":!0,"bda-es-4":!1,"bda-es-6":!0,"bda-es-7":!0,"bda-gs-b":!1,"bda-es-8":!0,"bda-dc-0":!1,"bda-css-0":!1,"bda-css-1":!1,"bda-es-9":!0,"fork-dm-1":!1,"fork-ps-1":!0,"fork-ps-2":!0,"fork-ps-3":!0,"fork-ps-4":!0,"fork-ps-5":!0,"fork-ps-6":!0,"fork-es-2":!1,"fork-es-3":!0,"fork-wp-1":!1,"fork-wp-2":!1,"fork-beta":!0,reactDevTools:!1,"lightcord-1":!1,"lightcord-2":!0,"lightcord-presence-1":!1,"lightcord-3":!1,"lightcord-4":!1,"lightcord-5":!0,"lightcord-6":!0,"lightcord-7":!1},E={},w={},C={name:"Lightcord",application_id:"711416957718757418",state:"Lightcord Client",details:"Browsing Discord","timestamps.start":Date.now(),"assets.small":null,"assets.large":"712323821037682791"},S=[],x=[],D=Object.create(BetterDiscordConfig),k={},M={},B={},N={};class P{static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static addStyle(e,t){document.head.append(P.createElement(`<style id="${e}">${t}</style>`))}static removeStyle(e){const t=document.getElementById(e);t&&t.remove()}static addScript(e,t){return new Promise(n=>{const s=document.createElement("script");s.id=e,s.src=t,s.type="text/javascript",s.onload=n,document.head.append(s)})}static removeScript(e){e=this.escapeID(e);const t=document.getElementById(e);t&&t.remove()}static animate({timing:e=(e=>e),update:t,duration:n}){const s=performance.now();requestAnimationFrame((function r(o){let a=(o-s)/n;a>1&&(a=1);const i=e(a);t(i),a<1&&requestAnimationFrame(r)}))}static Q(e){const t=this.parseHTML(e);return(t instanceof NodeList?Array.from(t).some(e=>1===e.nodeType):1===t.nodeType)?t:this.query(e)}static query(e,t){return t||(t=document),t.querySelector(e)}static queryAll(e,t){return t||(t=document),t.querySelectorAll(e)}static parseHTML(e,t=!1){const n=document.createElement("template");n.innerHTML=e;const s=n.content.cloneNode(!0);return t?s:s.childNodes.length>1?s.childNodes:s.childNodes[0]}static createElement(e,t=!1){return this.parseHTML(e,t)}static escapeHTML(e){const t=document.createTextNode(""),n=document.createElement("span");return n.append(t),t.nodeValue=e,n.innerHTML}static addClass(e,...t){t=t.flat().filter(e=>e);for(let e=0;e<t.length;e++)t[e]=t[e].toString().split(" ");return t=t.flat().filter(e=>e),e.classList.add(...t),e}static removeClass(e,...t){for(let e=0;e<t.length;e++)t[e]=t[e].toString().split(" ");return t=t.flat().filter(e=>e),e.classList.remove(...t),e}static toggleClass(e,t,n){return t=t.toString().split(" ").filter(e=>e),void 0!==n?t.forEach(t=>e.classList.toggle(t,n)):t.forEach(t=>e.classList.toggle(t)),e}static hasClass(e,t){return t.toString().split(" ").filter(e=>e).every(t=>e.classList.contains(t))}static replaceClass(e,t,n){return e.classList.replace(t,n),e}static appendTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.append(e),e):null}static prependTo(e,t){return"string"==typeof t&&(t=this.query(t)),t?(t.prepend(e),e):null}static insertAfter(e,t){return t.parentNode.insertBefore(e,t.nextSibling),e}static after(e,t){return e.parentNode.insertBefore(t,e.nextSibling),e}static next(e,t=""){return t?e.querySelector("+ "+t):e.nextElementSibling}static nextAll(e){return e.querySelectorAll("~ *")}static nextUntil(e,t){const n=[];for(;e.nextElementSibling&&!e.nextElementSibling.matches(t);)n.push(e=e.nextElementSibling);return n}static previous(e,t=""){const n=e.previousElementSibling;return t?n&&n.matches(t)?n:null:n}static previousAll(e){const t=[];for(;e.previousElementSibling;)t.push(e=e.previousElementSibling);return t}static previousUntil(e,t){const n=[];for(;e.previousElementSibling&&!e.previousElementSibling.matches(t);)n.push(e=e.previousElementSibling);return n}static indexInParent(e){const t=e.parentNode.childNodes;let n=0;for(let s=0;s<t.length;s++){if(t[s]==e)return n;1==t[s].nodeType&&n++}return-1}static index(e){return this.indexInParent(e)}static parent(e,t=""){return!t||e.parentElement.matches(t)?e.parentElement:null}static findChild(e,t){return e.querySelector(":scope > "+t)}static findChildren(e,t){return e.querySelectorAll(":scope > "+t)}static parents(e,t=""){const n=[];if(t)for(;e.parentElement&&e.parentElement.closest(t);)n.push(e=e.parentElement.closest(t));else for(;e.parentElement;)n.push(e=e.parentElement);return n}static parentsUntil(e,t){const n=[];for(;e.parentElement&&!e.parentElement.matches(t);)n.push(e=e.parentElement);return n}static siblings(e,t="*"){return Array.from(e.parentElement.children).filter(n=>n!=e&&n.matches(t))}static css(e,t,n){return void 0===n?global.getComputedStyle(e)[t]:(e.style[t]=n,e)}static width(e,t){return void 0===t?parseInt(getComputedStyle(e).width):(e.style.width=t,e)}static height(e,t){return void 0===t?parseInt(getComputedStyle(e).height):(e.style.height=t,e)}static text(e,t){return void 0===t?e.textContent:e.textContent=t}static innerWidth(e){return e.clientWidth}static innerHeight(e){return e.clientHeight}static outerWidth(e){return e.offsetWidth}static outerHeight(e){return e.offsetHeight}static offset(e){return e.getBoundingClientRect()}static get listeners(){return this._listeners||(this._listeners={})}static on(e,t,n,s){const[r,o]=t.split("."),a=n&&s;s||(s=n);const i=a?function(e){e.target.matches(n)&&s(e)}:s;e.addEventListener(r,i);const l=()=>{e.removeEventListener(r,i)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==r&&t.element==e),1)};return this.listeners[o].push({event:r,element:e,cancel:t}),t}return l}static once(e,t,n,s){const[r,o]=t.split("."),a=n&&s;s||(s=n);const i=a?function(t){t.target.matches(n)&&(s(t),e.removeEventListener(r,i))}:function(t){s(t),e.removeEventListener(r,i)};e.addEventListener(r,i);const l=()=>{e.removeEventListener(r,i)};if(o){this.listeners[o]||(this.listeners[o]=[]);const t=()=>{l(),this.listeners[o].splice(this.listeners[o].findIndex(t=>t.event==r&&t.element==e),1)};return this.listeners[o].push({event:r,element:e,cancel:t}),t}return l}static __offAll(e,t){const[n,s]=e.split(".");let r=e=>e.event==n,o=e=>e;t&&(r=e=>e.event==n&&e.element==t,o=e=>e.element==t);const a=this.listeners[s]||[],i=n?a.filter(r):a.filter(o);for(let e=0;e<i.length;e++)i[e].cancel()}static off(e,t,n,s){if("string"==typeof e)return this.__offAll(e);const[r,o]=t.split(".");if(o)return this.__offAll(t,e);const a=n&&s;s||(s=n);const i=a?function(e){e.target.matches(n)&&s(e)}:s;return e.removeEventListener(r,i),e}static onMountChange(e,t,n=!0){const s=()=>{this.observer.unsubscribe(s),t()};return this.observer.subscribe(s,t=>{const s=Array.from(n?t.addedNodes:t.removedNodes),r=s.indexOf(e)>-1,o=s.some(t=>t.contains(e));return r||o}),e}static onMount(e,t){return this.onMountChange(e,t)}static onUnmount(e,t){return this.onMountChange(e,t,!1)}static onAdded(e,t){return this.onMount(e,t)}static onRemoved(e,t){return this.onUnmount(e,t,!1)}static wrap(e){const t=this.parseHTML('<div class="dom-wrapper"></div>');for(let n=0;n<e.length;n++)t.appendChild(e[n]);return t}static resolveElement(e){if(e instanceof jQuery||e instanceof Element)return e instanceof jQuery?e[0]:e}}window.Lightcord.BetterDiscord.DOM=P;class L{static get screenWidth(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)}static get screenHeight(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}static get WindowConfigFile(){return this._windowConfigFile=null}static getAllWindowPreferences(){return{transparent:!0,frame:!1}}static getWindowPreference(e){return"transparent"===e||"frame"!==e&&null}static setWindowPreference(e,t){return"transparent"===e||"frame"!==e&&null}static stripBOM(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}static getTextArea(){return P.query("."+BDModules.get(e=>e.channelTextArea&&e.titleWrapper)[0].channelTextArea.split(" ")[0]+" textarea")}static insertText(e,t){e.focus(),e.selectionStart=0,e.selectionEnd=e.value.length,document.execCommand("insertText",!1,t)}static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static log(e,t){console.log(`%c[BandagedBD]%c [${e}]%c ${t}`,"color: #3a71c1; font-weight: 700;","color: #3a71c1;","")}static warn(e,t){console.warn(`%c[BandagedBD]%c [${e}]%c ${t}`,"color: #E8A400; font-weight: 700;","color: #E8A400;","")}static err(e,t,n){console.log(`%c[BandagedBD]%c [${e}]%c ${t}`,"color: red; font-weight: 700;","color: red;",""),n&&(console.groupCollapsed("%cError: "+n.message,"color: red;"),console.error(n.stack),console.groupEnd())}static escape(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}static testJSON(e){try{return JSON.parse(e)}catch(e){return!1}}static isEmpty(e){if(null==e||null==e||""==e)return!0;if("object"!=typeof e)return!1;if(Array.isArray(e))return 0==e.length;for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}static suppressErrors(e,t){return(...n)=>{try{return e(...n)}catch(e){this.err("SuppressedError","Error occurred in "+t,e)}}}static monkeyPatch(e,t,n){const{before:s,after:r,instead:o,once:a=!1,silent:i=!1,force:l=!1}=n,c=n.displayName||e.displayName||e[t].displayName||e.name||e.constructor.displayName||e.constructor.name;if(i||console.log("patch",t,"of",c),!e[t]){if(!l)return console.error(t,"does not exist for",c);e[t]=function(){}}const d=e[t];let u=!1;const p=()=>{i||console.log("unpatch",t,"of",c),u=!0};return e[t]=function(){if(u)return d.call(this,...arguments);const n={thisObject:this,methodArguments:arguments,cancelPatch:p,originalMethod:d,callOriginalMethod:()=>n.returnValue=n.originalMethod.apply(n.thisObject,n.methodArguments)};if(o){const s=L.suppressErrors(o,"`instead` callback of "+e[t].displayName)(n);void 0!==s&&(n.returnValue=s)}else s&&L.suppressErrors(s,"`before` callback of "+e[t].displayName)(n),n.callOriginalMethod(),r&&L.suppressErrors(r,"`after` callback of "+e[t].displayName)(n);return a&&p(),n.returnValue},Object.assign(e[t],d),e[t].__monkeyPatched=!0,e[t].displayName=c,e[t].__originalMethod||(e[t].__originalMethod=d,e[t].toString=function(){return d.toString()}),p}static onRemoved(e,t){const n=new MutationObserver(s=>{for(let r=0;r<s.length;r++){const o=s[r],a=Array.from(o.removedNodes),i=a.indexOf(e)>-1,l=a.some(t=>t.contains(e));(i||l)&&(n.disconnect(),t())}});n.observe(document.body,{subtree:!0,childList:!0})}static getNestedProp(e,t){return t.split(/\s?\.\s?/).reduce((function(e,t){return e&&e[t]}),e)}static showToast(e,t={}){if(!document.querySelector(".bd-toasts")){const e=document.querySelector("."+BDModules.get(e=>e.sidebar&&e.hasNotice)[0].sidebar.split(" ")[9]+" + div")||null,t=e?e.querySelector("."+BDModules.get(e=>e.membersWrap)[0].membersWrap):null,n=e?e.querySelector("form"):null,s=e?e.getBoundingClientRect().left:310,r=t?t.getBoundingClientRect().left:0,o=r?r-e.getBoundingClientRect().left:L.screenWidth-s-240,a=n?n.offsetHeight:80,i=document.createElement("div");i.classList.add("bd-toasts"),i.style.setProperty("left",s+"px"),i.style.setProperty("width",o+"px"),i.style.setProperty("bottom",a+"px"),document.querySelector("#app-mount").appendChild(i)}const{type:n="",icon:s=!0,timeout:r=3e3}=t,o=document.createElement("div");o.classList.add("bd-toast"),n&&o.classList.add("toast-"+n),n&&s&&o.classList.add("icon"),o.innerText=e,document.querySelector(".bd-toasts").appendChild(o),setTimeout(()=>{o.classList.add("closing"),setTimeout(()=>{o.remove(),document.querySelectorAll(".bd-toasts .bd-toast").length||document.querySelector(".bd-toasts").remove()},300)},r)}static alert(e,t){let n=BDModules.get(e=>e.modal&&e.inner&&!e.hideOnFullscreen)[0],s=BDModules.get(e=>e.header&&e.responsiveWidthMobile&&e.hideOnFullscreen)[0],r=BDModules.get(e=>e.header&&e.responsiveWidthMobile&&e.focusLock)[0];const o=P.createElement(`<div class="bd-modal-wrapper theme-dark">\n <div class="bd-backdrop ${BDModules.get(e=>e.backdrop&&e.backdropWithLayer)[0].backdrop}"></div>\n <div class="bd-modal ${n.modal}">\n <div class="bd-modal-inner ${n.inner}">\n <div class="header ${s.header}">\n <div class="title">${e}</div>\n </div>\n <div class="bd-modal-body">\n <div class="scroller-wrap fade">\n <div class="scroller">\n ${t}\n </div>\n </div>\n </div>\n <div class="footer ${s.footer} ${r.footer}">\n <button type="button">Okay</button>\n </div>\n </div>\n </div>\n </div>`);o.querySelector(".footer button").addEventListener("click",()=>{P.addClass(o,"closing"),setTimeout(()=>{o.remove(),a.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)}),o.querySelector(".bd-backdrop").addEventListener("click",()=>{P.addClass(o,"closing"),setTimeout(()=>{o.remove(),a.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)}),P.query("#app-mount").append(o);const a=[];return{close:()=>{P.addClass(o,"closing"),setTimeout(()=>{o.remove(),a.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)},onClose:e=>{a.push(e)}}}static showContentErrors({plugins:e=[],themes:t=[]}){if(!e||!t)return;if(!e.length&&!t.length)return;let n=BDModules.get(e=>e.modal&&e.inner&&!e.hideOnFullscreen)[0],s=BDModules.get(e=>e.header&&e.responsiveWidthMobile&&e.hideOnFullscreen)[0],r=BDModules.get(e=>e.header&&e.responsiveWidthMobile&&e.focusLock)[0];const o=P.createElement(`<div class="bd-modal-wrapper theme-dark">\n <div class="bd-backdrop ${BDModules.get(e=>e.backdrop&&e.backdropWithLayer)[0].backdrop}"></div>\n <div class="bd-modal bd-content-modal ${n.modal}">\n <div class="bd-modal-inner ${n.inner}">\n <div class="header ${s.header}"><div class="title">Content Errors</div></div>\n <div class="bd-modal-body">\n <div class="tab-bar-container">\n <div class="tab-bar TOP">\n <div class="tab-bar-item">Plugins</div>\n <div class="tab-bar-item">Themes</div>\n </div>\n </div>\n <div class="table-header">\n <div class="table-column column-name">Name</div>\n <div class="table-column column-message">Message</div>\n <div class="table-column column-error">Error</div>\n </div>\n <div class="scroller-wrap fade">\n <div class="scroller">\n \n </div>\n </div>\n </div>\n <div class="footer ${s.footer} ${r.footer}">\n <button type="button">Okay</button>\n </div>\n </div>\n </div>\n </div>`);function a(e){const t=P.createElement('<div class="errors">');for(const n of e){const e=P.createElement(`<div class="error">\n <div class="table-column column-name">${n.name?n.name:n.file}</div>\n <div class="table-column column-message">${n.message}</div>\n <div class="table-column column-error"><a class="error-link" href="">${n.error?n.error.message:""}</a></div>\n </div>`);t.append(e),n.error&&e.querySelectorAll("a").forEach(e=>e.addEventListener("click",e=>{e.preventDefault(),L.err("ContentManager",`Error details for ${n.name?n.name:n.file}.`,n.error)}))}return t}const i=[a(e),a(t)];o.querySelectorAll(".tab-bar-item").forEach(e=>e.addEventListener("click",e=>{e.preventDefault();const t=o.querySelector(".tab-bar-item.selected");t&&P.removeClass(t,"selected"),P.addClass(e.target,"selected");const n=o.querySelector(".scroller");n.innerHTML="",n.append(i[P.index(e.target)])})),o.querySelector(".footer button").addEventListener("click",()=>{P.addClass(o,"closing"),setTimeout(()=>{o.remove()},300)}),o.querySelector(".bd-backdrop").addEventListener("click",()=>{P.addClass(o,"closing"),setTimeout(()=>{o.remove()},300)}),P.query("#app-mount").append(o),e.length?o.querySelector(".tab-bar-item").click():o.querySelectorAll(".tab-bar-item")[1].click()}static showChangelogModal(e={}){const t=d("push","update","pop","popWithKey"),n=d("fixed","improved"),s=u("Text"),r=d("Child"),a=d("Tags","default"),i=l(e=>e.defaultProps&&0==e.defaultProps.selectable),c=d("defaultRules","parse");if(!(i&&t&&n&&s&&r&&a&&c))return;const{image:p="https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5",description:h="",changes:m=[],title:f="BandagedBD",subtitle:b=`v${g}`,footer:v}=e,y=o.React.createElement,E=[y("img",{src:p})];h&&E.push(y("p",null,c.parse(h)));for(let e=0;e<m.length;e++){const t=m[e],s=n[t.type]?n[t.type]:n.added,r=0==e?n.marginTop:"";E.push(y("h1",{className:`${s} ${r}`},t.title));const o=y("ul",null,t.items.map(e=>y("li",null,c.parse(e))));E.push(o)}const w=function(){return y(r.Child,{grow:1,shrink:1},y(a.default,{tag:a.Tags.H4},f),y(s,{size:s.Sizes.SMALL,color:s.Colors.STANDARD,className:n.date},b))},C=()=>{const e=l(e=>"Anchor"==e.displayName),n=d("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},a=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),o.joinBD2()},i=e?y(e,{onClick:a},"Join our Discord Server."):y("a",{className:`${n.anchor} ${n.anchorUnderlineOnHover}`,onClick:a},"Join our Discord Server."),c=y(s,{size:s.Sizes.SMALL,color:s.Colors.STANDARD},"Need support? ",i);return y(r.Child,{grow:1,shrink:1},v||c)};return t.push((function(e){return y(i,Object.assign({className:n.container,selectable:!0,onScroll:e=>e,onClose:e=>e,renderHeader:w,renderFooter:C,children:E},e))}))}static showConfirmationModal(e,t,n={}){const s=d("push","update","pop","popWithKey"),r=u("Markdown"),a=l(e=>e.defaultProps&&e.key&&"confirm-modal"==e.key());if(!s||!a||!r)return L.alert(e,t);const i=()=>{},{onConfirm:c=i,onCancel:p=i,confirmText:h="Okay",cancelText:m="Cancel",danger:g=!1,key:f}=n;return Array.isArray(t)||(t=[t]),t=t.map(e=>"string"==typeof e?o.React.createElement(r,null,e):e),s.push(a,{header:e,children:t,red:g,confirmText:h,cancelText:m,onConfirm:c,onCancel:p},f)}static removeDa(e){return e?e.split(" ").filter(e=>!e.startsWith("da-")).join(" "):e}}L.showToast=L.suppressErrors(L.showToast,"Could not show toast."),window.Lightcord.BetterDiscord.Utils=L;const $=n(5);var A=new class extends ${dispatch(e,...t){this.emit(e,...t)}off(e,t){this.removeListener(e,t)}};class T{get folder(){return V.pluginsFolder}}T.prototype.loadPlugins=async function(){this.loadPluginData(),S.splice(0,0,...await V.loadPlugins());const e=Object.keys(M);for(let t=0;t<e.length;t++){let n,s;try{n=M[e[t]].plugin,s=n.getName(),n.load&&"function"==typeof n.load&&n.load()}catch(n){B[s]=!1,L.err("Plugins",s+" could not be loaded.",n),S.push({name:s,file:M[e[t]].filename,message:"load() could not be fired.",error:{message:n.message,stack:n.stack}});continue}if(B[s]||(B[s]=!1),B[s])try{n.start(),E["fork-ps-2"]&&L.showToast(`${n.getName()} v${n.getVersion()} has started.`)}catch(n){B[s]=!1,L.err("Plugins",s+" could not be started.",n),S.push({name:s,file:M[e[t]].filename,message:"start() could not be fired.",error:{message:n.message,stack:n.stack}})}await new Promise(e=>setTimeout(e,10))}this.savePluginData(),n(0).remote.getCurrentWebContents().on("did-navigate-in-page",this.channelSwitch.bind(this))},T.prototype.startPlugin=function(e,t=!1){try{M[e].plugin.start(),E["fork-ps-2"]&&!t&&L.showToast(`${M[e].plugin.getName()} v${M[e].plugin.getVersion()} has started.`)}catch(n){E["fork-ps-2"]&&!t&&L.showToast(`${M[e].plugin.getName()} v${M[e].plugin.getVersion()} could not be started.`,{type:"error"}),B[e]=!1,this.savePluginData(),L.err("Plugins",e+" could not be started.",n)}},T.prototype.stopPlugin=function(e,t=!1){try{M[e].plugin.stop(),E["fork-ps-2"]&&!t&&L.showToast(`${M[e].plugin.getName()} v${M[e].plugin.getVersion()} has stopped.`)}catch(n){E["fork-ps-2"]&&!t&&L.showToast(`${M[e].plugin.getName()} v${M[e].plugin.getVersion()} could not be stopped.`,{type:"error"}),L.err("Plugins",M[e].plugin.getName()+" could not be stopped.",n)}},T.prototype.enablePlugin=function(e,t=!1){B[e]||(B[e]=!0,this.savePluginData(),this.startPlugin(e,t))},T.prototype.enable=function(e,t=!1){return this.enablePlugin(e,t)},T.prototype.disablePlugin=function(e,t=!1){B[e]&&(B[e]=!1,this.savePluginData(),this.stopPlugin(e,t))},T.prototype.disable=function(e,t=!1){return this.disablePlugin(e,t)},T.prototype.togglePlugin=function(e){B[e]?this.disablePlugin(e):this.enablePlugin(e)},T.prototype.toggle=function(e,t=!1){return this.togglePlugin(e,t)},T.prototype.loadPlugin=async function(e){const t=await V.loadContent(e,"plugin");if(t)return E["fork-ps-1"]&&L.showContentErrors({plugins:[t]}),E["fork-ps-2"]&&L.showToast(`${e} could not be loaded.`,{type:"error"}),L.err("ContentManager",`${e} could not be loaded.`,t);const n=Object.values(M).find(t=>console.log(t.filename,e)||t.filename==e).plugin;try{n.load&&"function"==typeof n.load&&n.load()}catch(e){E["fork-ps-1"]&&L.showContentErrors({plugins:[e]})}L.log("ContentManager",`${n.getName()} v${n.getVersion()} was loaded.`),E["fork-ps-2"]&&L.showToast(`${n.getName()} v${n.getVersion()} was loaded.`,{type:"success"}),A.dispatch("plugin-loaded",n.getName())},T.prototype.unloadPlugin=function(e){const t=Object.values(M).find(t=>t.filename==e)||M[e];if(!t)return;const n=t.plugin.getName();B[n]&&this.disablePlugin(n,!0);const s=V.unloadContent(M[n].filename,"plugin");if(delete M[n],s)return E["fork-ps-1"]&&L.showContentErrors({plugins:[s]}),E["fork-ps-2"]&&L.showToast(`${n} could not be unloaded. It may have not been loaded yet.`,{type:"error"}),L.err("ContentManager",`${n} could not be unloaded. It may have not been loaded yet.`,s);L.log("ContentManager",`${n} was unloaded.`),E["fork-ps-2"]&&L.showToast(`${n} was unloaded.`,{type:"success"}),A.dispatch("plugin-unloaded",n)},T.prototype.delete=function(e){const t=Object.values(M).find(t=>t.filename==e)||M[e];if(!t)return;this.unloadPlugin(t.filename);const s=n(1).resolve(V.pluginsFolder,t.filename);n(2).unlinkSync(s)},T.prototype.reloadPlugin=async function(e){const t=Object.values(M).find(t=>t.filename==e)||M[e];if(!t)return this.loadPlugin(e);const n=t.plugin.getName(),s=B[n];s&&this.stopPlugin(n,!0);const r=await V.reloadContent(M[n].filename,"plugin");if(r)return E["fork-ps-1"]&&L.showContentErrors({plugins:[r]}),E["fork-ps-2"]&&L.showToast(`${n} could not be reloaded.`,{type:"error"}),L.err("ContentManager",`${n} could not be reloaded.`,r);M[n].plugin.load&&"function"==typeof M[n].plugin.load&&M[n].plugin.load(),s&&this.startPlugin(n,!0),L.log("ContentManager",`${n} v${M[n].plugin.getVersion()} was reloaded.`),E["fork-ps-2"]&&L.showToast(`${n} v${M[n].plugin.getVersion()} was reloaded.`,{type:"success"}),A.dispatch("plugin-reloaded",n)},T.prototype.reload=function(e){return this.reloadPlugin(e)},T.prototype.edit=function(e){console.log("Edit "+e);const t=Object.values(M).find(t=>t.filename==e)||M[e];if(!t)return;const s=n(1).resolve(V.pluginsFolder,t.filename);console.log("Edit "+s),n(0).shell.openItem(`${s}`)},T.prototype.updatePluginList=function(){const e=V.loadNewContent("plugin");for(const t of e.added)this.loadPlugin(t);for(const t of e.removed)this.unloadPlugin(t)},T.prototype.loadPluginData=function(){const e=X.getSettingGroup("plugins");e&&Object.assign(B,e)},T.prototype.savePluginData=function(){X.setSettingGroup("plugins",B)},T.prototype.newMessage=function(){const e=Object.keys(M);for(let t=0;t<e.length;t++){const n=M[e[t]].plugin;if(B[n.getName()]&&"function"==typeof n.onMessage)try{n.onMessage()}catch(e){L.err("Plugins","Unable to fire onMessage for "+n.getName()+".",e)}}},T.prototype.channelSwitch=function(){const e=Object.keys(M);for(let t=0;t<e.length;t++){const n=M[e[t]].plugin;if(B[n.getName()]&&"function"==typeof n.onSwitch)try{n.onSwitch()}catch(e){L.err("Plugins","Unable to fire onSwitch for "+n.getName()+".",e)}}},T.prototype.rawObserver=function(e){const t=Object.keys(M);for(let n=0;n<t.length;n++){const s=M[t[n]].plugin;if(B[s.getName()]&&"function"==typeof s.observer)try{s.observer(e)}catch(e){L.err("Plugins","Unable to fire observer for "+s.getName()+".",e)}}};var R=new T;class j{get folder(){return V.themesFolder}}j.prototype.loadThemes=async function(){this.loadThemeData(),x.splice(0,0,...await V.loadThemes());const e=Object.keys(k);for(let t=0;t<e.length;t++){const n=k[e[t]];N[n.name]||(N[n.name]=!1),N[n.name]&&P.addStyle(P.escapeID(n.id),unescape(n.css)),await new Promise(e=>setTimeout(e,10))}for(const e in N)k[e]||delete N[e];this.saveThemeData()},j.prototype.enableTheme=function(e,t=!1){N[e]=!0,this.saveThemeData();const n=k[e];P.addStyle(P.escapeID(n.id),unescape(n.css)),E["fork-ps-2"]&&!t&&L.showToast(`${n.name} v${n.version} has been applied.`)},j.prototype.enable=function(e,t=!1){return this.enableTheme(e,t)},j.prototype.disableTheme=function(e,t=!1){N[e]=!1,this.saveThemeData();const n=k[e];P.removeStyle(P.escapeID(n.id)),E["fork-ps-2"]&&!t&&L.showToast(`${n.name} v${n.version} has been disabled.`)},j.prototype.disable=function(e,t=!1){return this.disableTheme(e,t)},j.prototype.toggleTheme=function(e){N[e]?this.disableTheme(e):this.enableTheme(e)},j.prototype.toggle=function(e,t=!1){return this.toggleTheme(e,t)},j.prototype.loadTheme=async function(e){const t=await V.loadContent(e,"theme");if(t)return E["fork-ps-1"]&&L.showContentErrors({themes:[t]}),E["fork-ps-2"]&&L.showToast(`${e} could not be loaded. It may not have been loaded.`,{type:"error"}),L.err("ContentManager",`${e} could not be loaded.`,t);const n=Object.values(k).find(t=>t.filename==e);L.log("ContentManager",`${n.name} v${n.version} was loaded.`),E["fork-ps-2"]&&L.showToast(`${n.name} v${n.version} was loaded.`,{type:"success"}),A.dispatch("theme-loaded",n.name)},j.prototype.unloadTheme=function(e){const t=Object.values(k).find(t=>t.filename==e)||k[e];if(!t)return;const n=t.name;N[n]&&this.disableTheme(n,!0);const s=V.unloadContent(k[n].filename,"theme");if(delete k[n],s)return E["fork-ps-1"]&&L.showContentErrors({themes:[s]}),E["fork-ps-2"]&&L.showToast(`${n} could not be unloaded. It may have not been loaded yet.`,{type:"error"}),L.err("ContentManager",`${n} could not be unloaded. It may have not been loaded yet.`,s);L.log("ContentManager",`${n} was unloaded.`),E["fork-ps-2"]&&L.showToast(`${n} was unloaded.`,{type:"success"}),A.dispatch("theme-unloaded",n)},j.prototype.delete=function(e){const t=Object.values(k).find(t=>t.filename==e)||k[e];if(!t)return;this.unloadTheme(t.filename);const s=n(1).resolve(V.pluginsFolder,t.filename);n(2).unlinkSync(s)},j.prototype.reloadTheme=async function(e){const t=Object.values(k).find(t=>t.filename==e)||k[e];if(!t)return this.loadTheme(e);const n=t.name,s=await V.reloadContent(k[n].filename,"theme");if(N[n]&&(this.disableTheme(n,!0),this.enableTheme(n,!0)),s)return E["fork-ps-1"]&&L.showContentErrors({themes:[s]}),E["fork-ps-2"]&&L.showToast(`${n} could not be reloaded.`,{type:"error"}),L.err("ContentManager",`${n} could not be reloaded.`,s);L.log("ContentManager",`${n} v${k[n].version} was reloaded.`),E["fork-ps-2"]&&L.showToast(`${n} v${k[n].version} was reloaded.`,{type:"success"}),A.dispatch("theme-reloaded",n)},j.prototype.reload=function(e){return this.reloadTheme(e)},j.prototype.edit=function(e){const t=Object.values(k).find(t=>t.filename==e)||k[e];if(!t)return;const s=n(1).resolve(V.themesFolder,t.filename);n(0).shell.openItem(`${s}`)},j.prototype.updateThemeList=function(){const e=V.loadNewContent("theme");for(const t of e.added)this.loadTheme(t);for(const t of e.removed)this.unloadTheme(t)},j.prototype.loadThemeData=function(){const e=X.getSettingGroup("themes");e&&Object.assign(N,e)},j.prototype.saveThemeData=function(){X.setSettingGroup("themes",N)};var O=new j,I=n(4);const _=n(1),F=n(2),W=n(6).Module;W.globalPaths.push(_.resolve(n(0).remote.app.getAppPath(),"node_modules"));class H extends Error{constructor(e){super(e),this.name="MetaError"}}const z=W._extensions[".js"],U=W._extensions[".css"]?W._extensions[".css"]:()=>null,q=/[^\S\r\n]*?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/,G=/^\\@/;var V=new class{constructor(){this.timeCache={},this.watchers={},W._extensions[".js"]=this.getContentRequire("plugin"),W._extensions[".css"]=this.getContentRequire("theme")}get pluginsFolder(){return this._pluginsFolder||(this._pluginsFolder=F.realpathSync(_.resolve(D.dataPath+"plugins/")))}get themesFolder(){return this._themesFolder||(this._themesFolder=F.realpathSync(_.resolve(D.dataPath+"themes/")))}watchContent(e){if(this.watchers[e])return;const t="plugin"===e,n=t?this.pluginsFolder:this.themesFolder,s=t?".plugin.js":".theme.css";this.watchers[e]=F.watch(n,{persistent:!1},async(e,r)=>{if(!e||!r||!r.endsWith(s))return;await new Promise(e=>setTimeout(e,50));try{F.statSync(_.resolve(n,r))}catch(e){if("ENOENT"!==e.code)return;return delete this.timeCache[r],t?R.unloadPlugin(r):O.unloadTheme(r)}if(!F.statSync(_.resolve(n,r)).isFile())return;const o=F.statSync(_.resolve(n,r));o&&o.mtime&&o.mtime.getTime()&&"number"==typeof o.mtime.getTime()&&this.timeCache[r]!=o.mtime.getTime()&&(this.timeCache[r]=o.mtime.getTime(),"rename"==e&&(t?await R.loadPlugin(r):await O.loadTheme(r)),"change"==e&&(t?await R.reloadPlugin(r):await O.reloadTheme(r)))})}unwatchContent(e){this.watchers[e]&&(this.watchers[e].close(),delete this.watchers[e])}extractMeta(e){const t=e.split("\n")[0];if(t.includes("//META"))return this.parseOldMeta(e);if(t.includes("/**"))return this.parseNewMeta(e);throw new H("META was not found.")}parseOldMeta(e){const t=e.split("\n")[0],n=t.substring(t.lastIndexOf("//META")+6,t.lastIndexOf("*//"));if(t.indexOf("META")<0)throw new H("META was not found.");const s=L.testJSON(n);if(!s)throw new H("META could not be parsed.");if(!s.name)throw new H("META missing name data.");return s.format="json",s}parseNewMeta(e){const t=e.split("/**",2)[1].split("*/",1)[0],n={};let s="",r="";for(const e of t.split(q))if(0!==e.length)if("@"===e.charAt(0)&&" "!==e.charAt(1)){n[s]=r;const t=e.indexOf(" ");s=e.substr(1,t-1),r=e.substr(t+1)}else r+=" "+e.replace("\\n","\n").replace(G,"@");return n[s]=r.trim(),delete n[""],n.format="jsdoc",n}getContentRequire(e){const t="plugin"===e,n=this,s=t?z:U;return function(e,r){const o=t?n.pluginsFolder:n.themesFolder,a=_.resolve(o,_.basename(r));if(!F.existsSync(a)||r!==F.realpathSync(a))return Reflect.apply(s,this,arguments);let i=F.readFileSync(r,"utf8");i=L.stripBOM(i);const l=F.statSync(r),c=n.extractMeta(i);if(c.filename=_.basename(r),c.added=l.atimeMs,c.modified=l.mtimeMs,c.size=l.size,t||(c.css=i,"json"==c.format&&(c.css=c.css.split("\n").slice(1).join("\n")),i=`module.exports = ${JSON.stringify(c)};`),t){e._compile(i,e.filename),!L.isEmpty(e.exports)?(c.type=e.exports,e.exports=c,i=""):i+=`\nmodule.exports = ${JSON.stringify(c)};\nmodule.exports.type = ${c.exports||c.name};`}e._compile(i,r)}}makePlaceholderPlugin(e){return{plugin:{start:()=>{},getName:()=>e.name||e.filename,getAuthor:()=>"???",getDescription:()=>e.message?e.message:"This plugin was unable to be loaded. Check the author's page for updates.",getVersion:()=>"???"},name:e.name||e.filename,filename:e.filename,source:e.source?e.source:"",website:e.website?e.website:""}}async loadContent(e,t){if(void 0===e||void 0===t)return;const n="plugin"===t,s=n?this.pluginsFolder:this.themesFolder;try{window.require(_.resolve(s,e))}catch(t){return{name:e,file:e,message:"Could not be compiled.",error:{message:t.message,stack:t.stack}}}const r=window.require(_.resolve(s,e));if(!r.name)return{name:e,file:e,message:"Cannot escape the ID.",error:{message:"Cannot read property 'replace' of undefined",stack:"Cannot read property 'replace' of undefined"}};if(r.id=L.escapeID(r.name),n){if(!r.type)return;try{r.plugin=new r.type,delete M[r.plugin.getName()],M[r.plugin.getName()]=r}catch(t){return{name:e,file:e,message:"Could not be constructed.",error:{message:t.message,stack:t.stack}}}}else delete k[r.name],k[r.name]=r}unloadContent(e,t){if(void 0===e||void 0===t)return;const n="plugin"===t?this.pluginsFolder:this.themesFolder;try{delete window.require.cache[window.require.resolve(_.resolve(n,e))]}catch(t){return{name:e,file:e,message:"Could not be unloaded.",error:{message:t.message,stack:t.stack}}}}isLoaded(e,t){const n="plugin"===t?this.pluginsFolder:this.themesFolder;try{window.require.cache[window.require.resolve(_.resolve(n,e))]}catch(e){return!1}return!0}async reloadContent(e,t){const n=this.unloadContent(e,t);return n||await this.loadContent(e,t)}loadNewContent(e){const t="plugin"===e,n=t?".plugin.js":".theme.css",s=t?this.pluginsFolder:this.themesFolder,r=F.readdirSync(s),o=Object.values(t?M:k),a=o.filter(e=>!r.includes(e.filename)).map(e=>t?e.plugin.getName():e.name);return{added:r.filter(e=>!o.find(t=>t.filename==e)&&e.endsWith(n)&&F.statSync(_.resolve(s,e)).isFile()),removed:a}}async loadAllContent(e){const t="plugin"===e,n=t?".plugin.js":".theme.css",s=t?this.pluginsFolder:this.themesFolder,r=[],o=F.readdirSync(s);for(const t of o){if(!F.statSync(_.resolve(s,t)).isFile()||!t.endsWith(n))continue;const o=await this.loadContent(t,e);o&&r.push(o)}return r}loadPlugins(){return this.loadAllContent("plugin")}loadThemes(){return this.loadAllContent("theme")}};const J=window.require,Z=n(2),Y=n(1),K=DiscordNative.globals?DiscordNative.globals.releaseChannel:DiscordNative.app?DiscordNative.app.getReleaseChannel():"stable";var X=new class{constructor(){this.data={settings:{stable:{},canary:{},ptb:{}}},this.pluginData={}}initialize(){try{Z.existsSync(this.BDFile)||Z.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary");const e=JSON.parse(Z.readFileSync(this.BDFile,"binary"));if(e.hasOwnProperty("settings")&&(this.data=e),!Z.existsSync(this.settingsFile))return;let t=J(this.settingsFile);Z.unlinkSync(this.settingsFile),t=t.hasOwnProperty("settings")?Object.assign({stable:{},canary:{},ptb:{}},{[K]:t}):Object.assign({stable:{},canary:{},ptb:{}},t),this.setBDData("settings",t)}catch(e){console.error(e),L.alert("Corrupt Storage","The bd storage has somehow become corrupt. You may either try to salvage the file or delete it then reload.")}}get injectionPath(){return this._injectionPath=null}get configFile(){return this._configFile||(this._configFile=Y.resolve(this.injectionPath,"betterdiscord","config.json"))}get BDFile(){return this._BDFile||(this._BDFile=Y.resolve(D.dataPath,"bdstorage.json"))}get settingsFile(){return this._settingsFile||(this._settingsFile=Y.resolve(D.dataPath,"bdsettings.json"))}getPluginFile(e){return Y.resolve(V.pluginsFolder,e+".config.json")}getSettingGroup(e){return this.data.settings[K][e]||null}setSettingGroup(e,t){this.data.settings[K][e]=t,Z.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary")}getBDData(e){return this.data[e]||""}setBDData(e,t){this.data[e]=t,Z.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary")}getPluginData(e,t){return void 0!==this.pluginData[e]?this.pluginData[e][t]:Z.existsSync(this.getPluginFile(e))?(this.pluginData[e]=JSON.parse(Z.readFileSync(this.getPluginFile(e))),this.pluginData[e][t]):void 0}setPluginData(e,t,n){void 0!==n&&(void 0===this.pluginData[e]&&(this.pluginData[e]={}),this.pluginData[e][t]=n,Z.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4),"binary"))}deletePluginData(e,t){void 0===this.pluginData[e]&&(this.pluginData[e]={}),delete this.pluginData[e][t],Z.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4),"binary")}};class Q extends o.reactComponent{constructor(e){super(e)}render(){return o.react.createElement("div",{className:"ui-tab-bar-separator margin-top-8 margin-bottom-8"})}}class ee extends o.reactComponent{constructor(e){super(e)}render(){return o.react.createElement("div",{className:"ui-tab-bar-header"},this.props.text,this.props.button)}}class te extends o.reactComponent{constructor(e){super(e),this.setInitialState(),this.onClick=this.onClick.bind(this)}setInitialState(){this.state={selected:this.props.selected||!1}}render(){return o.react.createElement("div",{className:`ui-tab-bar-item${this.props.selected?" selected":""}`,onClick:this.onClick},this.props.text)}onClick(){this.props.onClick&&this.props.onClick(this.props.id)}}o.reactComponent;const ne=o.React;ne.Component;let se,re;function oe(){return se||(se=d("tooltip","tooltipBlack"))}function ae(){return re||(re=d("layer","layerContainer"))}const ie=function(e){const t=e[0].toUpperCase()+e.slice(1),n=oe()[`tooltip${t}`];return n||null},le=function(e){return!!ie(e)},ce=function(e){return`${e}px`};class de{constructor(e,t,n={}){const{style:s="black",side:r="top",preventFlip:o=!1,disabled:a=!1}=n;if(this.node=e instanceof jQuery?e[0]:e,this.label=t,this.style=s.toLowerCase(),this.side=r.toLowerCase(),this.preventFlip=o,this.disabled=a,!le(this.side))return L.err("EmulatedTooltip",`Side ${this.side} does not exist.`);if(!le(this.style))return L.err("EmulatedTooltip",`Style ${this.style} does not exist.`);this.element=document.createElement("div"),this.element.className=ae().layer+" "+ae().disabledPointerEvents,this.tooltipElement=document.createElement("div"),this.tooltipElement.className=`${oe().tooltip} ${ie(this.style)}`,this.labelElement=document.createElement("div"),this.labelElement.className=oe().tooltipContent;const i=document.createElement("div");i.className=oe().tooltipPointer,this.tooltipElement.append(i),this.tooltipElement.append(this.labelElement),this.element.append(this.tooltipElement),this.node.addEventListener("mouseenter",()=>{if(this.disabled)return;this.show();const e=new MutationObserver(t=>{t.forEach(t=>{const n=Array.from(t.removedNodes),s=n.indexOf(this.node)>-1,r=n.some(e=>e.contains(this.node));(s||r)&&(this.hide(),e.disconnect())})});e.observe(document.body,{subtree:!0,childList:!0})}),this.node.addEventListener("mouseleave",()=>{this.hide()})}get container(){return document.querySelector("."+BDModules.get(e=>e.popouts)[0].popouts.split(" ")[0]+" ~ ."+BDModules.get(e=>e.layerContainer)[0].layerContainer.split(" ")[0])}get canShowAbove(){return this.node.getBoundingClientRect().top-this.element.offsetHeight>=0}get canShowBelow(){return this.node.getBoundingClientRect().top+this.node.offsetHeight+this.element.offsetHeight<=L.screenHeight}get canShowLeft(){return this.node.getBoundingClientRect().left-this.element.offsetWidth>=0}get canShowRight(){return this.node.getBoundingClientRect().left+this.node.offsetWidth+this.element.offsetWidth<=L.screenWidth}hide(){this.element.remove(),this.tooltipElement.className=this._className}show(){this.tooltipElement.className=`${oe().tooltip} ${ie(this.style)}`,this.labelElement.textContent=this.label,this.container.append(this.element),"top"==this.side&&(this.canShowAbove||!this.canShowAbove&&this.preventFlip?this.showAbove():this.showBelow()),"bottom"==this.side&&(this.canShowBelow||!this.canShowBelow&&this.preventFlip?this.showBelow():this.showAbove()),"left"==this.side&&(this.canShowLeft||!this.canShowLeft&&this.preventFlip?this.showLeft():this.showRight()),"right"==this.side&&(this.canShowRight||!this.canShowRight&&this.preventFlip?this.showRight():this.showLeft())}showAbove(){this.tooltipElement.classList.add(ie("top")),this.element.style.setProperty("top",ce(this.node.getBoundingClientRect().top-this.element.offsetHeight-10)),this.centerHorizontally()}showBelow(){this.tooltipElement.classList.add(ie("bottom")),this.element.style.setProperty("top",ce(this.node.getBoundingClientRect().top+this.node.offsetHeight+10)),this.centerHorizontally()}showLeft(){this.tooltipElement.classList.add(ie("left")),this.element.style.setProperty("left",ce(this.node.getBoundingClientRect().left-this.element.offsetWidth-10)),this.centerVertically()}showRight(){this.tooltipElement.classList.add(ie("right")),this.element.style.setProperty("left",ce(this.node.getBoundingClientRect().left+this.node.offsetWidth+10)),this.centerVertically()}centerHorizontally(){const e=this.node.getBoundingClientRect().left+this.node.offsetWidth/2;this.element.style.setProperty("left",ce(e-this.element.offsetWidth/2))}centerVertically(){const e=this.node.getBoundingClientRect().top+this.node.offsetHeight/2;this.element.style.setProperty("top",ce(e-this.element.offsetHeight/2))}}var ue=class extends o.reactComponent{constructor(e){super(e)}async componentDidMount(){const{style:e="black",side:t="top",text:n=""}=this.props;this.node=o.reactDom.findDOMNode(this),this.tooltip=new de(this.node,n,{style:e,side:t})}componentWillUnmount(){this.tooltip.hide(),delete this.tooltip}render(){return this.props.children}};class pe{constructor(){this.panels={}}register(e,t){this.panels[e]=t}getComponent(e){return this.panels[e]}get items(){return[{text:"BetterDiscord Settings",id:"core"},{text:"Plugins",id:"plugins"},{text:"Themes",id:"themes"},{text:"Custom CSS",id:"customcss"}]}get LCitems(){let e=[{text:"Lightcord Settings",id:"lightcord"},{text:"RichPresence",id:"status"},{text:"Account Info",id:"accountinfo"}];return window.Lightcord.Settings.devMode&&e.push({text:"Api Components Preview",id:"lcapipreview"}),e}render(){return[{section:"HEADER",label:"Lightcord"},...this.LCitems.map(e=>({section:e.id,label:e.text,element:this.getComponent(e.id)})),{section:"DIVIDER"},{section:"HEADER",label:"Bandaged BD"},...this.items.map(e=>({section:e.id,label:e.text,element:this.getComponent(e.id)})),{section:"DIVIDER"}]}}var he=new class{injectColoredText(){this.cancelColoredText||o.MessageComponent&&(this.cancelColoredText=L.monkeyPatch(o.MessageComponent,"default",{before:e=>{const t=e.methodArguments[0];if(!t||!t.childrenMessageContent)return;const n=t.childrenMessageContent;if(!n.type||!n.type.type||"MessageContent"!=n.type.type.displayName)return;const s=n.type.type;s.__originalMethod||(n.type.type=function(e){const t=s(e),n=E["bda-gs-7"]&&e.message.colorString||"";return t.props.style={color:n},t},n.type.type.__originalMethod=s,Object.assign(n.type.type,s))}}))}removeColoredText(){let e=BDModules.get(e=>e.markup)[0].markup;document.querySelectorAll("."+e.split(" ")[0]).forEach(e=>{e.style.setProperty("color","")})}},me=new class{inject24Hour(){if(this.cancel24Hour)return;const e=new RegExp("([0-9]{1,2}):([0-9]{1,2})\\s(AM|PM)"),t=t=>{if(!E["bda-gs-6"])return;const n=t.returnValue.match(e);return n&&4===n.length?"AM"===n[3]?t.returnValue=t.returnValue.replace(n[0],`${"12"===n[1]?"00":n[1].padStart(2,"0")}:${n[2]}`):t.returnValue=t.returnValue.replace(n[0],`${"12"===n[1]?"12":parseInt(n[1])+12}:${n[2]}`):void 0},n=L.monkeyPatch(o.TimeFormatter,"calendarFormat",{after:t}),s=L.monkeyPatch(o.TimeFormatter,"dateFormat",{after:t});this.cancel24Hour=()=>{n(),s()}}remove24Hour(){this.cancel24Hour&&this.cancel24Hour()}};const ge=n(0),fe=n(2),be=n(1),ve=ge.remote.BrowserWindow,ye=ge.remote.getCurrentWebContents();var Ee=new class{constructor(){let e="";if(e="win32"===process.platform?be.resolve(process.env.LOCALAPPDATA,"Google/Chrome/User Data"):"linux"===process.platform?be.resolve(process.env.HOME,".config/google-chrome"):"darwin"===process.platform?be.resolve(process.env.HOME,"Library/Application Support/Google/Chrome"):be.resolve(process.env.HOME,".config/chromium"),e+="/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/",fe.existsSync(e)){const t=fe.readdirSync(e);e=be.resolve(e,t[t.length-1])}this.extensionPath=e,this.isExtensionInstalled=fe.existsSync(e),this.listener=this.listener.bind(this),v["React DevTools"].hidden=!this.isExtensionInstalled}listener(){if(!this.isExtensionInstalled)return;ve.removeDevToolsExtension("React Developer Tools"),ve.addDevToolsExtension(this.extensionPath)?L.log("React DevTools","Successfully installed react devtools."):L.err("React DevTools","Couldn't find react devtools in chrome extensions!")}start(){setImmediate(()=>ye.on("devtools-opened",this.listener)),ye.isDevToolsOpened()&&this.listener()}stop(){ye.removeListener("devtools-opened",this.listener)}};class we extends o.reactComponent{constructor(e){super(e)}render(){return o.react.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12",style:{width:"18px",height:"18px"}},o.react.createElement("g",{className:"background",fill:"none",fillRule:"evenodd"},o.react.createElement("path",{d:"M0 0h12v12H0"}),o.react.createElement("path",{className:"fill",fill:"#dcddde",d:"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6"})))}}class Ce extends o.reactComponent{constructor(e){super(e),this.onClick=this.onClick.bind(this)}render(){let e=BDModules.get(e=>e.toolsContainer)[0],t=BDModules.get(e=>e.container&&e.closeButton&&e.closeButtonBold)[0];return o.react.createElement("div",{className:"tools-container "+e.toolsContainer},o.react.createElement("div",{className:"tools "+e.tools},o.react.createElement("div",{className:t.container},o.react.createElement("div",{className:"btn-close "+t.closeButton,onClick:this.onClick},o.react.createElement(we,null)),o.react.createElement("div",{className:"esc-text "+t.keybind},"ESC"))))}onClick(){this.props.onClick&&this.props.onClick();const e=document.querySelector("."+BDModules.get(e=>e.closeButton&&e.keybindBold)[0].closeButton.split(" ")[0]);e&&e.click()}}class Se extends o.reactComponent{constructor(e){super(e)}render(){return o.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.text)}}class xe extends o.reactComponent{constructor(e){super(e),this.props.server.iconUrl||(this.props.server.iconUrl=this.props.fallback),this.state={imageError:!1,joined:this.props.guildList.includes(this.props.server.identifier)}}render(){const{server:e}=this.props;let t=BDModules.get(e=>e.card&&e.cardPrimary)[0],n=BDModules.get(e=>e.flexChild&&e._horizontalReverse)[0],s=BDModules.get(e=>e.noWrap&&!e.streamerModeEnabled)[0];return o.react.createElement("div",{className:`${t.card} ${t.cardPrimary} ${BDModules.get(e=>e.marginBottom8)[0].marginBottom8} bd-server-card${e.pinned?" bd-server-card-pinned":""}`},o.react.createElement("img",{ref:"img",className:"bd-server-image",src:e.iconUrl,onError:this.handleError.bind(this),draggable:!1}),o.react.createElement("div",{className:n.flexChild+" bd-server-content"},o.react.createElement("div",{className:n.horizontal+" "+s.noWrap+" bd-server-header"},o.react.createElement("h5",{className:"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-name"},e.name),o.react.createElement("h5",{className:"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-member-count"},e.members," Members")),o.react.createElement("div",{className:n.horizontal+" "+s.noWrap},o.react.createElement("div",{className:"scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d scrollerFade-1Ijw5y bd-server-description-container"},o.react.createElement("div",{className:"scroller-2FKFPG scroller bd-server-description"},e.description))),o.react.createElement("div",{className:"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-footer"},o.react.createElement("div",{className:"flexChild-faoVW3 bd-server-tags",style:{flex:"1 1 auto"}},e.categories.join(", ")),this.state.joined&&o.react.createElement("button",{type:"button",className:"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN colorGreen-29iAKY",style:{minHeight:"12px",marginTop:"4px",backgroundColor:"#3ac15c"}},o.react.createElement("div",{className:"ui-button-contents"},"Joined")),e.error&&o.react.createElement("button",{type:"button",className:"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN disabled-9aF2ug",style:{minHeight:"12px",marginTop:"4px",backgroundColor:"#c13a3a"}},o.react.createElement("div",{className:"ui-button-contents"},"Error")),!e.error&&!this.state.joined&&o.react.createElement("button",{type:"button",className:"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN",style:{minHeight:"12px",marginTop:"4px"},onClick:()=>{this.join()}},o.react.createElement("div",{className:"ui-button-contents"},"Join")))))}handleError(){this.props.server.iconUrl=this.props.fallback,this.setState({imageError:!0})}join(){this.props.join(this)}}class De extends o.reactComponent{constructor(e){super(e)}render(){let e=BDModules.get(e=>e.scrollerHorizontal)[0],t=BDModules.get(e=>e.sidebarRegionScroller)[0],n=`${e.scrollerWrap} ${e.scrollerThemed} ${e.themeGhostHairline}${this.props.fade?" "+e.scrollerFade:""}`,s=e.scroller+" scroller";this.props.sidebar&&(s+=` ${t.sidebarRegionScroller} sidebar-region-scroller`),this.props.contentColumn&&(s+=" "+t.contentRegionScroller+" content-region-scroller",n=`${e.scrollerWrap} ${t.contentRegionScrollerWrap} content-region-scroller-wrap ${e.scrollerThemed} ${e.themeGhost} ${e.scrollerTrack}`);const{children:r}=this.props;return o.react.createElement("div",{key:"scrollerwrap",className:n},o.react.createElement("div",{key:"scroller",ref:"scroller",className:s},r))}}class ke extends o.reactComponent{constructor(e){super(e)}render(){const{sidebar:e,content:t,tools:n}=this.props.children;return o.react.createElement("div",{className:"standardSidebarView-3F1I7i ui-standard-sidebar-view"},o.react.createElement("div",{className:"sidebarRegion-VFTUkN sidebar-region"},o.react.createElement(De,{key:"sidebarScroller",ref:"sidebarScroller",sidebar:!0,fade:e.fade||!0,dark:e.dark||!0},e.component)),o.react.createElement("div",{className:"contentRegion-3nDuYy content-region"},o.react.createElement("div",{className:"contentTransitionWrap-3hqOEW content-transition-wrap"},o.react.createElement("div",{className:"scrollerWrap-2lJEkd firefoxFixScrollFlex-cnI2ix contentRegionScrollerWrap-3YZXdm content-region-scroller-wrap scrollerThemed-2oenus themeGhost-28MSn0 scrollerTrack-1ZIpsv"},o.react.createElement("div",{className:"scroller-2FKFPG firefoxFixScrollFlex-cnI2ix contentRegionScroller-26nc1e content-region-scroller scroller",ref:"contentScroller"},o.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},t.component),n.component)))))}}class Me extends o.reactComponent{constructor(e){super(e),this.setInitialState(),this.close=this.close.bind(this),this.changeCategory=this.changeCategory.bind(this),this.search=this.search.bind(this),this.searchKeyDown=this.searchKeyDown.bind(this),this.checkConnection=this.checkConnection.bind(this),this.join=this.join.bind(this),this.connect=this.connect.bind(this),this.GuildStore=o.WebpackModules.findByUniqueProperties(["getGuilds"]),this.AvatarDefaults=o.WebpackModules.findByUniqueProperties(["getUserAvatarURL","DEFAULT_AVATARS"]),this.InviteActions=o.WebpackModules.findByUniqueProperties(["acceptInvite"]),this.SortedGuildStore=o.WebpackModules.findByUniqueProperties(["getSortedGuilds"])}componentDidMount(){this.checkConnection()}setInitialState(){this.state={selectedCategory:-1,title:"Loading...",loading:!0,servers:[],next:null,connection:{state:0,user:null}}}close(){o.reactDom.unmountComponentAtNode(document.getElementById(this.props.rootId))}search(e,t){const n=this;fetch(`${n.endPoint}${e}${e?"&schema=new":"?schema=new"}`,{method:"get"}).then(async e=>{if(200!==e.status)throw await e.text();let s=await e.json(),r=s.results.reduce((e,t)=>(t.joined=!1,e.push(t),e),[]);t||(r=n.state.servers.concat(r));let o=s.size+s.from;s.next=`?from=${o}`,n.state.term&&(s.next+=`&term=${n.state.term}`),n.state.selectedCategory&&(s.next+=`&category=${n.categoryButtons[n.state.selectedCategory]}`),o>=s.total&&(o=s.total,s.next=null);let a=`Showing 1-${o} of ${s.total} results in ${n.categoryButtons[n.state.selectedCategory]}`;n.state.term&&(a+=` for ${n.state.term}`),n.setState({loading:!1,title:a,servers:r,next:s.next}),t&&(n.refs.sbv.refs.contentScroller.scrollTop=0)}).catch(e=>(console.error(e),n.setState({loading:!1,title:"Failed to load servers. Check console for details"})))}async join(e){if(e.props.pinned)return this.InviteActions.acceptInvite(e.props.invite_code);await fetch(`${this.joinEndPoint}/${e.props.server.identifier}`,{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),e.setState({joined:!0})}connect(){const e=this,t=e.windowOptions;t.x=Math.round(window.screenX+window.innerWidth/2-t.width/2),t.y=Math.round(window.screenY+window.innerHeight/2-t.height/2),e.joinWindow=new(window.require("electron").remote.BrowserWindow)(t);e.joinWindow.webContents.on("did-navigate",(t,n)=>{"https://auth.discordservers.com/info"==n&&(e.joinWindow.close(),e.checkConnection())}),e.joinWindow.loadURL("https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info")}get windowOptions(){return{width:500,height:550,backgroundColor:"#282b30",show:!0,resizable:!1,maximizable:!1,minimizable:!1,alwaysOnTop:!0,frame:!1,center:!1,webPreferences:{nodeIntegration:!1}}}get bdServer(){const e=this.SortedGuildStore.getFlattenedGuildIds(),t=this.AvatarDefaults.DEFAULT_AVATARS;return[o.react.createElement(xe,{server:{name:"Lightcord",online:"30+",members:"50+",categories:["community","programming","support"],description:"Official Lightcord server for support etc",identifier:"86004744966914048",iconUrl:"https://avatars3.githubusercontent.com/u/65690058?s=200&v=4",nativejoin:!0,invite_code:"7eFff2A",pinned:!0},pinned:!0,join:this.join,guildList:e,fallback:t[Math.floor(5*Math.random())]}),o.react.createElement(xe,{server:{name:"BetterDiscord",online:"7500+",members:"20000+",categories:["community","programming","support"],description:"Official BetterDiscord server for support etc",identifier:"86004744966914048",iconUrl:"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp",nativejoin:!0,invite_code:"0Tmfo5ZbORCRqbAd",pinned:!0},pinned:!0,join:this.join,guildList:e,fallback:t[Math.floor(5*Math.random())]})]}get endPoint(){return"https://search.discordservers.com"}get joinEndPoint(){return"https://j.discordservers.com"}get connectEndPoint(){return"https://join.discordservers.com/connect"}async checkConnection(){const e=this;try{const t=await fetch("https://auth.discordservers.com/info",{method:"GET",credentials:"include",mode:"cors",headers:{Accept:"application/json","Content-Type":"application/json"}}),n=await t.json();e.setState({selectedCategory:0,connection:{state:2,user:n}}),e.search("",!0)}catch(t){console.error(t),e.setState({title:"Not connected to discordservers.com!",loading:!0,selectedCategory:-1,connection:{state:1,user:null}})}}render(){return o.react.createElement(ke,{ref:"sbv"},this.component)}get component(){return{sidebar:{component:this.sidebar},content:{component:this.content},tools:{component:o.react.createElement(Ce,{key:"pt",ref:"tools",onClick:this.close})}}}get sidebar(){return o.react.createElement("div",{className:"sidebar",key:"ps"},o.react.createElement("div",{className:"ui-tab-bar SIDE"},o.react.createElement("div",{className:"ui-tab-bar-header",style:{fontSize:"16px"}},"Public Servers"),o.react.createElement(Q,null),this.searchInput,o.react.createElement(Q,null),o.react.createElement(ee,{text:"Categories"}),this.categoryButtons.map((e,t)=>o.react.createElement(te,{id:t,onClick:this.changeCategory,key:t,text:e,selected:this.state.selectedCategory===t})),o.react.createElement(Q,null),this.footer,this.connection))}get searchInput(){return o.react.createElement("div",{className:"ui-form-item"},o.react.createElement("div",{className:"ui-text-input flex-vertical",style:{width:"172px",marginLeft:"10px"}},o.react.createElement("input",{ref:"searchinput",onKeyDown:this.searchKeyDown,onChange:()=>{},type:"text",className:"input default",placeholder:"Search...",maxLength:"50"})))}searchKeyDown(e){const t=this;if(t.state.loading||13!==e.which)return;t.setState({loading:!0,title:"Loading...",term:e.target.value});let n=`?term=${e.target.value}`;0!==t.state.selectedCategory&&(n+=`&category=${t.categoryButtons[t.state.selectedCategory]}`),t.search(n,!0)}get categoryButtons(){return["All","FPS Games","MMO Games","Strategy Games","MOBA Games","RPG Games","Tabletop Games","Sandbox Games","Simulation Games","Music","Community","Language","Programming","Other"]}changeCategory(e){const t=this;t.state.loading||(t.refs.searchinput.value="",t.setState({loading:!0,selectedCategory:e,title:"Loading...",term:null}),0!==e?t.search(`?category=${t.categoryButtons[e]}`,!0):t.search("",!0))}get content(){const e=this,t=this.SortedGuildStore.getFlattenedGuildIds(),n=this.AvatarDefaults.DEFAULT_AVATARS;if(1===e.state.connection.state)return e.notConnected;let s=BDModules.get(e=>e.contentColumnDefault)[0];return[o.react.createElement("div",{ref:"content",key:"pc",className:s.contentColumn+" "+s.contentColumn+" content-column default"},o.react.createElement(Se,{text:e.state.title}),e.bdServer,e.state.servers.map(s=>o.react.createElement(xe,{key:s.identifier,server:s,join:e.join,guildList:t,fallback:n[Math.floor(5*Math.random())]})),e.state.next&&o.react.createElement("button",{type:"button",onClick:()=>{e.state.loading||(e.setState({loading:!0}),e.search(e.state.next,!1))},className:"ui-button filled brand small grow",style:{width:"100%",marginTop:"10px",marginBottom:"10px"}},o.react.createElement("div",{className:"ui-button-contents"},e.state.loading?"Loading":"Load More")),e.state.servers.length>0&&o.react.createElement(Se,{text:e.state.title}))]}get notConnected(){let e=BDModules.get(e=>e.contentColumnDefault)[0];return[o.react.createElement("div",{key:"ncc",ref:"content",className:e.contentColumn+" "+e.contentColumn+" content-column default"},o.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},"Not connected to discordservers.com!",o.react.createElement("button",{onClick:this.connect,type:"button",className:"ui-button filled brand small grow",style:{display:"inline-block",minHeight:"18px",marginLeft:"10px",lineHeight:"14px"}},o.react.createElement("div",{className:"ui-button-contents"},"Connect"))),this.bdServer)]}get footer(){return o.react.createElement("div",{className:"ui-tab-bar-header"},o.react.createElement("a",{href:"https://discordservers.com",target:"_blank"},"Discordservers.com"))}get connection(){const{connection:e}=this.state;return 2!==e.state?o.react.createElement("span",null):o.react.createElement("span",null,o.react.createElement(Q,null),o.react.createElement("span",{style:{color:"#b9bbbe",fontSize:"10px",marginLeft:"10px"}},"Connected as: ",`${e.user.username}#${e.user.discriminator}`),o.react.createElement("div",{style:{padding:"5px 10px 0 10px"}},o.react.createElement("button",{style:{width:"100%",minHeight:"20px"},type:"button",className:"ui-button filled brand small grow"},o.react.createElement("div",{className:"ui-button-contents",onClick:this.connect},"Reconnect"))))}}class Be extends o.reactComponent{constructor(e){super(e),this.keyupListener=this.keyupListener.bind(this)}keyupListener(e){27===e.which&&o.reactDom.unmountComponentAtNode(this.refs.root.parentNode)}componentDidMount(){window.addEventListener("keyup",this.keyupListener);const e=P.query(`#${this.props.id}`);P.animate({duration:200,update:function(t){e.style.transform=`scale(${1.1-.1*t}) translateZ(0px)`,e.style.opacity=t,1==t&&setImmediate(()=>{e.style.transform="",e.style.opacity=""})}})}componentWillUnmount(){window.removeEventListener("keyup",this.keyupListener);const e=P.query(`#${this.props.id}`);P.animate({duration:200,update:function(t){e.style.transform=`scale(${1.1-.1*(1-t)}) translateZ(0px)`,e.style.opacity=1-t,1==t&&setImmediate(()=>{e.remove()})}});const t=P.query(".publicServersOpen");t.classList.remove("publicServersOpen"),P.animate({duration:200,update:function(e){t.style.transform=`scale(${.07*e+.93}) translateZ(0px)`,t.style.opacity=e,1==e&&setImmediate(()=>{t.style.transform="",t.style.opacity=""})}})}componentWillMount(){const e=P.query('[class*="layer-"]');e.classList.add("publicServersOpen"),P.animate({duration:200,update:function(t){e.style.transform=`scale(${.07*(1-t)+.93}) translateZ(0px)`,e.style.opacity=1-t}})}render(){return o.react.createElement("div",{className:"layer bd-layer "+BDModules.get(e=>e.layer&&e.animating)[0].layer,id:this.props.id,ref:"root",style:{opacity:0,transform:"scale(1.1) translateZ(0px)"}},this.props.children)}}var Ne=new class{constructor(){this._appendButton=this._appendButton.bind(this)}get component(){return o.react.createElement(Be,{rootId:"pubslayerroot",id:"pubslayer"},o.react.createElement(Me,{rootId:"pubslayerroot"}))}get root(){const e=document.getElementById("pubslayerroot");return e||(this.injectRoot()?this.root:null)}injectRoot(){let[e]=[BDModules.get(e=>e.layers&&e.layer)[0].layers.split(" ")[0]];const t=P.query(".layers, ."+e);return!!t&&(t.append(P.createElement("<div id='pubslayerroot'>")),!0)}render(){const e=this.root;e?o.reactDom.render(this.component,e):console.log("FAILED TO LOCATE ROOT: .layers")}get button(){const e=P.createElement(`<div id="bd-pub-li" class="${o.guildClasses.listItem}">`);E["bda-gs-1"]||(e.style.display="none");const t=P.createElement(`<div id="bd-pub-button" class="${"wrapper-25eVIn "+o.guildClasses.circleButtonMask}">public</div>`);return t.addEventListener("click",()=>{this.render()}),e.append(t),e}_appendButton(){let[e]=[BDModules.get(e=>e.scroller&&e.scrollbarWidth)[0].scroller];if(P.query("#bd-pub-li"))return;const t=o.guildClasses.wrapper.split(" ")[0],n=P.query(`.${t} .${e} >:first-child`);P.after(n,this.button)}addButton(){if(this.guildPatch)return;const e=l(e=>e.default&&"NavigableGuilds"==e.default.displayName),t=u("Guilds");e||t||L.warn("PublicServer","Can't find GuildList component"),this.guildPatch=L.monkeyPatch(e||t.prototype,e?"default":"render",{after:this._appendButton}),this._appendButton()}removeButton(){this.guildPatch(),delete this.guildPatch,P.query("#bd-pub-li").remove()}};var Pe=new class{start(){P.addStyle("VoiceMode","\n .container-2Rl01u {\n display: none!important;\n }\n\n .chat-3bRxxu {\n display: none!important;\n }\n\n .sidebar-2K8pFh {\n flex-grow: 1!important;\n }\n")}stop(){P.removeStyle("VoiceMode")}};const Le=new RegExp("^(?!da-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$");var $e=new class{stop(){this.hasPatched&&(this.unpatchClassModules(c(this.moduleFilter.bind(this))),this.revertElement(document.querySelector("#app-mount")),this.hasPatched=!1)}start(){this.hasPatched||(this.patchClassModules(c(this.moduleFilter.bind(this))),this.normalizeElement(document.querySelector("#app-mount")),this.hasPatched=!0,this.patchDOMMethods())}patchClassModules(e){for(const t of e)this.patchClassModule("da",t)}unpatchClassModules(e){for(const t of e)this.unpatchClassModule("da",t)}shouldIgnore(e){return!isNaN(e)||(!!(e.endsWith("px")||e.endsWith("ch")||e.endsWith("em")||e.endsWith("ms"))||(!!e.startsWith("layerContainer-")||(!(!e.startsWith("#")||7!=e.length&&4!=e.length)||!(!e.includes("calc(")&&!e.includes("rgba")))))}moduleFilter(e){if("object"!=typeof e||Array.isArray(e))return!1;if(e.__esModule)return!1;if(!Object.keys(e).length)return!1;for(const t in e){const n=e[t];if("string"!=typeof n)return!1;if(!this.shouldIgnore(n)){if(1===n.split("-").length)return!1;if(!Le.test(n.split(" ")[0]))return!1}}return!0}patchClassModule(e,t){for(const n in t){const s=t[n];if(this.shouldIgnore(s))continue;const r=s.split(" ");for(const s of r){const r=s.match(Le);if(!r||!r.length||r.length<2)continue;const o=r[1].split("-").map((e,t)=>t?e[0].toUpperCase()+e.slice(1):e).join("");t[n]+=` ${e}-${o}`}}}unpatchClassModule(e,t){for(const n in t){const s=t[n];if(this.shouldIgnore(s))continue;let r="";const o=s.split(" ");for(const t of o)t.startsWith(`${e}-`)||(r+=` ${t}`);t[n]=r.trim()}}normalizeElement(e){if(!(e instanceof Element))return;const t=e.classList;for(let n=0,s=t.length;n<s;n++){if(!Le.test(t[n]))continue;const s=t[n].match(Le)[1].split("-").map((e,t)=>t?e[0].toUpperCase()+e.slice(1):e).join("");e.classList.add(`da-${s}`)}for(const t of e.children)this.normalizeElement(t)}revertElement(e){if(!(e instanceof Element))return;e.children&&e.children.length&&this.revertElement(e.children[0]),e.nextElementSibling&&this.revertElement(e.nextElementSibling);const t=e.classList,n=[];for(let e=0;e<t.length;e++)t[e].startsWith("da-")&&n.push(t[e]);e.classList.remove(...n)}patchDOMMethods(){const e=DOMTokenList.prototype.contains;DOMTokenList.prototype.contains=function(t){return Reflect.apply(e,this,[t.split(" ")[0]])};const t=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(...e){for(let t=0;t<e.length;t++)e[t]=e[t].split(" ")[0];return Reflect.apply(t,this,e)};const n=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(...e){for(let t=0;t<e.length;t++)e[t]=e[t].split(" ")[0];return Reflect.apply(n,this,e)}}},Ae=new class{constructor(){this.debugListener=this.debugListener.bind(this),this.copySelectorListener=this.copySelectorListener.bind(this)}start(){this.startDebugListener(),E["fork-dm-1"]&&this.startCopySelector()}stop(){this.stopDebugListener(),this.stopCopySelector()}startDebugListener(){this.stopDebugListener(),document.addEventListener("keydown",this.debugListener)}stopDebugListener(){document.removeEventListener("keydown",this.debugListener)}startCopySelector(){this.stopCopySelector(),document.addEventListener("contextmenu",this.copySelectorListener)}stopCopySelector(){document.removeEventListener("contextmenu",this.copySelectorListener)}debugListener(e){if(119===e.which||118==e.which){console.log("%c[%cDevMode%c] %cBreak/Resume","color: red;","color: #303030; font-weight:700;","color:red;","");debugger;e.preventDefault(),e.stopImmediatePropagation()}}copySelectorListener(e){try{e.stopPropagation();const t=this.getSelector(e.target);let[n,s]=[BDModules.get(e=>e.layer&&"string"==typeof e.layer&&e.disabledPointerEvents)[0],BDModules.get(e=>e.menu)[0]];setTimeout((function(){if(!s||!n.layer)return console.log(s,n.layer);let r=P.query("."+L.removeDa(s.menu));if(!r){const t=P.query("#app-mount > ."+L.removeDa(n.layerContainer)),o=P.createElement(`<div class="${n.layer}">`);r=P.createElement(`<div class="${s.menu} ${s.styleFlexible} ${s.accommodateScrollbar} bd-context-menu" style=""></div>`),o.append(r),t.append(o),o.style.top=e.clientY+"px",o.style.left=e.clientX+"px",o.setAttribute("role","menu"),o.setAttribute("tabindex","-1"),o.id="bd-copy-selector-context",o.setAttribute("aria-label","Copy Selector Actions");const a=BDModules.get(e=>e.scrollerWrap)[0],i=P.createElement(`<div class="${a.scrollerWrap} ${a.scrollerThemed} ${a.themeGhostHairline}"></div>`),l=P.createElement(`<div class="${BDModules.get(e=>e.scroller)[0].scroller} ${s.scroller}"></div>`);i.append(l),r.append(i);const c=function(e){e.keyCode&&27!==e.keyCode||(o.remove(),document.removeEventListener("click",c),document.removeEventListener("contextmenu",c),document.removeEventListener("keyup",c))};document.addEventListener("click",c),document.addEventListener("contextmenu",c),document.addEventListener("keyup",c)}const a=r.parentElement,i=r.childNodes[0].childNodes[0],l=P.createElement('<div role="group"></div>'),c=P.createElement(`<div class="${s.item} ${s.labelContainer} ${s.colorDefault}" role="menuitem" id="bd-copy-selector-item-cm"></div>`);if(c.append(P.createElement(`<div class="${s.label}">Copy Selector</div>`)),c.addEventListener("click",()=>{o.NativeModule.copy(t),a.style.display="none"}),c.addEventListener("mouseover",e=>{let t=P.queryAll("div[role=menuitem]."+L.removeDa(s.focused));t&&t.forEach(e=>e.classList.remove(s.focused)),c.classList.add(s.focused)}),c.addEventListener("mouseout",e=>{c.classList.remove(s.focused)}),l.append(c),i.childNodes.length){const e=P.createElement(`<div role="separator" class="${s.separator}"></div>`);i.append(e)}i.append(l),a.clientHeight<a.scrollHeight&&(console.log("overflowing "+a.style.top),a.style.top=a.style.top-l.clientHeight+"px",console.log("overflowing"+a.style.top))}),1)}catch(e){console.error(e)}}getSelector(e){if(e.id)return`#${e.id}`;return function(e){for(var t=[];e.parentNode;){if(e.id){t.unshift("#"+e.id);break}if(e==e.ownerDocument.documentElement)t.unshift(e.tagName.toLowerCase()+Array.from(e.classList.entries()).map(e=>"."+e).join(""));else{for(var n=1,s=e;s.previousElementSibling;s=s.previousElementSibling,n++);t.unshift(e.tagName.toLowerCase()+("string"==typeof e.className&&e.className||"").split(" ").filter(e=>!!e).map(e=>"."+e).join("")+":nth-child("+n+")")}e=e.parentNode}return t.join(" > ")}(e)}getRules(e,t=e.ownerDocument.styleSheets){return[...t].filter(e=>!e.href||!e.href.includes("BetterDiscordApp")).map(e=>[...e.cssRules||[]]).flat().filter(t=>t&&t.selectorText&&e.matches(t.selectorText)&&t.style.length&&t.selectorText.split(", ").length<8&&!t.selectorText.split(", ").includes("*"))}};const Te=o.React;class Re extends Te.Component{constructor(e){super(e),this.state={checked:this.props.checked},this.onChange=this.onChange.bind(this)}onChange(e){this.props.disabled||(this.props.onChange(e),this.setState({checked:e}))}render(){return Te.createElement(Lightcord.Api.Components.inputs.Switch,{onChange:this.onChange,value:this.state.checked})}}class je extends o.reactComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this)}onChange(){this.props.checked=!this.props.checked,this.props.onChange(this.props.id,this.props.checked)}render(){const{text:e,info:t}=this.props.data;return o.react.createElement("div",{className:"ui-flex flex-vertical flex-justify-start flex-align-stretch flex-nowrap ui-switch-item"},o.react.createElement("div",{className:"ui-flex flex-horizontal flex-justify-start flex-align-stretch flex-nowrap"},o.react.createElement("h3",{className:"ui-form-title h3 margin-reset margin-reset ui-flex-child"},e),o.react.createElement(Re,{onChange:this.onChange,checked:this.props.checked})),o.react.createElement("div",{className:"ui-form-text style-description margin-top-4",style:{flex:"1 1 auto"}},t))}}class Oe extends o.reactComponent{constructor(e){super(e)}render(){const{title:e,settings:t,button:n}=this.props,s=n?o.react.createElement("button",{key:"title-button",className:"bd-pfbtn",onClick:n.onClick},n.title):null;return[o.react.createElement(Se,{text:e}),s,t.map(e=>o.react.createElement(je,{id:e.id,key:e.id,data:e,checked:E[e.id],onChange:(e,t)=>{this.props.onChange(e,t)}}))]}}let Ie=BDModules.get(e=>e.marginTop60)[0];class _e extends React.Component{render(){return Ie||(Ie=BDModules.get(e=>e.marginTop60)[0]),React.createElement("div",{className:Ie.marginTop60})}}class Fe extends o.reactComponent{constructor(e){super(e)}render(){return this.props.sections.map((e,t)=>[0!==t?o.react.createElement(_e,{}):null,o.react.createElement(Oe,Object.assign({},e,{onChange:this.props.onChange}))])}}o.reactComponent;class We extends o.reactComponent{constructor(e){super(e),this.onClick=this.onClick.bind(this),this.setInitialState()}setInitialState(){this.state={checked:this.props.checked||!1}}render(){return o.react.createElement("li",null,o.react.createElement("div",{className:"checkbox "+BDModules.get(e=>e.checkboxElement)[0].checkbox,onClick:this.onClick},o.react.createElement("div",{className:"checkbox-inner "+BDModules.get(e=>e.checkboxInner)[0].checkboxInner},o.react.createElement("input",{className:BDModules.get(e=>e.checkboxElement)[0].checkboxElement,checked:this.state.checked,onChange:()=>{},type:"checkbox"}),o.react.createElement("span",null)),o.react.createElement("span",null,this.props.text)))}onClick(){this.props.onChange(this.props.id,!this.state.checked),this.setState({checked:!this.state.checked})}}class He extends o.reactComponent{constructor(e){super(e);this.onClick=this.onClick.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.onChange=this.onChange.bind(this)}componentDidMount(){P.addClass(P.query("#app-mount"),"bd-detached-editor"),o.editorDetached=!0,this.editor=ace.edit("bd-customcss-editor-detached"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{E["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){P.removeClass(P.query("#app-mount"),"bd-detached-editor"),o.editorDetached=!1,this.editor.destroy()}updateLineCount(){const e=this.refs.editor.value.split("\n").length;e!=this.props.lines&&(this.refs.lines.textContent=Array.from(new Array(e),(e,t)=>t+1).join(".\n")+".",this.props.lines=e)}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=X.getBDData("bdcustomcss");let t="";return e&&""!==e&&(t=atob(e)),t}get root(){const e=P.query("#bd-customcss-detach-container");return e||(this.injectRoot()?this.detachedRoot:null)}injectRoot(){const e=P.query(".app, ."+BDModules.get(e=>e.app&&e.layers)[0].app.split(" ")[0]);return!!e&&(P.insertAfter(P.createElement('<div id="bd-customcss-detach-container">'),e),!0)}render(){const e=this;return o.react.createElement("div",{className:"bd-detached-css-editor",id:"bd-customcss-detach-editor"},o.react.createElement("div",{id:"bd-customcss-innerpane"},o.react.createElement("div",{className:"editor-wrapper"},o.react.createElement("div",{id:"bd-customcss-editor-detached",className:"editor",ref:"editor"},e.css)),o.react.createElement("div",{id:"bd-customcss-attach-controls"},o.react.createElement("ul",{className:"checkbox-group"},o.react.createElement(We,{id:"live-update",text:"Live Update",onChange:e.onChange,checked:E["bda-css-0"]})),o.react.createElement("div",{id:"bd-customcss-detach-controls-button"},o.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),o.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),o.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("attach")}},"Attach"),o.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on attach")))))}onChange(e,t){switch(e){case"live-update":E["bda-css-0"]=t,Vn.saveSettings()}}onClick(e){const t=this;switch(e){case"attach":P.query("#editor-detached")&&t.props.attach(),o.reactDom.unmountComponentAtNode(t.root),t.root.remove();break;case"update":t.updateCss();break;case"save":t.saveCss()}}updateCss(){P.removeStyle("customcss"),P.addStyle("customcss",this.editor.session.getValue())}saveCss(){X.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class ze extends o.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=o.react.createElement(He,{attach:this.attach}),this.onClick=this.onClick.bind(this),this.updateCss=this.updateCss.bind(this),this.saveCss=this.saveCss.bind(this),this.detach=this.detach.bind(this)}setInitialState(){this.state={detached:this.props.detached||o.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{E["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&o.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=X.getBDData("bdcustomcss");let t="";return e&&""!==e&&(t=atob(e)),t}updateLineCount(){const e=this.refs.editor.value.split("\n").length;e!=this.props.lines&&(this.refs.lines.textContent=Array.from(new Array(e),(e,t)=>t+1).join(".\n")+".",this.props.lines=e)}render(){const e=this,{detached:t}=e.state;return[t&&o.react.createElement("div",{id:"editor-detached"},o.react.createElement(Se,{text:"Custom CSS Editor"}),o.react.createElement("h3",null,"Editor Detached"),o.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&o.react.createElement("div",null,o.react.createElement(Se,{text:"Custom CSS Editor"}),o.react.createElement("div",{className:"editor-wrapper"},o.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),o.react.createElement("div",{id:"bd-customcss-attach-controls"},o.react.createElement("ul",{className:"checkbox-group"},o.react.createElement(We,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:E["bda-css-0"]})),o.react.createElement("div",{id:"bd-customcss-detach-controls-button"},o.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),o.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),o.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),o.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),o.react.createElement("div",{className:"help-text"},"Press ",o.react.createElement("code",{className:"inline"},"ctrl"),"+",o.react.createElement("span",{className:"inline"},",")," with the editor focused to access the editor's settings."))))]}onClick(e){const t=this;switch(e){case"update":t.updateCss();break;case"save":t.saveCss();break;case"detach":t.detach()}}onChange(e,t){switch(e){case"live-update":E["bda-css-0"]=t,Vn.saveSettings()}}updateCss(){P.removeStyle("customcss"),P.addStyle("customcss",this.editor.session.getValue())}saveCss(){X.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?o.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=P.query("#bd-customcss-detach-container");return e||(this.injectDetachedRoot()?this.detachedRoot:null)}injectDetachedRoot(){const e=P.query(".app, ."+BDModules.get(e=>e.app&&e.layers)[0].app.split(" ")[0]);return!!e&&(P.insertAfter(P.createElement('<div id="bd-customcss-detach-container">'),e),!0)}attach(){this.setState({detached:!1})}}class Ue extends o.reactComponent{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?o.react.createElement("div",{className:"react-error"},"Component Error"):this.props.children}}const qe=Ue.prototype.render;Object.defineProperty(Ue.prototype,"render",{enumerable:!1,configurable:!1,set:function(){console.warn("Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>qe});class Ge extends o.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){let e=this.props.title?o.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title):null;return[e,this.props.children]}}class Ve extends o.reactComponent{constructor(e){super(e)}render(){return o.react.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#dcddde",className:"bd-reload "+this.props.className,onClick:this.props.onClick,style:{width:this.props.size||"24px",height:this.props.size||"24px"}},o.react.createElement("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"}),o.react.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}const Je=o.React;class Ze extends Je.Component{render(){const e=this.props.size||"24px";return Je.createElement("svg",{className:this.props.className||"",viewBox:"0 0 24 24",fill:"#FFFFFF",style:{width:e,height:e},onClick:this.props.onClick},Je.createElement("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),Je.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}const Ye=o.React;class Ke extends Ye.Component{render(){const e=this.props.size||"24px";return Ye.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},Ye.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Ye.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"}),Ye.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}var Xe=n(3),Qe=n.n(Xe),et=n(2),tt=n(1);const nt={},st={};var rt=new class{constructor(){}patch(e,t){process.nextTick(()=>{!function(e,t){if(!document.getElementById(t))return;if(!e.url.startsWith("https://cdn.discordapp.com/"))return document.getElementById(t).remove();if(!e.filename.endsWith(".plugin.js")&&!e.filename.endsWith(".theme.css"))return document.getElementById(t).remove();Qe()(e.url,{headers:{"User-Agent":r.remote.getCurrentWebContents().userAgent}}).then(n=>{if(200!==n.status)throw new Error("File doesn't exist.");const s=I.createHash("sha256");let a=Buffer.alloc(0);n.body.on("data",e=>{a=Buffer.concat([a,e]),s.update(e)}),n.body.on("end",()=>{const n=s.digest("hex");st[e.url]=n,ot[n]=e.url,at(n,a,e.filename,n=>{!function(e,t,n){const s=document.getElementById(e);if(!s||s.childNodes.length>0)return;it||(it=BDModules.get(e=>e.flowerStarContainer)[0]);lt||(lt=BDModules.get(e=>e.childContainer)[0]);if(console.log(t),t.suspect){try{s.parentNode.style.borderColor="rgb(240, 71, 71)";let e=s=>{for(let o of s.children)"A"===o.tagName?o.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),L.showConfirmationModal("Are you sure you want to download this ?","The "+t.type.toLowerCase()+" **"+n+"** might be dangerous **("+t.harm+")**. \n\n**We don't recommand to download it**. However, you can still do it below.",{confirmText:"Download Anyway",cancelText:"Don't !",danger:!0,onCancel:()=>{},onConfirm:()=>{r.remote.shell.openExternal(o.href)}})}):["div"].includes(o.tagName.toLowerCase())&&e(o)};e(s.parentNode)}catch(e){console.error(e)}o.reactDom.render(o.react.createElement(ue,{text:t.type+" "+t.name+" is potentially dangerous."},o.react.createElement("div",{className:it.flowerStarContainer,style:{width:"16px",height:"16px"}},o.react.createElement("svg",{className:BDModules.get(e=>e.svg)[0].svg,"aria-hidden":"false",width:"16px",height:"16px",viewBox:"0 0 40 32"},o.react.createElement("rect",{x:"0",y:"0",width:"32",height:"32",mask:"url(#svg-mask-avatar-status-round-32)",fill:"#f04747",mask:"url(#svg-mask-status-dnd)",className:BDModules.get(e=>e.pointerEvents)[0].pointerEvents})))),s)}else t.official?(s.parentNode.style.borderColor="#4087ed",o.reactDom.render(o.react.createElement(ue,{text:t.type+" "+t.name+" was made by the developers of Lightcord.",style:"brand"},o.react.createElement("div",{className:it.flowerStarContainer,style:{width:"16px",height:"16px"}},o.react.createElement("svg",{className:it.flowerStar,"aria-hidden":"false",width:"16px",height:"16px",viewBox:"0 0 16 15.2",stroke:"#36393f",style:{color:"#4087ed"}},o.react.createElement("path",{fill:"currentColor","fill-rule":"evenodd",d:"m16 7.6c0 .79-1.28 1.38-1.52 2.09s.44 2 0 2.59-1.84.35-2.46.8-.79 1.84-1.54 2.09-1.67-.8-2.47-.8-1.75 1-2.47.8-.92-1.64-1.54-2.09-2-.18-2.46-.8.23-1.84 0-2.59-1.54-1.3-1.54-2.09 1.28-1.38 1.52-2.09-.44-2 0-2.59 1.85-.35 2.48-.8.78-1.84 1.53-2.12 1.67.83 2.47.83 1.75-1 2.47-.8.91 1.64 1.53 2.09 2 .18 2.46.8-.23 1.84 0 2.59 1.54 1.3 1.54 2.09z"})),o.react.createElement("div",{className:lt.childContainer},o.react.createElement("svg",{"aria-hidden":"false",width:"16px",height:"16px",viewBox:"0 0 16 15.2"},o.react.createElement("path",{fill:"#ffffff",d:"M10.7,5.28a2.9,2.9,0,0,0-2.11.86.11.11,0,0,0,0,.16l1.05.94a.11.11,0,0,0,.15,0,1.27,1.27,0,0,1,.9-.33c.65,0,.65.73.65.73a.64.64,0,0,1-.65.65,1.73,1.73,0,0,1-1.18-.54c-.31-.26-.36-.32-.73-.66S7.06,5.28,5.65,5.28A2.26,2.26,0,0,0,3.37,7.56,2.59,2.59,0,0,0,3.82,9a2.18,2.18,0,0,0,1.83.89,2.94,2.94,0,0,0,2.1-.81.11.11,0,0,0,0-.16L6.74,8A.11.11,0,0,0,6.6,8a1.58,1.58,0,0,1-.94.29h0A.71.71,0,0,1,5,7.56H5a.63.63,0,0,1,.65-.64c.71,0,1.42.75,1.94,1.27.75.76,1.66,1.79,3.11,1.74A2.28,2.28,0,0,0,13,7.64a2.59,2.59,0,0,0-.45-1.47A2.14,2.14,0,0,0,10.7,5.28Z"}))))),s)):(s.parentNode.style.borderColor="#4087ed",o.reactDom.render(o.react.createElement(ue,{text:t.type+" "+t.name+" is certified by Lightcord."},o.react.createElement("div",{className:it.flowerStarContainer,style:{width:"16px",height:"16px"}},o.react.createElement("svg",{className:it.flowerStar,"aria-hidden":"false",width:"16px",height:"16px",viewBox:"0 0 16 15.2"},o.react.createElement("path",{fill:"#4f545c","fill-rule":"evenodd",d:"m16 7.6c0 .79-1.28 1.38-1.52 2.09s.44 2 0 2.59-1.84.35-2.46.8-.79 1.84-1.54 2.09-1.67-.8-2.47-.8-1.75 1-2.47.8-.92-1.64-1.54-2.09-2-.18-2.46-.8.23-1.84 0-2.59-1.54-1.3-1.54-2.09 1.28-1.38 1.52-2.09-.44-2 0-2.59 1.85-.35 2.48-.8.78-1.84 1.53-2.12 1.67.83 2.47.83 1.75-1 2.47-.8.91 1.64 1.53 2.09 2 .18 2.46.8-.23 1.84 0 2.59 1.54 1.3 1.54 2.09z"})),o.react.createElement("div",{className:lt.childContainer},o.react.createElement("svg",{"aria-hidden":"false",width:"16px",height:"16px",viewBox:"0 0 16 15.2"},o.react.createElement("path",{fill:"#ffffff",d:"M7.4,11.17,4,8.62,5,7.26l2,1.53L10.64,4l1.36,1Z"}))))),s))}(t,n,e.filename)},()=>{document.getElementById(t).remove()})})}).catch(()=>{})}(e,t)})}start(){}isTrusted(e){return nt[e]&&!nt[e].suspect}};const ot={};function at(e,t,n,s,o){if(console.log(`File: ${n} hash: ${e}`),nt[e]){const t=nt[e];s(t)}else Qe()("https://cdn.jsdelivr.net/gh/Lightcord/filehashes@master/hashes/"+e,{headers:{"User-Agent":r.remote.getCurrentWebContents().userAgent}}).then(async r=>{if(200!==r.status)return n.endsWith(".theme.css")?o():function(e,t,n,s){t=t.toString("utf8").split(/[^\w\d]+/g);let r=!1;for(let e of t){for(let t of["token","email","phone","MFA","2fa","process","child_process","localStorage","eval","getGlobal","BrowserWindow"])if(e.toLowerCase().includes(t.toLowerCase())){r="token stealer/virus";break}if(r)break}if(!r){const e=t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"").trim();if(/var [\w\d_$]+=\["/gi.test(e)&&(r="obfuscation/hidden code"),!r){const t=[/_0x\w{4}\('0x[\dabcdef]+'\)/g,/_0x\w{4}\('0x[\dabcdef]+'[, ]+'[^']{4}'\)/g,/\w+\('0x[\dabcdef]+'\)/g,/\w+\('0x[\dabcdef]+'[, ]+'[^']{4}'\)/g];for(let n of t){if(r)break;r=!!n.test(e)&&"obfuscation/hidden code"}}}if(!r)return s();nt[e]={suspect:!0,name:ot[e].split("/").pop(),type:ot[e].endsWith(".js")?"Plugin":"Theme",harm:r},console.log(`Found potentially dangerous ${nt[e].type.toLowerCase()}: ${nt[e].name}`),n(nt[e])}(e,t,s,wrongCallback);const a=await r.json();nt[e]=a,s(a)}).catch(()=>{})}let it=BDModules.get(e=>e.flowerStarContainer)[0],lt=BDModules.get(e=>e.childContainer)[0];const ct=o.React,dt=o.anchorClasses;class ut extends o.reactComponent{constructor(e){super(e),this.onChange=this.onChange.bind(this),this.showSettings=this.showSettings.bind(this),this.setInitialState(),this.hasSettings=this.props.addon.plugin&&"function"==typeof this.props.addon.plugin.getSettingsPanel,this.settingsPanel="",this.edit=this.edit.bind(this),this.delete=this.delete.bind(this),this.reload=this.reload.bind(this)}setInitialState(){this.state={checked:this.props.enabled,settings:!1,reloads:0,trusted:!1}}showSettings(){this.hasSettings&&this.setState({settings:!0})}closeSettings(){this.panelRef.current.innerHTML="",this.setState({settingsOpen:!1})}componentDidUpdate(){this.state.settings&&("object"==typeof this.settingsPanel&&this.refs.settingspanel.appendChild(this.settingsPanel),E["fork-ps-3"]&&setImmediate(()=>{const e=this.refs.cardNode,t=e.closest('div[class*="scroller-"]');if(!((e,t)=>{const n=e.scrollTop,s=n+e.clientHeight,r=t.offsetTop,o=r+t.clientHeight;return r<n||o>s})(t,e))return;const n=P.offset(e),s=P.offset(t),r=t.scrollTop,o=n.top-s.top+t.scrollTop-30;P.animate({duration:300,update:function(e){t.scrollTop=o>r?r+e*(o-r):r-e*(r-o)}})}))}getString(e){return e?"string"==typeof e?e:e.toString():"???"}get settingsComponent(){try{this.settingsPanel=this.props.addon.plugin.getSettingsPanel()}catch(e){L.err("Plugins","Unable to get settings panel for "+this.name+".",e)}return o.react.createElement("div",{className:"bd-card bd-addon-card settings-open ui-switch-item",ref:"cardNode"},o.react.createElement("div",{style:{float:"right",cursor:"pointer"},onClick:()=>{this.refs.settingspanel.innerHTML="",this.setState({settings:!1})}},o.react.createElement(we,null)),"object"==typeof this.settingsPanel&&o.react.createElement("div",{id:`plugin-settings-${this.name}`,className:"plugin-settings",ref:"settingspanel"}),"object"!=typeof this.settingsPanel&&o.react.createElement("div",{id:`plugin-settings-${this.name}`,className:"plugin-settings",ref:"settingspanel",dangerouslySetInnerHTML:{__html:this.settingsPanel}}))}buildTitle(e,t,n){const s="{{name}} v{{version}} by {{author}}".split(/({{[A-Za-z]+}})/),r=s.findIndex(e=>"{{name}}"==e);r&&(s[r]=ct.createElement("span",{className:"name bda-name"},e));const a=s.findIndex(e=>"{{version}}"==e);r&&(s[a]=ct.createElement("span",{className:"version bda-version"},t));const i=s.findIndex(e=>"{{author}}"==e);if(r){const e={className:"author bda-author"};(n.link||n.id)&&(e.className+=` ${dt.anchor} ${dt.anchorUnderlineOnHover}`,e.target="_blank",n.link&&(e.href=n.link),n.id&&(e.onClick=()=>{o.LayerStack.popLayer(),o.openDM(n.id)})),s[i]=ct.createElement(n.link||n.id?"a":"span",e,n.name)}return s.flat()}makeLink(e,t){const n={className:"bda-link bda-link-website",target:"_blank"};return"string"==typeof t&&(n.href=t),"function"==typeof t&&(n.onClick=e=>{e.preventDefault(),e.stopPropagation(),t()}),o.react.createElement("a",n,e)}makeButton(e,t,n){return ct.createElement(ue,{color:"black",side:"top",text:e},ct.createElement("div",{className:"bd-addon-button",onClick:n},t))}componentWillUnmount(){this.unmounted=!0}get links(){const e=[],t=this.props.addon;return t.website&&e.push(this.makeLink("Website",t.website)),t.source&&e.push(this.makeLink("Source",t.source)),t.invite&&e.push(this.makeLink("Support Server",()=>{const e=/\.gg\/(.*)$/;let n=t.invite;e.test(n)&&(n=n.match(e)[1]),o.LayerStack.popLayer(),o.InviteActions.acceptInviteAndTransitionToInviteChannel(n)})),t.donate&&e.push(this.makeLink("Donate",t.donate)),t.patreon&&e.push(this.makeLink("Patreon",t.patreon)),e}get footer(){const e=this.links;return(e.length||this.hasSettings)&&o.react.createElement("div",{className:"bd-card-footer bda-footer"},o.react.createElement("span",{className:"bd-addon-links bda-links"},...e.map((t,n)=>n<e.length-1?[t," | "]:t).flat()),this.hasSettings&&o.react.createElement("button",{onClick:this.showSettings,className:"bd-button bda-settings-button",disabled:!this.state.checked},"Settings"))}onChange(){this.props.toggle&&this.props.toggle(this.name),this.setState({checked:!this.state.checked})}edit(){this.props.edit(this.name)}delete(){this.props.remove(this.name)}reload(){this.props.reload(this.name)}get name(){return this.getString(this.props.addon.plugin?this.props.addon.plugin.getName():this.props.addon.name)}get author(){return this.getString(this.props.addon.plugin?this.props.addon.plugin.getAuthor():this.props.addon.author)}get description(){return this.getString(this.props.addon.plugin?this.props.addon.plugin.getDescription():this.props.addon.description)}get version(){return this.getString(this.props.addon.plugin?this.props.addon.plugin.getVersion():this.props.addon.version)}render(){if(this.state.settings)return this.settingsComponent;const{authorId:e,authorLink:t}=this.props.addon,n={};return this.isScanning?this.state.isTrusted&&(n.borderColor="#4087ed"):(this.isScanning=!0,function(e,t,n){const s=I.createHash("sha256");let r=Buffer.alloc(0);Object(et.createReadStream)(e).on("data",e=>{r=Buffer.concat([r,e]),s.update(e)}).on("end",()=>{const o=s.digest("hex");ot[o]=e,at(o,r,Object(tt.basename)(e),t,n)})}(Object(tt.resolve)(this.props.addon.filename.endsWith(".plugin.js")?V.pluginsFolder:V.themesFolder,this.props.addon.filename),e=>{this.unmounted||this.setState({isTrusted:!e.suspect},()=>{})})),o.react.createElement("div",{className:"bd-card bd-addon-card settings-closed ui-switch-item",style:n},o.react.createElement("div",{className:"bd-addon-header bda-header"},o.react.createElement("div",{className:"bd-card-title bda-header-title"},this.buildTitle(this.name,this.version,{name:this.author,id:e,link:t})),o.react.createElement("div",{className:"bd-addon-controls bda-controls"},this.props.edit&&this.makeButton("Edit",ct.createElement(Ze,{className:"bd-icon"}),this.edit),this.props.remove&&this.makeButton("Delete",ct.createElement(Ke,{className:"bd-icon"}),this.delete),this.props.reload&&this.makeButton("Reload",ct.createElement(Ve,{className:"bd-icon"}),this.reload),ct.createElement(Re,{onChange:this.onChange,checked:this.state.checked}))),o.react.createElement("div",{className:"bd-scroller-wrap bda-description-wrap scroller-wrap fade"},o.react.createElement("div",{className:"bd-scroller bd-addon-description bda-description scroller"},this.description)),this.footer)}}const pt=ut.prototype.render;Object.defineProperty(ut.prototype,"render",{enumerable:!1,configurable:!1,set:function(){console.warn("Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>pt});const ht=o.React;class mt extends ht.Component{render(){const e=this.props.size||"16px";return ht.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},ht.createElement("path",{d:"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z"}))}}const gt=o.React;class ft extends gt.Component{constructor(e){super(e),this.state={open:!1,value:this.props.value||this.props.options[0].value},this.dropdown=gt.createRef(),this.onChange=this.onChange.bind(this),this.showMenu=this.showMenu.bind(this),this.hideMenu=this.hideMenu.bind(this)}showMenu(e){e.preventDefault(),this.setState({open:!0},()=>{document.addEventListener("click",this.hideMenu)})}hideMenu(){this.setState({open:!1},()=>{document.removeEventListener("click",this.hideMenu)})}onChange(e){this.setState({value:e}),this.props.onChange&&this.props.onChange(e)}get selected(){return this.props.options.find(e=>e.value==this.state.value)}get options(){const e=this.selected;return gt.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>gt.createElement("div",{className:`bd-select-option${e.value==t.value?" selected":""}`,onClick:this.onChange.bind(this,t.value)},t.label)))}render(){const e="transparent"==this.props.style?" bd-select-transparent":"",t=this.state.open?" menu-open":"";return gt.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},gt.createElement("div",{className:"bd-select-value"},this.selected.label),gt.createElement(mt,{className:"bd-select-arrow"}),this.state.open&&this.options)}}const bt=o.React;class vt extends bt.Component{render(){const e=this.props.size||"16px";return bt.createElement("svg",{className:this.props.className||"",fill:"#FFFFFF",viewBox:"0 0 24 24",style:{width:e,height:e}},bt.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),bt.createElement("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}))}}const yt=o.React;class Et extends yt.Component{render(){return yt.createElement("div",{className:"bd-search-wrapper"},yt.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),yt.createElement(vt,null))}}function wt(){return(wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e}).apply(this,arguments)}const Ct=u("Tooltip"),St=o.react;class xt extends o.reactComponent{constructor(e){super(e),this.state={sort:"name",ascending:!0,query:""},this.isPlugins="plugins"==this.props.type,this.cookie=this.isPlugins?B:N,this.manager=this.isPlugins?R:O,this.sort=this.sort.bind(this),this.reverse=this.reverse.bind(this),this.search=this.search.bind(this)}openFolder(){n(0).shell.openItem(this.isPlugins?V.pluginsFolder:V.themesFolder)}edit(e){console.log(e),this.manager.edit(e)}async delete(e){await this.confirmDelete(e)&&this.manager.delete(e)}confirmDelete(e){return new Promise(t=>{Ss.showConfirmationModal("Are You Sure?",`Are you sure you want to delete ${e}?`,{danger:!0,confirmText:"Delete",onConfirm:()=>{t(!0)},onCancel:()=>{t(!1)}})})}get sortOptions(){return[{label:"Name",value:"name"},{label:"Author",value:"author"},{label:"Version",value:"version"},{label:"Recently Added",value:"added"},{label:"Last Modified",value:"modified"},{label:"File Size",value:"size"}]}get directions(){return[{label:"Ascending",value:!0},{label:"Descending",value:!1}]}reverse(e){this.setState({ascending:e})}sort(e){this.setState({sort:e})}search(e){this.setState({query:e.target.value.toLocaleLowerCase()})}getProps(e){return{key:this.getName(e),enabled:this.cookie[this.getName(e)],toggle:this.manager.toggle.bind(this.manager),remove:this.delete.bind(this),addon:e,hash:e.hash}}getString(e){return e?"string"==typeof e?e:e.toString():"???"}get list(){return"plugins"===this.props.type?Object.values(bdplugins):Object.values(bdthemes)}getAddons(){const e=this.list.sort((e,t)=>{const n=this.state.sort.charAt(0).toUpperCase()+this.state.sort.slice(1),s=e.plugin&&e.plugin[`get${n}`]?this.getString(e.plugin[`get${n}`]()):e[this.state.sort],r=t.plugin&&t.plugin[`get${n}`]?this.getString(t.plugin[`get${n}`]()):t[this.state.sort];return"string"==typeof s?s.toLocaleLowerCase().localeCompare(r.toLocaleLowerCase()):s>r?1:r>s?-1:0});this.state.ascending||e.reverse();const t=[];for(let n=0;n<e.length;n++){const s=e[n];if(this.state.query){let e=null;const t=this.getName(s),n=this.getAuthor(s),r=this.getDescription(s),o=this.getVersion(s);if(t&&(e=t.toLocaleLowerCase().includes(this.state.query)),n&&(e=e||n.toLocaleLowerCase().includes(this.state.query)),r&&(e=e||r.toLocaleLowerCase().includes(this.state.query)),o&&(e=e||o.toLocaleLowerCase().includes(this.state.query)),!e)continue}const r=this.getProps(s);t.push(St.createElement(Ue,null,St.createElement(ut,wt({},r,{reload:!E["fork-ps-5"]&&this.manager.reload.bind(this.manager)}))))}return t}getName(e){return this.getString(e.plugin?e.plugin.getName():e.name)}getAuthor(e){return this.getString(e.plugin?e.plugin.getAuthor():e.author)}getDescription(e){return this.getString(e.plugin?e.plugin.getDescription():e.description)}getVersion(e){return this.getString(e.plugin?e.plugin.getVersion():e.version)}render(){const e=St.createElement(Ct,{color:"black",position:"top",text:"Reload List"},e=>St.createElement(Ve,wt({},e,{className:"bd-icon bd-reload bd-reload-header",size:"18px",onClick:async()=>{this.isPlugins?R.updatePluginList():O.updateThemeList(),this.forceUpdate()}}))),t=this.getAddons();return St.createElement(Ge,{title:`${this.props.type.toUpperCase()}—${t.length}`},St.createElement("button",{key:"folder-button",className:"bd-button bd-pfbtn",onClick:this.openFolder.bind(this)},"Open ",this.isPlugins?"Plugin":"Theme"," Folder"),!E["fork-ps-5"]&&e,St.createElement("div",{className:"bd-controls bd-addon-controls"},St.createElement(Et,{onChange:this.search,placeholder:`Search ${this.props.type}...`}),St.createElement("div",{className:"bd-addon-dropdowns"},St.createElement("div",{className:"bd-select-wrapper"},St.createElement("label",{className:"bd-label"},"Sort by:"),St.createElement(ft,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),St.createElement("div",{className:"bd-select-wrapper"},St.createElement("label",{className:"bd-label"},"Order:"),St.createElement(ft,{options:this.directions,onChange:this.reverse,style:"transparent"})))),St.createElement("div",{className:"bda-slist bd-addon-list"},t))}}const Dt=xt.prototype.render;Object.defineProperty(xt.prototype,"render",{enumerable:!1,configurable:!1,set:function(){console.warn("Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>Dt});const kt=BDModules.get(e=>e.Dispatcher&&e.default&&e.default.dispatch)[0].default,Mt=BDModules.get(e=>e.ActionTypes)[0].ActionTypes,Bt=process.pid;var Nt=new class{constructor(){this.enabled=!1,this.game=w}get formatedGame(){if(!this.game)return null;if(!1===this.enabled)return null;return{name:this.game.name||C.name,application_id:this.game.application_id||C.application_id,details:this.game.details||void 0,state:this.game.state||void 0,timestamps:this.game["timestamps.start"]?{start:this.game["timestamps.start"]}:void 0,assets:this.game["assets.large"]?{large_image:this.game["assets.large"],small_image:this.game["assets.small"]||void 0}:void 0}}sendGame(){kt.dispatch({type:Mt.LOCAL_ACTIVITY_UPDATE,socketId:"lightcord-spoof-socket",pid:Bt,activity:this.formatedGame})}enable(){this.enabled||(this.enabled=!0,console.log("Enabling custom RichPresence"),this.set(w||Object.create(C)),this.sendGame())}disable(){this.enabled&&(this.enabled=!1,console.log("Disabling custom RichPresence"),this.sendGame())}async fetchAssets(e){let t=await BDModules.get(e=>e.getAssets)[0].getAssets(e);if(t.undefined&&"number"==typeof t.undefined)throw new Error("Unknown Application");return t}set(e){this.game=e,this.sendGame()}};const Pt=o.react,Lt=BDModules.get(e=>e.Interval)[0];var $t=function(e,t){class n extends Pt.PureComponent{constructor(e){super(e),this._interval=new Lt.Interval,this.state=Object.assign({},this.getUpdatedTime())}componentDidMount(){let e=this;this._interval.start(1e3,(function(){return e.setState(e.getUpdatedTime())}))}componentWillUnmount(){this._interval.stop()}componentDidUpdate(e){e.timestamps.end===this.props.timestamps.end&&e.timestamps.start===this.props.timestamps.start||this.setState(this.getUpdatedTime())}getUpdatedTime(){let e=this.props.timestamps,t=Date.now()/1e3;return null!=e.end?this.getDiff(t,At(e.end)/1e3):null!=e.start?this.getDiff(At(e.start)/1e3,t):{hours:0,minutes:0,seconds:0}}renderTime(e,t){return void 0===t&&(t=!1),t&&e<=0?-1:e<10?"0"+e:e}getDiff(e,t){let n=Math.max(t-e,0),s=Math.floor(n)%60,r=Math.floor(n/60)%60;return{hours:Math.floor(n/3600)%24,minutes:r,seconds:s}}render(){let n=this.props,s=n.timestamps,r=function(e,t){if(null==e)return{};let n={},s=Object.keys(e);for(let r=0;r<s.length;r++){let o=s[r];!t.indexOf(o)>=0&&(n[o]=e[o])}return n}(n,["timestamps"]),o=this.state,a=o.hours,i=o.minutes,l=o.seconds,c={hours:this.renderTime(a,!0),minutes:this.renderTime(i),seconds:this.renderTime(l)};return null!==s.end?Pt.createElement(e,Object.assign({},r,{message:t.USER_ACTIVITY_TIMESTAMP_END.format(c)})):null!==s.start?Pt.createElement(e,Object.assign({},r,{message:t.USER_ACTIVITY_TIMESTAMP_START.format(c)})):null}}return n};function At(e){return(""+e).length<13?1e3*e:e}const Tt=o.React;let Rt;class jt extends Tt.Component{constructor(e){super(e),this.state={data:X.getSettingGroup("rpc")||C,assets:[]},this.preview=null,this.isfetching=!1,this.state.data.application_id&&this.fetchAssets(),this.assetComponents=new Set}updateWhenFetched(e){this.assetComponents.add(e)}onChange(e,t){let n=Ot.find(t=>t.id===e.props.id);this.setState({data:Object.assign(w,this.state.data,{[n.id]:t||null}),assets:this.state.assets}),"application_id"===e.props.id&&this.fetchAssets(),X.setSettingGroup("rpc",w),this.preview.forceUpdate(),Nt.set(w)}fetchAssets(){if(!0===this.isfetching){let e=this.state.data.application_id;setTimeout(()=>{this.state.data.application_id===e&&this.fetchAssets()},5e3)}if(!this.state.data.application_id)return this.setState({data:this.state.data,assets:[]}),this.forceUpdate(),void this.assetComponents.forEach(e=>e.forceUpdate());this.isfetching=!0,Nt.fetchAssets(this.state.data.application_id).then(e=>{this.isfetching=!1,this.setState({data:this.state.data,assets:Object.keys(e).map(t=>{let n=e[t];return{id:n.id,name:n.name,type:n.type}})}),this.forceUpdate(),this.assetComponents.forEach(e=>e.forceUpdate())}).catch(()=>{this.isfetching=!1,this.setState({data:this.state.data,assets:[]}),this.forceUpdate(),this.assetComponents.forEach(e=>e.forceUpdate())})}updatePreview(e){this.setState({data:e})}get modules(){return Rt||(Rt=[BDModules.get(e=>e.marginBottom20)[0]])}render(){console.log("Rerendering rpc manager");let[e]=this.modules;return[Tt.createElement(Oe,{title:"RichPresence Settings",settings:this.props.settings,onChange:this.props.onChange}),Tt.createElement(_e,null),Tt.createElement(Se,{text:"RichPresence"}),Tt.createElement("div",null,this.optionsComponents),Tt.createElement("div",null,Tt.createElement(_e,null),Tt.createElement(Se,{text:"Preview"}),Tt.createElement(Jt,{settings:this})),Tt.createElement("div",{className:e.marginBottom20}),Tt.createElement("button",{style:{opacity:.01},onClick:window.ohgodohfuck},"Oh god Oh fuck"),Tt.createElement("button",{style:{opacity:.01},onClick:()=>{r.remote.shell.openExternal("https://www.youtube.com/watch?v=LkYa7rps_g4")}},"See ? I pulled a litle sneaky on ya")]}get optionsComponents(){return this._optionsComponents||(this._optionsComponents=Ot.map(e=>{if("text"===e.type)return Tt.createElement(Wt,{setting:e,manager:this,id:e.id});if("number"===e.type){return[Tt.createElement(Ht,{setting:e,manager:this,id:e.id})]}return"choice"===e.type?["assets.small","assets.large"].includes(e.id)?Tt.createElement(zt,{setting:e,manager:this,id:e.id,choices:[{value:"none",label:"No assets"}].concat(this.state.assets.map(e=>({value:"asset-"+e.id,label:e.name})))}):"Unknown choice.":void 0}))}}const Ot=[{title:"Application ID",id:"application_id",type:"number",placeholder:"711416957718757418"},{title:"Name",id:"name",type:"text",placeholder:"Lightcord"},{title:"Details",id:"details",type:"text",placeholder:"Browsing Discord"},{title:"State",id:"state",type:"text",placeholder:"Lightcord Client"},{title:"Timestamp Start",id:"timestamps.start",type:"number",get placeholder(){return Date.now()}},{title:"LargeAsset",id:"assets.large",type:"choice"},{title:"SmallAsset",id:"assets.small",type:"choice"}];let It,_t,Ft;class Wt extends Tt.PureComponent{get modules(){return It&&It[0]?It:It=[BDModules.get(e=>e.removeKeybind)[0],BDModules.get(e=>e.marginBottom20)[0],BDModules.get(e=>e.defaultMarginh5)[0],BDModules.get(e=>e.colorStandard)[0],BDModules.get(e=>e.size32)[0],BDModules.get(e=>e._horizontal)[0],BDModules.get(e=>e.inputMini)[0],BDModules.get(e=>e.size16&&e.size20)[0]]}constructor(e){super(e);let t=this.props.setting;this.state={data:this.props.manager.state.data[t.id]},this.input=Tt.createElement(window.Lightcord.Api.Components.inputs.TextInput,{placeholder:t.placeholder,name:t.id,value:this.state.data,onChange:e=>{this.setState({data:e}),!this.lastEdited||this.lastEdited<Date.now()-500?(this.props.manager.onChange(this,e),this.lastEdited=Date.now()):this.isTiming||(this.isTiming=setTimeout(()=>{this.props.manager.onChange(this,this.state.data),this.isTiming=null,this.lastEdited=Date.now()},500))},type:"text"})}render(){let e=this.props.setting,[t,n,s,r,o,a,i,l]=this.modules;return Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${a.flexChild}`},Tt.createElement("h5",{className:r.colorStandard+" "+o.size14+" "+s.h5+" "+s.defaultMarginh5},e.title),this.input),Tt.createElement(Vt,null))}}class Ht extends Tt.PureComponent{get modules(){return _t||(_t=[BDModules.get(e=>e.removeKeybind)[0],BDModules.get(e=>e.marginBottom20)[0],BDModules.get(e=>e.defaultMarginh5)[0],BDModules.get(e=>e.colorStandard)[0],BDModules.get(e=>e.size32)[0],BDModules.get(e=>e._horizontal)[0],BDModules.get(e=>e.inputMini)[0],BDModules.get(e=>e.size16&&e.size20)[0],BDModules.get(e=>e.colorTransparent)[0]])}constructor(e){super(e);let t=this.props.setting;this.state={data:this.props.manager.state.data[t.id]},this.input=Tt.createElement(window.Lightcord.Api.Components.inputs.TextInput,{placeholder:t.placeholder,name:t.id,value:this.state.data,type:"number",onChange:(e,t,n)=>{(e=e.replace(/[^\d]+/g,""))!=this.state.data?(!this.lastEdited||this.lastEdited<Date.now()-500?(this.props.manager.onChange(this,e),this.lastEdited=Date.now()):this.isTiming||(this.isTiming=setTimeout(()=>{this.props.manager.onChange(this,this.state.data),this.isTiming=null,this.lastEdited=Date.now()},500)),this.setState({data:e})):n.setValue(e)},type:"text"})}render(){let e=this.props.setting,[t,n,s,r,o,a]=this.modules;return Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${a.flexChild}`},Tt.createElement("h5",{className:r.colorStandard+" "+o.size14+" "+s.h5+" "+s.defaultMarginh5},e.title),this.input,"timestamps.start"===e.id?Tt.createElement(Lightcord.Api.Components.inputs.Button,{onClick:()=>{DiscordNative.clipboard.copy(Date.now()+"")},color:"brand"},"Copy current timestamp"):null),Tt.createElement(Vt,null))}}class zt extends Tt.PureComponent{constructor(e){super(e);let t=this.props.setting;this.state={data:this.props.manager.state.data[t.id]?"asset-"+this.props.manager.state.data[t.id]:"none"},this.props.manager.updateWhenFetched(this)}onChange(e){let t=e.value;!this.lastEdited||this.lastEdited<Date.now()-500?(this.props.manager.onChange(this,"none"===t?null:t.replace("asset-","")),this.lastEdited=Date.now()):this.isTiming||(this.isTiming=setTimeout(()=>{this.props.manager.onChange(this,"none"===this.state.data?null:this.state.data.replace("asset-","")),this.isTiming=null,this.lastEdited=Date.now()},500)),this.setState({data:t}),this.forceUpdate()}get modules(){return Ft||(Ft=[BDModules.get(e=>e.removeKeybind)[0],BDModules.get(e=>e.marginBottom20)[0],BDModules.get(e=>e.defaultMarginh5)[0],BDModules.get(e=>e.colorStandard)[0],BDModules.get(e=>e.size32)[0],BDModules.get(e=>e._horizontal)[0]])}render(){let e=this.props.setting,[t,n,s,r,o,a]=this.modules,i=this.props.manager.state.assets.map(e=>({value:"asset-"+e.id,label:e.name}));return i.unshift({value:"none",label:"No assets"}),Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${a.flexChild}`},Tt.createElement("h5",{className:r.colorStandard+" "+o.size14+" "+s.h5+" "+s.defaultMarginh5},e.title),Tt.createElement(window.Lightcord.Api.Components.inputs.Dropdown,{value:this.state.data,options:i,onChange:this.onChange.bind(this)})),Tt.createElement(Vt,null))}}let Ut,qt,Gt=[];class Vt extends Tt.PureComponent{get modules(){return Gt&&Gt[0]?Gt:Gt=[BDModules.get(e=>e.divider&&1===Object.keys(e).length)[0],BDModules.get(e=>e.dividerDefault)[0]]}render(){let[e,t]=this.modules;return Tt.createElement("div",{class:`${e.divider} ${t.dividerDefault}`})}}Tt.Component;class Jt extends Tt.Component{constructor(e={}){super(e),this.state={active:"profile"},this.tabs=[],this.props.settings.preview=this}changeTab(e){this.state.active!==e.props.id&&(this.tabs.forEach(e=>{e.setActive(!1)}),e.setActive(!0),this.setState({active:e.props.id}))}render(){let e=new this.preview({preview:this});return e.setState(this.state.rpc),Tt.createElement("div",{className:"lc-tabWrapper"},Tt.createElement("div",{className:"lc-tabnav",style:{flex:"0 1 auto"}},Tt.createElement(Zt,{preview:this,title:"Full Profile",id:"profile"}),Tt.createElement(Zt,{preview:this,title:"User Popout",id:"popout"})),e.render())}isActive(e){return this.state.active===e}get preview(){return"profile"===this.state.active?en:Yt}}class Zt extends Tt.Component{constructor(e){super(e),this.state={active:e.preview.isActive(e.id)},e.preview.tabs.push(this)}setActive(e){this.setState({active:!!e})}render(){let e="lc-navItem";return this.state.active?e+=" lc-navItemActive":e+=" lc-navItemInactive",Tt.createElement("div",{className:e,onClick:()=>{this.props.preview.changeTab(this)}},this.props.title)}}class Yt extends Tt.Component{get modules(){return Ut||(Ut=[BDModules.get(e=>e.userPopout)[0],BDModules.get(e=>e._horizontal)[0],BDModules.get(e=>e.vertical&&e.alignStretch&&!e.streamerModeEnabledBtn)[0],BDModules.get(e=>e.bot)[0],BDModules.get(e=>e.activityUserPopout)[0],BDModules.get(e=>e.muted&&e.wrapper&&e.base)[0],BDModules.get(e=>e.size32)[0],BDModules.get(e=>e.themeGhostHairlineChannels)[0],BDModules.get(e=>e.note&&1===Object.keys(e).length)[0],BDModules.get(e=>e.pro&&e.inline)[0],BDModules.get(e=>e.colorStandard)[0],BDModules.get(e=>e.default&&e.default.Messages)[0].default.Messages,BDModules.get(e=>e.pointerEvents)[0],BDModules.get(e=>e.default&&e.default.getCurrentUser)[0].default])}render(){let[e,t,n,s,r,o,a,i,l,c,d,u,p,h]=this.modules,m=h.getCurrentUser(),g=m.getAvatarURL(m.avatar.startsWith("a_")?"gif":"png"),f=Object.assign({},C,this.props.preview.props.settings.state.data);Qt=Qt||r.timestamp;let b=(()=>{if(!f["assets.large"])return null;let e=[];return f["assets.large"]&&e.push(Tt.createElement("img",{alt:"",src:`https://cdn.discordapp.com/app-assets/${f.application_id}/${f["assets.large"]}.png`,class:`${r.assetsLargeImageUserPopout} ${f["assets.small"]?r.assetsLargeMaskUserPopout:""}`})),f["assets.small"]&&e.push(Tt.createElement("img",{alt:"",src:`https://cdn.discordapp.com/app-assets/${f.application_id}/${f["assets.small"]}.png`,class:r.assetsSmallImageUserPopout})),e.length?Tt.createElement("div",{class:r.assets},e):null})();return Tt.createElement("div",{className:"lc-userPopout lc-tab-box-shadow"},Tt.createElement("div",{class:e.userPopout,role:"dialog",tabindex:"-1"},Tt.createElement("div",{class:e.headerPlaying},Tt.createElement("div",{class:`${t.flex} ${n.vertical} ${n.justifyCenter} ${n.alignCenter} ${n.noWrap} ${e.headerTop}`,style:{flex:"1 1 auto"}},Tt.createElement("div",{class:e.avatarWrapperNormal,role:"button",tabindex:"0"},Tt.createElement("div",{class:p,role:"img",style:{width:"80px",height:"80px"}},Tt.createElement("svg",{width:"92",height:"80",viewBox:"0 0 92 80",class:`${p.mask} ${p.svg}`},Tt.createElement("foreignObject",{x:"0",y:"0",width:"80",height:"80",mask:"url(#svg-mask-avatar-status-round-80)"},Tt.createElement("img",{src:g,alt:" ",class:p.avatar})),Tt.createElement(Kt,null))),Tt.createElement("svg",{width:"80",height:"80",class:e.avatarHint,viewBox:"0 0 80 80"},Tt.createElement("foreignObject",{x:"0",y:"0",width:"80",height:"80",mask:"url(#svg-mask-avatar-status-round-80)"},Tt.createElement("div",{class:e.avatarHintInner},u.VIEW_PROFILE)))),Tt.createElement("div",{class:e.headerText},Tt.createElement("div",{class:`${t.flex} ${n.horizontal} ${n.justifyStart} ${n.alignCenter} ${n.noWrap}`,style:{flex:"1 1 auto"}},Tt.createElement("div",{class:`${e.headerTagNoNickname} ${s.nameTag}`},Tt.createElement("span",{class:`${s.username} ${e.headerTagUsernameNoNickname}`},m.username),Tt.createElement("span",null,"#",m.discriminator))))),Tt.createElement("div",{class:`${r.activityUserPopout} ${e.activity}`},Tt.createElement("h3",{class:`${r.headerTextNormal} ${o.base} ${a.size12}`},u.USER_ACTIVITY_HEADER_PLAYING),Tt.createElement("div",{class:r.bodyNormal},b,Tt.createElement("div",{class:b?r.contentImagesUserPopout:r.contentNoImagesUserPopout,style:{flex:"1 1 auto"}},f.name?Tt.createElement("h3",{class:`${r.nameNormal} ${o.base} ${a.size14}`,title:f.name},Tt.createElement("span",{class:r.activityName},f.name)):null,f.details?Tt.createElement("div",{title:f.title,class:r.details},f.details):null,f.state?Tt.createElement("div",{class:r.state},Tt.createElement("span",{title:f.state},f.state)):null,(()=>{if(!f["timestamps.start"])return null;let e=$t(on,u);return Tt.createElement("div",{class:r.timestamp},Tt.createElement(e,{timestamps:{end:null,start:f["timestamps.start"]}}))})())))),Tt.createElement("div",{class:`${i.scrollerWrap} ${e.body} ${i.scrollerThemed} ${i.themeGhostHairline} ${i.scrollerFade}`},Tt.createElement("div",{class:`${i.scroller} ${e.bodyInner}`},Tt.createElement("div",{class:e.bodyTitle},u.NOTE),Tt.createElement("div",{class:`${l.note} ${e.note}`},Tt.createElement("textarea",{placeholder:u.NOTE_PLACEHOLDER,maxlength:"256",autocorrect:"off",class:BDModules.get(e=>e.scrollbarGhostHairline)[0].scrollbarGhostHairline,style:{height:"36px"},disabled:!0})))),Tt.createElement("div",{class:e.footer},Tt.createElement("div",{class:`${e.protip} ${c.inline}`},Tt.createElement("h3",{class:`${c.pro} ${o.base} ${a.size12}`,style:{color:"rgb(67, 181, 129)"}},u.PINNED_MESSAGES_PRO_TIP),Tt.createElement("div",{class:`${d.colorStandard} ${a.size14} ${c.tip}`},u.CONTEXT_MENU_HINT)))))}}class Kt extends Tt.Component{get modules(){return qt||(qt=[BDModules.get(e=>e.default&&e.default.getPresence)[0],BDModules.get(e=>e.pointerEvents)[0].pointerEvents])}render(){let[e,t]=this.modules,n=e.default.getPresence().status;return"invisible"===n&&(n="offline"),Tt.createElement("rect",{width:"16",height:"16",x:"60",y:"60",fill:"#ffffff",mask:`url(#svg-mask-status-${n})`,className:t})}}let Xt,Qt="";class en extends Tt.Component{get modules(){return Xt||(Xt=[BDModules.get(e=>e.flex&&e._horizontal)[0],BDModules.get(e=>e.vertical&&e.alignStretch&&!e.streamerModeEnabledBtn)[0],BDModules.get(e=>e.topSectionStreaming)[0],BDModules.get(e=>e.pointerEvents)[0],BDModules.get(e=>e.bot)[0],BDModules.get(e=>e.activityProfile)[0],BDModules.get(e=>e.muted&&e.wrapper&&e.base)[0],BDModules.get(e=>e.size32)[0],BDModules.get(e=>e.scrollerFade)[0],BDModules.get(e=>e.note&&1===Object.keys(e).length)[0],BDModules.get(e=>e.default&&e.default.Messages)[0].default.Messages])}render(){let e=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0].default.getCurrentUser(),t=e.getAvatarURL(e.avatar.startsWith("a_")?"gif":"png"),[n,s,r,o,a,i,l,c,d,u,p]=this.modules,h=Object.assign({},C,this.props.preview.props.settings.state.data);Qt=Qt||i.timestamp;let m=(()=>{if(!h["assets.large"])return null;let e=[];return h["assets.large"]&&e.push(Tt.createElement("img",{alt:"",src:`https://cdn.discordapp.com/app-assets/${h.application_id}/${h["assets.large"]}.png`,class:`${i.assetsLargeImageProfile} ${h["assets.small"]?i.assetsLargeMaskProfile:""}`})),h["assets.small"]&&e.push(Tt.createElement("img",{alt:"",src:`https://cdn.discordapp.com/app-assets/${h.application_id}/${h["assets.small"]}.png`,class:i.assetsSmallImageProfile})),e.length?Tt.createElement("div",{class:i.assets},e):null})();return[Tt.createElement("div",{className:"lc-tab lc-tab-box-shadow"},Tt.createElement("div",{class:`${n.flex} ${s.vertical} ${s.justifyStart} ${s.alignStretch} ${s.noWrap} ${r.root}`,style:{flex:"1 1 auto"}},Tt.createElement("div",{class:r.topSectionPlaying},Tt.createElement("header",{class:r.header},Tt.createElement("div",{class:`${r.avatar} ${o.wrapper}`,role:"img",style:{width:"80px",height:"80px"}},Tt.createElement("svg",{width:"92",height:"80",viewBox:"0 0 92 80",class:`${o.mask} ${o.svg}`},Tt.createElement("foreignObject",{x:"0",y:"0",width:"80",height:"80",mask:"url(#svg-mask-avatar-status-round-80)"},Tt.createElement("img",{src:t,alt:" ",class:o.avatar})),Tt.createElement(Kt,null))),Tt.createElement("div",{class:`${r.headerInfo}`},Tt.createElement("div",{class:`${r.nameTag} ${a.nameTag}`},Tt.createElement("span",{class:`${r.username} ${r.username}`},e.username),Tt.createElement("span",{class:r.discriminator},"#",e.discriminator)),Tt.createElement("div",{class:`${n.flex} ${n.horizontal} ${s.justifyStart} ${s.alignStretch} ${s.noWrap} ${r.profileBadges}`,style:{flex:"1 1 auto"}},Tt.createElement(sn,null)))),Tt.createElement("div",{class:r.headerFill},Tt.createElement("div",{class:`${i.activityProfile} ${r.activity}`},Tt.createElement("h3",{class:`${i.headerTextNormal} ${l.base} ${c.size12}`},p.USER_ACTIVITY_HEADER_PLAYING),Tt.createElement("div",{class:i.bodyNormal},m,Tt.createElement("div",{class:m?i.contentImagesProfile:i.contentNoImagesUserPopout,style:{flex:"1 1 auto"}},h.name?Tt.createElement("h3",{class:`${i.nameNormal} ${l.base} ${c.size14}`,title:h.name},Tt.createElement("span",{class:i.activityName},h.name)):null,h.details?Tt.createElement("div",{title:h.title,class:i.details},h.details):null,h.state?Tt.createElement("div",{class:i.state},Tt.createElement("span",{title:h.state},h.state)):null,(()=>{if(!h["timestamps.start"])return null;let e=$t(on,p);return Tt.createElement("div",{class:i.timestamp},Tt.createElement(e,{timestamps:{end:null,start:h["timestamps.start"]}}))})()))))),Tt.createElement("div",{class:r.body},Tt.createElement("div",{class:`${d.scrollerWrap} ${d.scrollerFade}`},Tt.createElement("div",{class:d.scroller},Tt.createElement("div",{class:r.userInfoSection},Tt.createElement("div",{class:r.userInfoSectionHeader},p.NOTE),Tt.createElement("div",{class:`${r.note} ${u.note}`},Tt.createElement("textarea",{placeholder:p.NOTE_PLACEHOLDER,maxlength:"256",autocorrect:"off",class:BDModules.get(e=>e.scrollbarGhostHairline)[0].scrollbarGhostHairline,style:{height:"40px"},disabled:!0}))),Tt.createElement(tn,null))))))]}}class tn extends Tt.Component{render(){let e=[],t=BDModules.get(e=>e.topSectionStreaming)[0],n=BDModules.get(e=>e.default&&e.default.getAccounts)[0].default.getAccounts().filter(e=>1===e.visibility);for(let t of n)e.push(Tt.createElement(nn,{acc:t}));return e.length>0?Tt.createElement("div",{class:t.userInfoSection},Tt.createElement("div",{class:t.connectedAccounts},e)):null}}class nn extends Tt.Component{render(){let[e,t,n,s,r,o]=[BDModules.get(e=>e.flex&&e._horizontal)[0],BDModules.get(e=>e.vertical&&e.alignStretch&&!e.streamerModeEnabledBtn)[0],BDModules.get(e=>e.topSectionStreaming)[0],BDModules.get(e=>e.flowerStarContainer)[0],BDModules.get(e=>e.anchor)[0],BDModules.get(e=>e.default&&e.default.get&&e.default.map)[0].default],a=this.props.acc,i=o.get(a.type);return Tt.createElement("div",{class:`${e.flex} ${e.horizontal} ${t.justifyStart} ${t.alignCenter} ${t.noWrap} ${n.connectedAccount}`,style:{flex:"0 1 auto"}},Tt.createElement("img",{alt:`Logo ${i.name}`,class:n.connectedAccountIcon,src:i.icon.color||i.icon.white||i.icon.grey}),Tt.createElement("div",{class:n.connectedAccountNameInner},Tt.createElement("div",{class:n.connectedAccountName},a.name),a.verified?Tt.createElement("span",null,Tt.createElement("div",{class:`${s.flowerStarContainer} ${n.connectedAccountVerifiedIcon}`,style:{width:"16px",height:"16px"}},Tt.createElement("svg",{class:s.flowerStar,width:"16",height:"16",viewBox:"0 0 16 15.2"},Tt.createElement("path",{fill:"#4f545c","fill-rule":"evenodd",d:"m16 7.6c0 .79-1.28 1.38-1.52 2.09s.44 2 0 2.59-1.84.35-2.46.8-.79 1.84-1.54 2.09-1.67-.8-2.47-.8-1.75 1-2.47.8-.92-1.64-1.54-2.09-2-.18-2.46-.8.23-1.84 0-2.59-1.54-1.3-1.54-2.09 1.28-1.38 1.52-2.09-.44-2 0-2.59 1.85-.35 2.48-.8.78-1.84 1.53-2.12 1.67.83 2.47.83 1.75-1 2.47-.8.91 1.64 1.53 2.09 2 .18 2.46.8-.23 1.84 0 2.59 1.54 1.3 1.54 2.09z"})),Tt.createElement("div",{class:s.childContainer},Tt.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 15.2"},Tt.createElement("path",{d:"M7.4,11.17,4,8.62,5,7.26l2,1.53L10.64,4l1.36,1Z",fill:"#ffffff"}))))):null),Tt.createElement("a",{class:`${r.anchor} ${r.anchorUnderlineOnHover}`,rel:"noreferrer noopener",target:"_blank",role:"button",tabindex:"0"},Tt.createElement("svg",{class:n.connectedAccountOpenIcon,width:"24",height:"24",viewBox:"0 0 24 24"},Tt.createElement("path",{fill:"currentColor",d:"M10 5V3H5.375C4.06519 3 3 4.06519 3 5.375V18.625C3 19.936 4.06519 21 5.375 21H18.625C19.936 21 21 19.936 21 18.625V14H19V19H5V5H10Z"}),Tt.createElement("path",{fill:"currentColor",d:"M21 2.99902H14V4.99902H17.586L9.29297 13.292L10.707 14.706L19 6.41302V9.99902H21V2.99902Z"}))))}}class sn extends Tt.Component{render(){let e=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0].default.getCurrentUser(),t=BDModules.get(e=>e.topSectionStreaming)[0],n=BDModules.get(e=>e.UserFlags)[0].UserFlags,s=[],r=[];for(let t in n)e.hasFlag(n[t])&&r.push(t);for(let e of r){let n=`profileBadge${e.toLowerCase().replace(/_/g," ").split(" ").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}`;n=n.replace("HypesquadOnline","HypeSquadOnline"),t[n]&&s.push(Tt.createElement(rn,{name:n}))}return e.hasPremiumSubscription&&s.push(Tt.createElement(rn,{name:"profileBadgePremium"})),s}}class rn extends Tt.Component{render(){let e=BDModules.get(e=>e.topSectionStreaming)[0];return Tt.createElement("div",{class:e.profileBadgeWrapper},Tt.createElement("div",null,Tt.createElement("div",{class:"",role:"button",tabindex:"0"},Tt.createElement("div",{class:`${e.profileBadge} ${e[this.props.name]}`}))))}}class on extends Tt.Component{render(){return Tt.createElement("div",{className:Qt},this.props.message)}}const an=o.React;let ln=BDModules.get(e=>e.defaultMarginh5)[0],cn=BDModules.get(e=>e.colorStandard)[0],dn=BDModules.get(e=>e.size32)[0],un=BDModules.get(e=>e.scrollbarGhostHairline)[0];const pn=BDModules.get(e=>e.default&&e.default.getGuilds)[0].default,hn=BDModules.get(e=>e.default&&e.default.getRelationships)[0].default,mn=BDModules.get(e=>e.default&&e.default.getSessions)[0].default,gn=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0].default;class fn extends an.Component{constructor(e){super(e)}render(){return ln||(ln=BDModules.get(e=>e.defaultMarginh5)[0]),cn||(cn=BDModules.get(e=>e.colorStandard)[0]),dn||(dn=BDModules.get(e=>e.size32)[0]),[an.createElement(Se,{text:"Account Infos"}),an.createElement("div",null,an.createElement("h5",{className:cn.colorStandard+" "+dn.size14+" "+ln.h5+" "+ln.defaultMarginh5},"Profile"),an.createElement(En,{content:this.getProfileValue(),language:"diff"}),an.createElement("h5",{className:cn.colorStandard+" "+dn.size14+" "+ln.h5+" "+ln.defaultMarginh5},"Statistics"),an.createElement(En,{content:this.getStatistics(),language:"diff"}),an.createElement("h5",{className:cn.colorStandard+" "+dn.size14+" "+ln.h5+" "+ln.defaultMarginh5},"Connected Sessions"),an.createElement(En,{content:this.getSessionValue(),language:"diff"})),an.createElement("div",{className:BDModules.get(e=>e.marginBottom20)[0].marginBottom20})]}getSessionValue(){const e=mn.getSessions(),t=Object.keys(e).filter(e=>"all"!==e).map(t=>e[t]);return 0===t.length?"- No session detected. Please try in a few seconds":t.map(e=>`+ id: ${e.sessionId}\n+ os: ${e.clientInfo.os[0].toUpperCase()+e.clientInfo.os.slice(1)}\n+ client: ${e.clientInfo.client}\n+ status: ${e.status}\n+ active: ${e.active?"Yes":"No"}\n+ Activities: ${e.activities.length}`).join("\n"+"-".repeat(38)+"\n")}getProfileValue(){const e=gn.getCurrentUser(),t=e.createdAt;return`+ Username: ${e.username}\n+ Discriminator: ${e.discriminator}\n+ Tag: ${e.tag}\n+ ID: ${e.id}\n+ Avatar: ${e.avatar}\n+ Avatar URL: https://cdn.discordapp.com/avatars/${e.id}/${e.avatar}.${e.avatar.startsWith("a_")?"gif":"png"}?size=4096\n+ Creation Date: ${t.getDate().toString().padStart(2,"0")}/${(t.getMonth()+1).toString().padStart(2,"0")}/${t.getFullYear().toString().padStart(2,"0")} ${t.getHours().toString().padStart(2,"0")}h ${t.getMinutes().toString().padStart(2,"0")}min ${t.getSeconds()}s\n+ Flags: ${e.flags}\n+ Has Nitro: ${e.hasPremiumSubscription?"Yes":"No"}\n- Email: ${e.email}\n- 2FA: ${e.mfaEnabled?"Yes":"No"}\n- Has Been On Mobile: ${e.mobile?"Yes":"No"}\n- Phone: ${e.phone||"None"}\n- Verified: ${e.verified}`}getStatistics(){const e=Object.values(pn.getGuilds()),t=Object.keys(hn.getRelationships()),n=t.filter(e=>hn.isFriend(e)),s=t.filter(e=>hn.isBlocked(e));return`+ Server Count: ${e.length} servers\n+ Relations: ${t.length} relations\n+ Friends Count: ${n.length} friends\n- Blocked Users Count: ${s.length} blocked users`}}let bn=BDModules.get(e=>e.highlight)[0],vn=BDModules.get(e=>e.markup)[0],yn=BDModules.get(e=>e.messageContent)[0];class En extends an.Component{render(){return vn||(vn=BDModules.get(e=>e.markup)[0]),yn||(yn=BDModules.get(e=>e.messageContent)[0]),un||(un=BDModules.get(e=>e.scrollbarGhostHairline)[0]),bn||(bn=BDModules.get(e=>e.highlight)[0]),an.createElement("div",{class:`${vn.markup} ${yn.messageContent}`},an.createElement("pre",null,an.createElement("code",{class:`${un.scrollbarGhostHairline} hljs`,dangerouslySetInnerHTML:{__html:bn.highlight(this.props.language,this.props.content).value}})),an.createElement("div",{className:BDModules.get(e=>e.marginBottom8)[0].marginBottom8}))}}const wn=window.Lightcord.DiscordModules.dispatcher,Cn=BDModules.get(e=>e.default&&e.default.getChannel&&e.default.hasChannel)[0].default;let Sn=BDModules.get(e=>e.default&&e.default.addRelationship)[0],xn=BDModules.get(e=>e.default&&e.default.closePrivateChannel)[0];const Dn={};let kn=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0];var Mn=new class{constructor(){this.antiDM=this.antiDM.bind(this),this.enabled=!1}enable(){this.enabled||(this.enabled=!0,wn.subscribe("MESSAGE_CREATE",this.antiDM))}disable(){this.enabled&&(this.enabled=!1,wn.unsubscribe("MESSAGE_CREATE",this.antiDM))}antiDM(e){if(!e.message.author.bot)return;if(e.message.author.id===(kn?kn.default.getCurrentUser():null).id&&e.message.guild_id)return;const t=Cn.getChannel(e.message.channel_id);var n;t&&(1===t.type&&(Dn[e.message.author.id]||(n=e.message,(/(discord\.gg|discord\.com\/invite\/|discordapp\.com\/invite\/)/g.test(n.content)||Bn(n,"discord.gg/")||Bn(n,"discord.com/invite/")||Bn(n,"discordapp.com/invite/"))&&(Dn[e.message.author.id]=!0,L.showToast(`[AdBlock]: Blocked ${e.message.author.username}#${e.message.author.discriminator}`,{type:"warning"}),Sn||(Sn=BDModules.get(e=>e.default&&e.default.addRelationship)[0]),Sn.default.addRelationship(e.message.author.id,{location:"ContextMenu"},2),xn||(xn=BDModules.get(e=>e.default&&e.default.closePrivateChannel)[0]),xn.default.closePrivateChannel(t.id,!1)))))}};function Bn(e,t){let n=e.embeds;return 0!==n.length&&n.map(e=>"rich"===e.type&&(!!(e.title||"").includes(t)||(!!(e.description||"").includes(t)||(!!((e.footer?e.footer.text:"")||"").includes(t)||!!e.fields.map(e=>e.value.includes(t)||e.name.includes(t)).includes(!0))))).includes(!0)}let Nn;const Pn=L.removeDa;var Ln=new class{constructor(){this.enabled=!1}enable(){this.enabled||(this.enabled=!0,Nn=Nn||function(){let e=BDModules.get(e=>e.standardSidebarView)[0];if(!e)return null;let t=Pn(e.standardSidebarView),n=[];return n.push(`#app-mount .${t} .payment-info .${Pn(BDModules.get(e=>e.description&&"string"==typeof e.description&&e.description.includes("formText"))[0].description)}`),n.push(`#app-mount .${t} .${Pn(BDModules.get(e=>e.paymentSourceRow)[0].paymentSourceRow)} .${Pn(BDModules.get(e=>e.subText&&e.descriptionWrapper)[0].subText)}`),n.push(`#app-mount .${t} .${Pn(BDModules.get(e=>e.userSettingsAccount)[0].userSettingsAccount)} div:nth-child(2)>div:nth-child(2)>.${Pn(BDModules.get(e=>e.viewBody)[0].viewBody)}`),n}(),Nn||console.error(new Error("Couldn't find selectors to blur personnal informations.")),P.addStyle("blurPrivate",`\n${Nn[0]}, ${Nn[1]}, ${Nn[2]} {\n transition: all 150ms cubic-bezier(.55,.085,.68,.53);\n filter: blur(4px);\n opacity: .8;\n}\n\n${Nn[0]}:hover, ${Nn[1]}:hover, ${Nn[2]}:hover {\n transition: all 150ms cubic-bezier(.55,.09,.68,.53);\n filter: none;\n opacity: 1;\n}`))}disable(){this.enabled&&(this.enabled=!1,P.removeStyle("blurPrivate"))}},$n=new class{constructor(){window.Lightcord.Api.ensureExported(e=>e.default&&e.default.startTyping).then(e=>{let t=this;const n=e.default.startTyping;e.default.startTyping=function(){if(t.disabled)return n.call(this,...arguments)};const s=e.default.stopTyping;e.default.stopTyping=function(){if(t.disabled)return s.call(this,...arguments)},this.disabled=!0})}disable(){this.disabled=!0}enable(){this.disabled=!1}};function An(){return(An=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e}).apply(this,arguments)}class Tn extends React.Component{render(){const e=this.props;return React.createElement("svg",An({viewBox:"0 0 31.3 29.5"},e.svg,{height:"100%"}),React.createElement("path",{d:"M22.8 1s12 8.2 7.4 19.7S16.6 29 20 25.6s-4-5.6-8.7-10L22.8 1",fill:"rgba(227,6,19,.6)"}),React.createElement("path",{d:"M22.1 12.3c-2.5 3.2-6.1 4.8-8.9 4.3L3.6 28.8c-.7.9-1.9 1-2.8.3-.9-.7-1-1.9-.4-2.8L10 14.1c-1.3-2.5-.6-6.4 2-9.7 3.2-4 8-5.5 10.8-3.4s2.4 7.2-.7 11.3z",fill:"#e30613"}))}}BDModules.get(e=>e.default&&e.default.open&&e.default.fetchMutualFriends)[0];React.Component;function Rn(){return(Rn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e}).apply(this,arguments)}class jn extends React.Component{render(){return React.createElement("svg",Rn({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},this.props.svg,{height:"100%"}),React.createElement("path",{fill:"#DD2E44",d:"M33 33a2 2 0 01-2 2H5a2 2 0 01-2-2l1-12h28l1 12z"}),React.createElement("path",{fill:"#EA596E",d:"M13 35c-.792-1.875-1.75-3.291-3.417-4.666 1.75-1.459 4.542-5.5 5.25-8.292s2.75 8.125 2.042 10.625S13 35 13 35zm10.303 0c.791-1.875 1.75-3.291 3.416-4.666-1.75-1.459-4.541-5.5-5.25-8.292-.707-2.792-2.75 8.125-2.04 10.625.708 2.5 3.874 2.333 3.874 2.333z"}),React.createElement("path",{fill:"#BE1931",d:"M3.728 24.263A2.5 2.5 0 008 22.5c0-.565-.195-1.081-.511-1.5H4l-.272 3.263zm28.544 0L32 21h-3.489A2.482 2.482 0 0028 22.5a2.5 2.5 0 004.272 1.763z"}),React.createElement("circle",{cx:"14",cy:"23",r:"2",fill:"#BE1931"}),React.createElement("circle",{cx:"22",cy:"23",r:"2",fill:"#BE1931"}),React.createElement("circle",{cx:"10",cy:"23",r:"2",fill:"#BE1931"}),React.createElement("circle",{cx:"26",cy:"23",r:"2",fill:"#BE1931"}),React.createElement("path",{d:"M23 35H13s2-6 2-13h6c0 7 2 13 2 13zM17 2h2v7h-2z"}),React.createElement("path",{fill:"#55ACEE",d:"M18.838.206C17.667.042 17 .318 17 1.418v1c0 1.1.865 1.753 1.923 1.451l5.154-.901c1.715-.343 1.548-1.593.085-1.884L18.838.206z"}),React.createElement("path",{fill:"#CCD6DD",d:"M18 6l-.081.123C10.938 16.981 3 15.015 3 19v2.5a2.5 2.5 0 004.95.5H12a2 2 0 004 0h4a2 2 0 004 0h4.05a2.5 2.5 0 004.95-.5V19c0-4-8-2-15-13z"}),React.createElement("g",{fill:"#F5F8FA"},React.createElement("path",{d:"M17.948 6.078l-.03.045C17.132 11.619 10.811 16.126 8 18v4a2 2 0 004 0v-4c.982-.982 5.813-6.787 5.984-11.732-.01-.064-.027-.126-.036-.19zm.08.398C18.324 11.374 23.031 17.031 24 18v4a2 2 0 004 0v-4c-2.75-1.833-8.953-6.19-9.972-11.524z"}),React.createElement("path",{d:"M17.984 6.27C17.922 8.346 17.606 16.394 16 18v4a2 2 0 004 0v-4c-1.564-1.564-1.905-9.241-1.979-11.559-.011-.057-.027-.113-.037-.171z"})))}}function On(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}const In={};let _n=[];var Fn=new class{constructor(){this._cache={badges:{}}}get cache(){return this._cache}set cache(e){return"object"!=typeof e||"object"!=typeof this._cache?this._cache=e:this._cache=Object.assign(this._cache,e)}async getBadges(e){if(this.cache.badges[e])return this.cache.badges[e];if(In[e])return In[e];let t;const n=new Promise(e=>t=e);In[e]=n;const s=[];for(let t of zn.badges)t.defaultUsers.includes(e)&&s.push(t);const r=await new Promise(t=>{if(!E["lightcord-5"])return t([]);_n.push([e,t]),setTimeout(()=>{let e=_n;0!==e.length&&(_n=[],Wn(Un.badges,"POST",JSON.stringify(e.map(e=>e[0]))).then(async t=>{200!==t.status&&e.forEach(e=>{e[1]([])});const n=await t.json();console.log(n);for(let t of n){e.find(e=>e[0]===t.user_id)[1](t.badges)}}).catch(t=>{t instanceof Hn||console.error(t),e.forEach(e=>{e[1]([])})}))},0)});for(let e of r)zn.badges.find(t=>t.id===e)&&(s.find(t=>t.id===e)||s.push(zn.badges.find(t=>t.id===e)));return this.cache={badges:Object.assign(this.cache.badges,{[e]:s})},setTimeout(()=>{delete this.cache.badges[e]},6e5),t(s),delete In[e],s}};const Wn=function(e,t,n){return E["lightcord-5"]?(console.log(`Sending request on ${e} with method ${t} and body`,n),Qe()(`${zn.SERVER_URL}/api/v1${e}`,{method:t,headers:{CLIENT:"Lightcord",Authorization:window.Lightcord.Api.Authorization||"None::Anonymous"},...n?{body:n}:{}})):(console.warn(`Canceling request on ${e} with method ${t} and body`,n,"because of settings."),Promise.reject(new Hn("The current settings blocked the request.")))};class Hn extends Error{constructor(){super(...arguments),this.name="LightcordError"}}const zn={SERVER_URL:"http://127.0.0.1",badges:[{name:"Lightcord Bug Hunter",id:"f04698f5-816b-41e3-bd01-92291193d7a5",defaultUsers:["696481194443014174","696003456611385396"],scopes:[],component:Tn,href:"https://github.com/lightcord/lightcord/wiki/badges/bug_hunter"},{name:"Buffoon",id:"06904d31-65b4-41ec-a50c-8658bbd1af96",defaultUsers:["389016895543705602","664600134528663565"],scopes:[],component:jn,href:"https://www.youtube.com/watch?v=EJtb6z-dlT8"}]},Un={badges:"/users/badges",delete:"/delete"};On();let qn;class Gn extends React.PureComponent{constructor(){super(...arguments),this.state={states:[]}}render(){qn||(qn=l(e=>e.FormSection));const e=[...new Set(Object.keys(window.Lightcord.Api.Components).map(e=>Object.keys(window.Lightcord.Api.Components[e]).map(t=>window.Lightcord.Api.Components[e][t])).flat())];return[React.createElement(qn.FormSection,{tag:"h2",title:"Lightcord's Api Availlable components"},React.createElement(qn.FormText,{type:"description",className:"",selectable:!1},"These components are here for the plugin devs. They can quickly embed any component below with this panel."),React.createElement(_e,null),React.createElement(Lightcord.Api.Components.inputs.Button,{color:"brand",look:"outlined",size:"medium",hoverColor:"green",onClick:()=>{r.remote.shell.openExternal("https://github.com/lightcord/lightcord/wiki/apis")},wrapper:!1},"Documentation")),e.map(e=>{let t=[];e.AllPreviews&&(t=e.AllPreviews);let n=t=>{this.setState({states:[Object.assign(s,t)].concat(this.state.states.filter(t=>t.elem!==e))})},s=this.state.states.find(t=>t.elem===e);s||(s={tab:"preview",elem:e,options:{}},this.state.states.push(s));let r=()=>{let e={};return t.forEach(t=>{e[Object.keys(t[0])[0]]=t[0][Object.keys(t[0])[0]]}),Object.keys(s.options).forEach(n=>{e[n]=t.find(e=>e.find(e=>e[n]))[s.options[n]][n]}),e},o=e=>"string"==typeof e?e:"boolean"==typeof e?String(e):"function"==typeof e?e.toString():"object"==typeof e?e&&e.$$typeof&&(e.$$typeof===Symbol.for("react.element")||60103===e.$$typeof)?"Your components here.":JSON.stringify(e,null," "):String(e),a=function(t){const n=e.displayName||e.name;const s=`Lightcord.Api.Components.${Object.keys(window.Lightcord.Api.Components).find(e=>window.Lightcord.Api.Components[e][n])}.${n}`,a=r();if("jsx"===t){let e,t=[],n=null;if(Object.keys(a).forEach(e=>{if("children"==e)n=o(a[e]);else{let n=e+"=";"string"==typeof a[e]?n+=JSON.stringify(a[e]):n+=`{${o(a[e])}}`,t.push(n)}}),n){return e=`<${s} ${t.join(" ")}>`,`${e}\n ${n}\n${`</${s}>`}`}return e=`<${s} ${t.join(" ")}/>`,e}if("react"===t){let e=a.children||null;delete a.children,e&&e.$$typeof&&(e.$$typeof===Symbol.for("react.element")||60103===e.$$typeof)&&(e="Your components here.");let t=[];Object.keys(a).forEach(e=>{let n=(/[^\w\d_]/g.test(e)?JSON.stringify(e):e)+": ";"string"==typeof a[e]?n+=JSON.stringify(a[e]):n+=o(a[e]).split("\n").map((e,t)=>0===t?e:" "+e).join("\n"),t.push(n)});let n="{";return t.length?t.forEach((e,s)=>{let r=s===t.length-1;0===s||(n+=","),n+="\n ",n+=e,r&&(n+="\n}")}):n+="}",`React.createElement(${s}, ${n}, ${JSON.stringify(e)})`}};return React.createElement("div",null,React.createElement(window.Lightcord.Api.Components.general.SettingsTitle,null,e.displayName||e.name),t.map(e=>{if(e[0].onClick)return null;if(e[0].text)return null;if(e[0].children)return null;if(1===e.length)return null;let t=Object.keys(e[0])[0];return[React.createElement(window.Lightcord.Api.Components.general.SettingSubTitle,null,t),React.createElement(window.Lightcord.Api.Components.inputs.Dropdown,{options:e.map((e,t)=>({value:"opt-"+t,label:JSON.stringify(e[Object.keys(e)[0]])})),value:"opt-"+(s.options[t]||"0"),onChange:e=>{n({options:Object.assign({},s.options,{[t]:(e.value||"0").replace("opt-","")})})},searchable:!0}),React.createElement("div",{style:{marginBottom:"8px"}})]}),React.createElement(window.Lightcord.Api.Components.general.Tabs,{tabs:[{label:"Preview",id:"preview"},{label:"Code",id:"code"}],active:s.tab,children:"preview"===s.tab?React.createElement("div",{style:{marginTop:"20px",marginBottom:"20px"}},React.createElement("div",{style:{backgroundColor:"var(--background-primary)",padding:"30px 30px",borderRadius:"8px"},className:"lc-tab-box-shadow"},React.createElement(e,r()))):React.createElement("div",{style:{marginTop:"20px",marginBottom:"20px"}},React.createElement("div",{style:{backgroundColor:"var(--background-primary)",padding:"30px 30px",borderRadius:"8px"},className:"lc-tab-box-shadow"},React.createElement(window.Lightcord.Api.Components.general.SettingSubTitle,null,"JSX"),React.createElement(window.Lightcord.Api.Components.general.CodeBlock,{language:"jsx",content:a("jsx")}),React.createElement(window.Lightcord.Api.Components.general.SettingSubTitle,null,"React"),React.createElement(window.Lightcord.Api.Components.general.CodeBlock,{language:"js",content:a("react")}))),onChange:e=>{n({tab:e})}}))})]}get renders(){}}var Vn=new class{constructor(){this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new pe,this.registerComponents()}registerComponents(){this.sidebar.register("lightcord",Jn(this.lightcordComponent.bind(this))),this.sidebar.register("status",Jn(this.PresenceComponent.bind(this))),this.sidebar.register("accountinfo",Jn(this.AccountInfosComponent.bind(this))),this.sidebar.register("lcapipreview",Jn(this.ApiPreviewComponent.bind(this))),this.sidebar.register("core",Jn(this.coreComponent.bind(this))),this.sidebar.register("customcss",Jn(this.customCssComponent.bind(this))),this.sidebar.register("plugins",Jn(this.renderAddonPane("plugins"))),this.sidebar.register("themes",Jn(this.renderAddonPane("themes")))}get root(){const e=P.query("#bd-settingspane-container");return e||(this.injectRoot()?this.root:null)}injectRoot(){let[e,t]=[BDModules.get(e=>e.layer&&e.animating)[0].layer.split(" ")[0],BDModules.get(e=>e.standardSidebarView)[0]];const n=P.query("."+e+" ."+t.standardSidebarView.split(" ")[0]+", ."+e+" .ui-standard-sidebar-view");if(!n)return!1;const s=P.createElement(`<div id="bd-settingspane-container" class="${t.contentRegion} content-region">`);return n.append(s),L.onRemoved(s,()=>{o.reactDom.unmountComponentAtNode(s)}),!0}get coreSettings(){const e=this.getSettings("core");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get lightcordSettings(){const e=this.getSettings("lightcord");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get PresenceSettings(){return this.getSettings("status")}get MsgLogSettings(){return this.getSettings("msglog")}getSettings(e){return Object.keys(v).reduce((t,n)=>{const s=v[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}onClick(){}onChange(e,t){this.updateSettings(e,t)}updateSettings(e,t){if(E[e]=t,"bda-gs-2"==e&&(t?P.addClass(document.body,"bd-minimal"):P.removeClass(document.body,"bd-minimal")),"bda-gs-3"==e&&(t?P.addClass(document.body,"bd-minimal-chan"):P.removeClass(document.body,"bd-minimal-chan")),"bda-gs-1"==e&&(t?Ne.addButton():Ne.removeButton()),"bda-gs-4"==e&&(t?Pe.start():Pe.stop()),"bda-gs-5"==e&&(t?P.addClass(P.query("#app-mount"),"bda-dark"):P.removeClass(P.query("#app-mount"),"bda-dark")),t&&"bda-gs-6"==e&&me.inject24Hour(),"bda-gs-7"==e&&(t?he.injectColoredText():he.removeColoredText()),"fork-ps-4"==e&&(t?$e.start():$e.stop()),"fork-ps-5"==e&&(t?(V.watchContent("plugin"),V.watchContent("theme")):(V.unwatchContent("plugin"),V.unwatchContent("theme"))),"fork-wp-1"==e&&(L.setWindowPreference("transparent",t),t?L.setWindowPreference("backgroundColor",null):L.setWindowPreference("backgroundColor","#2f3136")),"bda-gs-8"==e&&(t?Ae.startDebugListener():Ae.stopDebugListener()),"fork-dm-1"==e&&(t?Ae.startCopySelector():Ae.stopCopySelector()),"reactDevTools"===e&&(t?Ee.start():Ee.stop()),"lightcord-1"===e&&(window.Lightcord.Settings.devMode=!!t),"lightcord-2"===e&&(window.Lightcord.Settings.callRingingBeat=!!t),"lightcord-presence-1"===e)if(t){Nt.enable();const e=BDModules.get(e=>e.default&&"object"==typeof e.default&&"showCurrentGame"in e.default)[0];e&&!e.default.showCurrentGame&&BDModules.get(e=>e.default&&e.default.updateRemoteSettings)[0].default.updateRemoteSettings({showCurrentGame:!0})}else Nt.disable();"lightcord-3"===e&&(t?r.remote.getCurrentWindow().setAlwaysOnTop(!0):r.remote.getCurrentWindow().setAlwaysOnTop(!1)),"lightcord-4"===e&&(t?Mn.enable():Mn.disable()),"lightcord-6"===e&&(t?Ln.enable():Ln.disable()),"lightcord-7"===e&&(t?$n.enable():$n.disable()),this.saveSettings()}async initializeSettings(){E.reactDevTools&&Ee.start(),E["bda-gs-2"]&&P.addClass(document.body,"bd-minimal"),E["bda-gs-3"]&&P.addClass(document.body,"bd-minimal-chan"),E["bda-gs-1"]&&Ne.addButton(),E["bda-gs-4"]&&Pe.start(),E["bda-gs-5"]&&P.addClass(P.query("#app-mount"),"bda-dark"),E["bda-gs-6"]&&me.inject24Hour(),E["bda-gs-7"]&&he.injectColoredText(),E["fork-ps-4"]&&$e.start(),E["lightcord-1"]&&(window.Lightcord.Settings.devMode=!0),E["lightcord-2"]&&(window.Lightcord.Settings.callRingingBeat=!0),E["lightcord-presence-1"]&&Nt.enable(),E["lightcord-3"]&&r.remote.getCurrentWindow().setAlwaysOnTop(!0),E["lightcord-4"]&&Mn.enable(),E["lightcord-6"]&&Ln.enable(),E["lightcord-7"]&&$n.enable(),E["fork-ps-5"]&&(V.watchContent("plugin"),V.watchContent("theme")),E["bda-gs-8"]&&Ae.startDebugListener(),E["fork-dm-1"]&&Ae.startCopySelector(),this.saveSettings()}saveSettings(){X.setSettingGroup("settings",E),X.setSettingGroup("rpc",w)}loadSettings(){Object.assign(E,X.getSettingGroup("settings")),Object.assign(w,X.getSettingGroup("rpc"))}renderSidebar(){return this.sidebar.render()}coreComponent(){return o.react.createElement(Fe,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings})}lightcordComponent(){return[this.lightcordSettings.map((e,t)=>[0===t?null:o.react.createElement(_e),o.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},e.title),e.settings.map(e=>o.react.createElement(je,{id:e.id,key:e.id,data:e,checked:E[e.id],onChange:(e,t)=>{this.onChange(e,t)}}))]),o.react.createElement(window.Lightcord.Api.Components.inputs.Button,{color:"yellow",onClick(){console.log("Should relaunch"),r.remote.app.relaunch({args:r.remote.process.argv.slice(1).concat(["--disable-betterdiscord"])}),r.remote.app.quit()}},"Relaunch without BetterDiscord")]}PresenceComponent(){return o.react.createElement(jt,{key:"lppannel",onChange:this.onChange,settings:this.PresenceSettings})}AccountInfosComponent(){return o.react.createElement(fn,{key:"lapannel"})}ApiPreviewComponent(){return o.react.createElement(Gn,{key:"lapipannel"})}customCssComponent(){return o.react.createElement(ze,{key:"csseditor"})}renderAddonPane(e){class t extends o.react.Component{constructor(e){super(e),this.prefix=this.props.type.replace("s","")}onChange(){this.props.onChange(this.props.type)}render(){return this.props.children}}const n=t.prototype.render;return Object.defineProperty(t.prototype,"render",{enumerable:!1,configurable:!1,set:function(){console.warn("Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins")},get:()=>n}),function(){return o.react.createElement(t,{type:e},o.react.createElement(xt,{type:e}))}}};function Jn(e){class t extends React.Component{render(){return e()}}return t}class Zn extends o.reactComponent{render(){return o.react.createElement("svg",{height:"100%",width:this.props.size||"16px",className:"bd-logo "+this.props.className,style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},viewBox:"0 0 2000 2000"},o.react.createElement("metadata",null),o.react.createElement("defs",null,o.react.createElement("filter",{id:"shadow1"},o.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),o.react.createElement("filter",{id:"shadow2"},o.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),o.react.createElement("filter",{id:"shadow3"},o.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),o.react.createElement("g",null,o.react.createElement("path",{style:{filter:"url(#shadow3)"},d:"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z",fill:"#171717",opacity:"1"}),o.react.createElement("path",{style:{filter:"url(#shadow2)"},d:"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z",fill:"#3E82E5",opacity:"1"}),o.react.createElement("path",{style:{filter:"url(#shadow1)"},d:"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z",fill:"#FFFFFF",opacity:"1"})))}}function Yn(){return(Yn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e}).apply(this,arguments)}class Kn extends React.Component{render(){const e=this.props;return React.createElement("svg",Yn({viewBox:"0 0 168 168.69"},e,{height:"100%",width:e.size}),React.createElement("defs",null,React.createElement("linearGradient",{id:"prefix__a",x1:66.7,y1:-487.7,x2:66.7,y2:-508.73,gradientTransform:"matrix(1 0 0 -1 0 -408)",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{offset:0,stopColor:"#e30613"}),React.createElement("stop",{offset:1,stopColor:"#731a14"})),React.createElement("linearGradient",{id:"prefix__b",x1:101.7,y1:-487.7,x2:101.7,y2:-508.73,gradientTransform:"matrix(1 0 0 -1 0 -408)",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{offset:0,stopColor:"#e20613"}),React.createElement("stop",{offset:1,stopColor:"#731a13"})),React.createElement("linearGradient",{id:"prefix__c",x1:84,y1:-408,x2:84,y2:-576.69,gradientTransform:"matrix(1 0 0 -1 0 -408)",gradientUnits:"userSpaceOnUse"},React.createElement("stop",{offset:0,stopColor:"#e30613"}),React.createElement("stop",{offset:1,stopColor:"#731a13"}))),React.createElement("path",{fill:"#fff",d:"M14.9 35.3h139.2V133H14.9z"}),React.createElement("path",{d:"M66.7 79.7c-5.4 0-9.8 4.7-9.8 10.5s4.4 10.5 9.8 10.5 9.8-4.7 9.8-10.5-4.4-10.5-9.8-10.5z",fill:"url(#prefix__a)"}),React.createElement("path",{d:"M101.7 79.7c-5.4 0-9.8 4.7-9.8 10.5s4.4 10.5 9.8 10.5 9.8-4.7 9.8-10.5-4.4-10.5-9.8-10.5z",fill:"url(#prefix__b)"}),React.createElement("path",{d:"M0 0v168l168 .69V0zm111.3 124.1s-3.4-4.1-6.3-7.7c12.6-3.5 17.4-11.3 17.4-11.3a52.52 52.52 0 01-11.1 5.6 68.63 68.63 0 01-38.9 4 70.12 70.12 0 01-14.1-4.1 48.88 48.88 0 01-7.1-3.3c-.3-.2-.6-.3-.9-.5a.76.76 0 00-.4-.2c-1.7-1-2.6-1.6-2.6-1.6s4.6 7.6 16.8 11.2c-2.9 3.6-6.4 7.9-6.4 7.9-21.2-.6-29.3-14.5-29.3-14.5 0-30.6 13.8-55.4 13.8-55.4 13.8-10.3 26.9-10 26.9-10l1 1.1C52.8 50.3 45 57.9 45 57.9a56.2 56.2 0 015.7-2.7 72.19 72.19 0 0121.8-6 8.75 8.75 0 011.6-.2 89.1 89.1 0 0119.4-.2 78.45 78.45 0 0128.9 9.1s-7.5-7.2-23.9-12.1l1.3-1.5s13.1-.3 26.9 10c0 0 13.8 24.8 13.8 55.4.1-.1-8 13.8-29.2 14.4z",fill:"url(#prefix__c)"}))}}const Xn={EmojiRegex:/<a?\.(\w+)\.(\d+)>/g};let Qn=BDModules.get(e=>e.CustomEmoji)[0],es=BDModules.get(e=>e.default&&e.default.getCustomEmojiById)[0],ts=BDModules.get(e=>e.default&&"Autocomplete"===e.default.displayName)[0],ns=BDModules.get(e=>e.getAutocompleteOptions)[0],ss=BDModules.get(e=>e.default&&e.default.queryEmojiResults)[0],rs=BDModules.get(e=>e.default&&e.default.Messages&&e.default.Messages.EMOJI_MATCHING)[0],os=BDModules.get(e=>e.default&&e.default.getGuild&&e.default.getGuilds&&!e.default.isFetching)[0],as=BDModules.get(e=>e.default&&e.default.getDisambiguatedEmojiContext);var is=new class{constructor(){this.init()}async init(){if(ts||(ts=await window.Lightcord.Api.ensureExported(e=>e.default&&"Autocomplete"===e.default.displayName)),ns||(ns=await window.Lightcord.Api.ensureExported(e=>e.getAutocompleteOptions)),ss||(ss=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.queryEmojiResults)),rs||(rs=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.Messages&&e.default.Messages.EMOJI_MATCHING)),os||(os=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.getGuild&&e.default.getGuilds&&!e.default.isFetching)),as||(as=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.getDisambiguatedEmojiContext)),ts&&ns&&ss&&rs&&os&&as){console.log("Patching getAutocompleteOptions of AutoCompletionTemplates",ns);const e=ns.getAutocompleteOptions;ns.getAutocompleteOptions=function(t,n,s,r,o){const a=e.call(this,...arguments);return a.LIGHTCORD_EMOJIS={matches(e,t){let n=t.length>1&&"."===e;return bs(n),n},queryResults:e=>ss.default.queryEmojiResults(e,t),renderResults:(e,t,n,s,r)=>ls(e,t,r.emojis,n,s,rs.default.Messages.EMOJI_MATCHING,rs.default.Messages.EMOJI,ts.default.Emoji,(function(e){return{emoji:e,key:e.id||e.uniqueName||e.name,sentinel:".",guild:null!=e.guildId?os.default.getGuild(e.guildId):null}}),(function(e){return"."+e+"."})),getPlainText(e,t){var n=t.emojis;if(null==n||null==n[e])return"";var s=n[e],r=s.animated?"a":"";return s.managed||null==s.id?"."+s.name+".":"<"+r+"."+(s.originalName||s.name)+"."+s.id+">"},getRawText(e,t){var n=t.emojis;if(null==n||null==n[e])return"";var s=n[e],r=s.animated?"a":"";return s.managed||null==s.id?"."+s.name+".":"<"+r+"."+(s.originalName||s.name)+"."+s.id+">"}},a}}else console.error(new Error("Couldn't start autocompletion of Lightcord's emojis."));for(;!o.MessageComponent;)await new Promise(e=>setTimeout(e,100));this.cancelEmojiRender||(this.cancelEmoteRender=L.monkeyPatch(o.MessageComponent,"default",{before:e=>{if(!L.getNestedProp(e.methodArguments[0],"childrenMessageContent.props.message"))return;const t=L.getNestedProp(e.methodArguments[0],"childrenMessageContent.props.content");if(!t||!t.length)return;let n=[];const s=[];for(let e of t){if("string"!=typeof e){s.push(e);continue}let r,o=!1;do{if(r=Xn.EmojiRegex.exec(e),r){o=!0,es||(es=BDModules.get(e=>e.default&&e.default.getCustomEmojiById)[0]);const e=es.default.getCustomEmojiById(r[2]);e?n.push({animated:e.animated,name:e.name,id:e.id,raw:r[0]}):n.push({animated:r[0].startsWith("<a"),name:r[1],id:r[2],raw:r[0]})}}while(r);if(o){const r=e.split(" ").map((e,s,r)=>{if(!e)return"";const o=n.find(t=>t.raw==e);return o?(Qn||(Qn=BDModules.get(e=>e.CustomEmoji)[0]),React.createElement(Qn.CustomEmoji,{emoji:{name:`.${o.name}.`,emojiId:o.id,animated:o.animated,jumboable:1===r.length&&1===t.length}})):e}).reduce((e,t)=>0===e.length?[t]:"string"==typeof t?"string"==typeof e[e.length-1]?(e[e.length-1]+=` ${t}`,e):(e.push(" "+t),e):(e.push(" ",t),e),[]);s.push(...r)}else s.push(e)}for(;e.methodArguments[0].childrenMessageContent.props.content[0];)e.methodArguments[0].childrenMessageContent.props.content.shift();for(;s[0];)e.methodArguments[0].childrenMessageContent.props.content.push(s.shift())}}))}disable(){this.cancelEmoteRender&&(this.cancelEmoteRender(),this.cancelEmoteRender=null)}start(){}};function ls(e,t,n,s,r,o,a,i,l,c){if(null==n||0===n.length)return null;var d=n.map((function(e,n){return React.createElement(i,Object.assign({onClick:r,onHover:s,selected:t===n,index:n},l(e,n)))}));return[cs(o,a,e,c),d]}function cs(e,t,n,s){var r=n.length>0?e.format({prefix:s(n)}):t;return Array.isArray(r)?r.unshift(React.createElement("strong",{},"[Lightcord] ")):r="[LIGHTCORD] "+r,React.createElement(ts.default.Title,{title:r},r)}cs.displayName="renderHeader";let ds,us,ps,hs=BDModules.get(e=>e.default&&e.default.isEmojiDisabled)[0],ms=hs&&hs.default.isEmojiDisabled,gs=!1,fs=!1;function bs(e){gs=e,fs||(hs||(hs=BDModules.get(e=>e.default&&e.default.isEmojiDisabled)[0]),hs&&(ms||(ms=hs.default.isEmojiDisabled),fs=!0,hs.default.isEmojiDisabled=function(e){return gs?!(!e.surrogates&&!e.diversity):ms.call(this,...arguments)}))}function vs(){}vs.prototype.setConfig=function(e){Object.assign(D,e)},vs.prototype.init=async function(){if(!Array.prototype.flat)return void L.alert("Not Supported","BetterDiscord v"+g+" does not support this old version ("+h+") of Discord. Please update your Discord installation before proceeding.");if(D.version<m)return void L.alert("Not Supported","BetterDiscord v"+D.version+" (your version) is not supported by the latest js ("+g+").<br><br> Please download the latest version from <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>GitHub</a>");if(window.ED)return void L.alert("Not Supported","BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.");if(window.WebSocket&&window.WebSocket.name&&window.WebSocket.name.includes("Patched"))return void L.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");L.suppressErrors(this.patchAttributes.bind(this),"LC Plugin Certifier Patch")(),L.log("Startup","Initializing Settings"),this.initSettings(),await this.checkForGuilds(),o.initialize(),L.log("Startup","Updating Settings"),Vn.initializeSettings(),L.log("Startup","Loading Plugins"),await R.loadPlugins(),L.log("Startup","Loading Themes"),await O.loadThemes(),P.addStyle("customcss",atob(X.getBDData("bdcustomcss"))),window.addEventListener("beforeunload",(function(){E["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),rt.start(),L.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),L.log("Startup","Initializing Main Observer"),this.initObserver(),E["fork-ps-1"]&&(L.log("Startup","Collecting Startup Errors"),L.showContentErrors({plugins:S,themes:x}));const e=X.getBDData("version");if(g>e&&(b&&this.showChangelogModal(b),X.setBDData("version",g)),is.start(),L.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),L.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),L.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),L.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")(),L.suppressErrors(this.patchMessageHeader.bind(this),"BD Badge Chat Patch")(),L.suppressErrors(this.patchMemberList.bind(this),"BD Badge Member List Patch")(),L.suppressErrors(this.patchAttachment.bind(this),"LC Plugin Certifier Patch")(),D.haveInstalledDefault){let e=L.alert("First Installation","As it is the first time you install Lightcord, We added two default themes and one default plugin in your plugin/theme folder. Check it in the Plugin/Theme settings.");await new Promise(t=>{e.onClose(t)})}const t=document.querySelector("#app-mount > div.typeWindows-1za-n7.withFrame-haYltI.titleBar-AC4pGV.horizontalReverse-3tRjY7.flex-1O1GKY.directionRowReverse-m8IjIq.justifyStart-2NDFzi.alignStretch-DpGPf3.da-typeWindows.da-withFrame.da-titleBar.da-horizontalReverse.da-flex.da-directionRowReverse.da-justifyStart.da-alignStretch > div.wordmarkWindows-1v0lYD.wordmark-2iDDfm.da-wordmarkWindows.da-wordmark");t&&(t.style.top="3px",t.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" height="10" width="70" viewBox="0 0 72.54 10" style="margin-left: -5px, margin-top: 10px">\n <path fill="currentColor" d="M44.81,9.67V6.33c0-1.21,2.13-1.49,2.78-.28l2-.81A3.53,3.53,0,0,0,46.2,3c-1.92,0-3.81,1.13-3.81,3.33V9.67c0,2.21,1.89,3.33,3.77,3.33a3.87,3.87,0,0,0,3.45-2.18l-2.12-1C47,11.17,44.81,10.85,44.81,9.67ZM10.68,12.89h2.41V3.17H10.68ZM71.76,3.14H68.19V7.23L70.57,9.4v-4h1.27c.81,0,1.21.41,1.21,1v3c0,.63-.38,1.05-1.21,1.05H68.18v2.31h3.57c1.92,0,3.72-1,3.72-3.2V6.39C75.48,4.13,73.68,3.14,71.76,3.14ZM54.22,3c-2,0-4,1.1-4,3.34V9.66c0,2.23,2,3.34,4,3.34s3.95-1.11,3.95-3.34V6.34C58.19,4.11,56.2,3,54.22,3Zm1.55,6.66c0,.7-.78,1.06-1.54,1.06s-1.55-.35-1.55-1.06V6.34c0-.72.75-1.1,1.5-1.1s1.59.35,1.59,1.1ZM66.84,6.34c0-2.29-1.58-3.2-3.55-3.2H59.46v9.73h2.45V9.77h.43l2.22,3.09h3L65,9.52C66.13,9.15,66.84,8.14,66.84,6.34ZM63.33,7.65H61.91V5.43h1.42A1.11,1.11,0,1,1,63.33,7.65ZM29.83,13h2.42V3.06H29.83V6.73l-3,0V3.09H24.7v9.78h2.14V8.68l3,0ZM17.16,9.76V6.42c0-1.21,2.13-1.49,2.78-.28l2-.81a3.55,3.55,0,0,0-3.36-2.24c-1.92,0-3.81,1.13-3.81,3.33V9.76c0,2.21,2,3.15,3.9,3.15s3.58-1,3.58-3V7.58H18.79l0,1.36H20.3v.77C20.3,10.92,17.16,10.94,17.16,9.76Z" transform="translate(-2.93 -3)"/>\n <polygon fill="currentColor" points="35.91 0.06 38.43 0.06 38.43 1.84 35.92 1.81 35.97 10 33.55 10 33.49 1.75 30.98 1.74 30.98 0.06 33.49 0.06 35.91 0.06"/>\n <polygon fill="currentColor" points="0 9.97 6.5 10 6.5 7.63 2.41 7.63 2.41 0.26 0 2.26 0 9.97"/>\n</svg>')},vs.prototype.patchAttributes=async function(){let e=[];for(this.cancelPatchAttributes=function(){e.forEach(e=>e())};!o.MessageComponent;)await new Promise(e=>setTimeout(e,100));window.Lightcord.Api.ensureExported(e=>e.default&&e.default.displayName&&e.default.displayName.includes("UserPopout")).then(e=>{console.log(e);const t=e.default.prototype.render;e.default.prototype.render=function(){const e=t.call(this,...arguments);return console.log(e,this.props),e}}),e.push(L.monkeyPatch(o.MessageComponent,"default",{after:e=>{e.methodArguments[0].childrenMessageContent.props.message&&(e.returnValue.props["data-message-id"]=e.methodArguments[0].childrenMessageContent.props.message.id)}}))},vs.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=o.guildClasses.wrapper.split(" ")[0];document.querySelectorAll(`.${s}`).length>0&&e++;const r=o.guildClasses.listItem.split(" ")[0],a=o.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${r} .${a}`).length>0||e>=50?t(D.deferLoaded=!0):void setTimeout(n,100)};"loading"!=document.readyState&&setTimeout(n,100),document.addEventListener("DOMContentLoaded",()=>{setTimeout(n,100)})})},vs.prototype.injectExternals=async function(){await P.addScript("ace-script","https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"),window.require.original&&(window.require=window.require.original)},vs.prototype.initSettings=function(){if(X.initialize(),X.getSettingGroup("settings")||X.getSettingGroup("rpc")){Vn.loadSettings();for(const e in y)null==E[e]&&(E[e]=y[e],Vn.saveSettings())}else X.getSettingGroup("settings")||Object.assign(E,y),X.getSettingGroup("rpc")||Object.assign(w,C),Vn.saveSettings();window.Lightcord.Api.ensureExported(e=>e.default&&e.default.prototype&&e.default.prototype.getPredicateSections).then(e=>{let t=e.default.prototype.getPredicateSections;e.default.prototype.getPredicateSections=function(){let e=t.call(this,...arguments);if("My Account"===e[1].section){let t=[];for(t.push(e.pop()),t.push(e.pop()),t.push(e.pop()),t.push(e.pop()),e.push(...Vn.renderSidebar());t[0];)e.push(t.pop())}return e}})},vs.prototype.initObserver=function(){new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){const n=e[t];if(void 0!==R&&R.rawObserver(n),!(n.addedNodes.length&&n.addedNodes[0]instanceof Element))continue;const s=n.addedNodes[0];ds||(ds=BDModules.get(e=>e.layer&&"string"==typeof e.layer&&e.animating)[0].layer),us||(us=BDModules.get(e=>e.socialLinks&&"string"==typeof e.socialLinks)[0].socialLinks),ps||(ps=BDModules.get(e=>e.modal&&"string"==typeof e.modal&&e.inner&&"string"==typeof e.inner&&!e.responsiveWidthMobile)[0].modal),s.classList.contains(ds)&&(s.getElementsByClassName("guild-settings-base-section").length&&s.setAttribute("layer-id","server-settings"),s.getElementsByClassName(us).length&&(s.setAttribute("layer-id","user-settings"),s.setAttribute("id","user-settings"))),s.parentElement==document.body&&s.querySelector("#ace_settingsmenu")&&(s.id="ace_settingsmenu_container")}}).observe(document,{childList:!0,subtree:!0})},vs.prototype.showChangelogModal=function(e={}){return L.showChangelogModal(e)},vs.prototype.alert=function(e,t){return L.alert(e,t)},vs.prototype.patchSocial=function(){if(this.socialPatch)return;const e=l(e=>"TabBar"==e.displayName),t=l(e=>"Anchor"==e.displayName);e&&(this.socialPatch=L.monkeyPatch(e.prototype,"render",{after:e=>{const n=e.returnValue.props.children;if(!n||!n.length||n.length<3)return;if("Separator"!==n[n.length-3].type.displayName)return;if(!n[n.length-2].type.toString().includes("socialLinks"))return;if(t){let e=BDModules.get(e=>e.socialLinks)[0];const s=n[n.length-2].type,r=function(){const n=s(...arguments);return n.props.children.push(o.React.createElement(ue,{color:"black",side:"top",text:"Lightcord"},o.React.createElement(t,{className:"bd-social-link "+e.link,href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},o.React.createElement(Kn,{size:"16px",className:"bd-social-logo"})))),n.props.children.push(o.React.createElement(ue,{color:"black",side:"top",text:"BandagedBD"},o.React.createElement(t,{className:"bd-social-link "+e.link,href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},o.React.createElement(Zn,{size:"16px",className:"bd-social-logo"})))),n};n[n.length-2].type=r}let[s,a,i]=[BDModules.get(e=>e.colorMuted)[0].colorMuted,BDModules.get(e=>e.size32)[0],BDModules.get(e=>e.versionHash)[0].versionHash];const l=`(${D.hash?D.hash.substring(0,7):D.branch})`,c=[o.react.createElement("div",{className:`${s} ${a.size12}`},`Lightcord ${r.remote.getGlobal("BuildInfo").version} `,o.react.createElement("span",{className:i+" da-versionHash"},`(${(r.remote.getGlobal("BuildInfo").commit||"Unknown").slice(0,7)})`)),o.react.createElement("div",{className:`${s} ${a.size12}`},`BBD ${g} `,o.react.createElement("span",{className:i+" da-versionHash"},l))],d=n[n.length-1].type;n[n.length-1].type=function(){const e=d(...arguments);return e.props.children.splice(1,0,c),e}}}))};function ys(e,t,n){process.nextTick(()=>{const s=document.getElementById("badges-"+e);if(!s||s.childNodes.length>0)return;if(s.childNodes.length)return;let r=document.createElement("div");r.style.display="none",s.appendChild(r);const a=l(e=>"Anchor"==e.displayName);Fn.getBadges(t.id).then(e=>{e.forEach(e=>{const r={svg:{size:"16px",className:"bd-logo",width:"16px"}};e.scopes.forEach(e=>{"user"===e&&(r.user=t)}),e.href||(r.Anchor=a,r.href={className:n?"bd-chat-badge":"bd-member-badge",title:e.name,target:"_blank"});const i=o.React.createElement(ue,{color:"black",side:"top",text:e.name},e.href?o.react.createElement(a,{href:e.href,className:n?"bd-chat-badge":"bd-member-badge",title:e.name,target:"_blank"},o.React.createElement(e.component,r)):o.React.createElement(e.component,r)),l=document.createElement("div");o.reactDom.render(i,l),l.childNodes.forEach(e=>{s.appendChild(e)})})})})}vs.prototype.patchGuildListItems=function(){if(this.guildListItemsPatch)return;const e=function(){const e=d("wrapper","unreadMentionsBar"),t=d("guildsError","selected"),n=d("blobContainer");return Object.assign({},e,t,n)}(),t=e.listItem.split(" ")[0],n=e.blobContainer.split(" ")[0],s=o.getInternalInstance(document.querySelector(`.${t} .${n}`).parentElement).return.type;s&&(this.guildListItemsPatch=L.monkeyPatch(s.prototype,"render",{after:e=>{if(e.returnValue&&e.thisObject){const t=e.returnValue,n=e.thisObject.props;let s=t.props.className;return s+=" bd-guild",n.unread&&(s+=" bd-unread"),n.selected&&(s+=" bd-selected"),n.audio&&(s+=" bd-audio"),n.video&&(s+=" bd-video"),n.badge&&(s+=" bd-badge"),n.animatable&&(s+=" bd-animatable"),t.props.className=s,t}}}))},vs.prototype.patchGuildPills=function(){if(this.guildPillPatch)return;const e=l(e=>e.default&&!e.default.displayName&&e.default.toString&&e.default.toString().includes("translate3d"));e&&(this.guildPillPatch=L.monkeyPatch(e,"default",{after:e=>{const t=e.methodArguments[0];return t.unread&&(e.returnValue.props.className+=" bd-unread"),t.selected&&(e.returnValue.props.className+=" bd-selected"),t.hovered&&(e.returnValue.props.className+=" bd-hovered"),e.returnValue}}))},vs.prototype.patchGuildSeparator=function(){if(this.guildSeparatorPatch)return;const e=u("Guilds"),t=d("renderListItem");if(!t||!e)return;const n=function(){const e=t.Separator(...arguments);return e.props.className+=" bd-guild-separator",e};this.guildSeparatorPatch=L.monkeyPatch(e.prototype,"render",{after:e=>{e.returnValue.props.children[1].props.children[3].type=n}})},vs.prototype.patchAttachment=function(){if(this.AttachmentPatch)return;const e=BDModules.get(e=>e.default&&"Attachment"===e.default.displayName)[0];l(e=>"Anchor"==e.displayName)&&e&&e.default&&(this.AttachmentPatch=L.monkeyPatch(e,"default",{after:e=>{const t=e.methodArguments[0]||null,n=L.getNestedProp(e.returnValue,"props.children");if(!n||!t||!t.url)return;if(!Array.isArray(n))return;const s=On();n.push(o.react.createElement("div",{id:"certified-"+s})),rt.patch(t,"certified-"+s)}}))},vs.prototype.patchMessageHeader=function(){if(this.messageHeaderPatch)return;const e=d("MessageTimestamp"),t=l(e=>"Anchor"==e.displayName);t&&e&&e.default&&(this.messageHeaderPatch=L.monkeyPatch(e,"default",{after:e=>{const n=L.getNestedProp(e.methodArguments[0],"message.author"),s=L.getNestedProp(e.returnValue,"props.children.1.props.children.1.props.children");if(!s||!n||!n.id)return;if(!Array.isArray(s))return;"249746236008169473"===n.id?s.push(o.React.createElement(ue,{color:"black",side:"top",text:"BandagedBD Developer"},o.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},o.React.createElement(Zn,{size:"16px",className:"bd-logo"})))):"696481194443014174"!==n.id&&"696003456611385396"!==n.id||s.push(o.React.createElement(ue,{color:"black",side:"top",text:"Lightcord Developer"},o.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},o.React.createElement(Kn,{size:"16px",className:"bd-logo"}))));const r=On();s.push(o.React.createElement("div",{id:"badges-"+r,style:{display:"inline"}})),ys(r,n,!0)}}))},vs.prototype.patchMemberList=function(){if(this.memberListPatch)return;const e=u("MemberListItem"),t=l(e=>"Anchor"==e.displayName);t&&e&&e.prototype&&e.prototype.renderDecorators&&(this.memberListPatch=L.monkeyPatch(e.prototype,"renderDecorators",{after:e=>{const n=L.getNestedProp(e.thisObject,"props.user"),s=L.getNestedProp(e.returnValue,"props.children");if(!s||!n||!n.id)return;if(!Array.isArray(s))return;"249746236008169473"===n.id?s.push(o.React.createElement(ue,{color:"black",side:"top",text:"BandagedBD Developer"},o.React.createElement(t,{className:"bd-member-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},o.React.createElement(Zn,{size:"16px",className:"bd-logo"})))):"696481194443014174"!==n.id&&"696003456611385396"!==n.id||s.push(o.React.createElement(ue,{color:"black",side:"top",text:"Lightcord Developer"},o.React.createElement(t,{className:"bd-member-badge",href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},o.React.createElement(Kn,{size:"16px",className:"bd-logo"}))));const r=On();s.push(o.React.createElement("div",{id:"badges-"+r})),ys(r,n,!1)}}))},vs.prototype.updateInjector=async function(){const e=X.injectionPath;if(!e)return!1;const t=n(2),s=n(1),r=n(7),o=n(8),a=n(9),i=s.resolve(e,".."),l=s.basename(e),c="https://github.com/rauenzi/BetterDiscordApp/archive/injector.zip",d=s.resolve(i,"injector.zip"),u=s.resolve(i,"BetterDiscordApp-injector");L.log("InjectorUpdate","Downloading "+c);let p=await new Promise(e=>{null.get({url:c,encoding:null},async(n,s,r)=>{if(n||200!==s.statusCode)return e(!1);await new Promise(e=>t.exists(d,e))&&await new Promise(e=>t.rename(d,`${d}.bak${Math.round(performance.now())}`,e)),L.log("InjectorUpdate","Writing "+d),t.writeFile(d,r,t=>e(!t))})});if(!p)return p;await new Promise(e=>t.exists(u,e))&&await new Promise(e=>t.rename(u,`${u}.bak${Math.round(performance.now())}`,e));const h=await new Promise(e=>o.open(d,{lazyEntries:!0},(t,n)=>e(n)));h.on("entry",(function(e){if(e.fileName.endsWith("/"))return h.readEntry();L.log("InjectorUpdate","Extracting "+e.fileName);const n=s.resolve(i,e.fileName);a.sync(s.dirname(n)),h.openReadStream(e,(function(e,s){if(e)return p=!1;s.on("end",(function(){h.readEntry()})),s.pipe(t.createWriteStream(n))}))})),h.readEntry(),await new Promise(e=>h.once("end",e));const m=s.resolve(i,`${l}.bak${Math.round(performance.now())}`);return await new Promise(n=>t.rename(e,m,n)),L.log("InjectorUpdate",`Renaming ${s.basename(u)} to ${l}`),p=await new Promise(n=>t.rename(u,e,e=>n(!e))),p?p?(await new Promise(e=>r(m,e)),await new Promise(e=>t.unlink(d,e)),L.log("InjectorUpdate","Injector Updated!"),p):(L.err("InjectorUpdate","Something went wrong... restoring backups."),await new Promise(e=>r(u,e)),await new Promise(n=>t.rename(m,e,n)),p):(L.err("InjectorUpdate","Failed to rename the final directory"),p)};var Es=new vs;const ws={get React(){return o.React},get ReactDOM(){return o.ReactDom},get ReactComponent(){return o.ReactComponent},get WindowConfigFile(){return L.WindowConfigFile},get settings(){return v},get emotes(){return{}},get screenWidth(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)},get screenHeight(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)},getAllWindowPreferences:function(){return L.getAllWindowPreferences()},getWindowPreference:function(e){return L.getWindowPreference(e)},setWindowPreference:function(e,t){return L.setWindowPreference(e,t)},injectCSS:function(e,t){P.addStyle(P.escapeID(e),t)},clearCSS:function(e){P.removeStyle(P.escapeID(e))},linkJS:function(e,t){P.addScript(P.escapeID(e),t)},unlinkJS:function(e){P.removeScript(P.escapeID(e))},getPlugin:function(e){return M.hasOwnProperty(e)?M[e].plugin:null},getCore:function(){return L.warn("Deprecation Notice","BdApi.getCore() will be removed in future versions."),Es},alert:function(e,t){return L.showConfirmationModal(e,t,{cancelText:null})},showConfirmationModal:function(e,t,n={}){return L.showConfirmationModal(e,t,n)},showToast:function(e,t={}){L.showToast(e,t)},findModule:function(e){return o.WebpackModules.find(e)},findAllModules:function(e){return o.WebpackModules.findAll(e)},findModuleByProps:function(...e){return o.WebpackModules.findByUniqueProperties(e)},findModuleByPrototypes:function(...e){return o.WebpackModules.findByPrototypes(e)},findModuleByDisplayName:function(e){return o.WebpackModules.findByDisplayName(e)},getInternalInstance:function(e){if(e instanceof window.jQuery||e instanceof Element)return e instanceof jQuery&&(e=e[0]),o.getInternalInstance(e)},loadData:function(e,t){return X.getPluginData(e,t)}};ws.getData=ws.loadData,ws.saveData=function(e,t,n){return X.setPluginData(e,t,n)},ws.setData=ws.saveData,ws.deleteData=function(e,t){return X.deletePluginData(e,t)},ws.monkeyPatch=function(e,t,n){return L.monkeyPatch(e,t,n)},ws.onRemoved=function(e,t){return L.onRemoved(e,t)},ws.suppressErrors=function(e,t){return L.suppressErrors(e,t)},ws.testJSON=function(e){return L.testJSON(e)},ws.isPluginEnabled=function(e){return!!B[e]},ws.isThemeEnabled=function(e){return!!N[e]},ws.isSettingEnabled=function(e){return!!E[e]},ws.enableSetting=function(e){return Vn.onChange(e,!0)},ws.disableSetting=function(e){return Vn.onChange(e,!1)},ws.toggleSetting=function(e){return Vn.onChange(e,!E[e])},ws.getBDData=function(e){return X.getBDData(e)},ws.setBDData=function(e,t){return X.setBDData(e,t)};const Cs=(e,t,n)=>new class{get folder(){return n.folder}isEnabled(t){return!!e[t]}enable(e){return n.enable(e)}disable(e){return n.disable(e)}toggle(t){e[t]?this.disable(t):this.enable(t)}reload(e){return n.reload(e)}get(e){return t.hasOwnProperty(e)?t[e].plugin?t[e].plugin:t[e]:null}getAll(){return Object.keys(t).map(e=>this.get(e)).filter(e=>e)}};ws.Plugins=Cs(B,M,R),ws.Themes=Cs(N,k,O);var Ss=ws;n.d(t,"default",(function(){return ks})),function(){const e=Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype,"contentWindow").get;Object.defineProperty(HTMLIFrameElement.prototype,"contentWindow",{get:function(){const t=Reflect.apply(e,this,arguments);return new Proxy(t,{getOwnPropertyDescriptor:function(e,t){if("localStorage"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){if("localStorage"===t)return null;const n=e[t];return"function"==typeof n?n.bind(e):n}})}}),Object.defineProperty(Reflect,"apply",{value:Reflect.apply,writable:!1,configurable:!1}),Object.defineProperty(Function.prototype,"bind",{value:Function.prototype.bind,writable:!1,configurable:!1});const t=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){const e=arguments[1];return e.toLowerCase().includes("api/webhooks")?null:Reflect.apply(t,this,arguments)}}(),(()=>{const e=document.createElement("div");e.className="bd-loaderv2",e.title="BandagedBD is loading...",document.body.appendChild(e)})();const xs=(e,t)=>{Object.defineProperty(window,e,{get:()=>(L.warn("Deprecated Global",`"${e}" will be removed in future versions. Please only use BdApi.`),t)})},Ds=Object.keys(s);for(const e of Ds)xs(e,s[e]);xs("BDV2",o),xs("pluginModule",R),xs("themeModule",O),xs("Utils",L),xs("BDEvents",A),xs("settingsPanel",Vn),xs("DataStore",X),xs("ContentManager",V),xs("ClassNormalizer",$e),window.BdApi=Ss,xs("mainCore",Es);class ks{constructor(e){Es.setConfig(e)}init(){Es.init()}}n(10)}]); |