Lightcord/BetterDiscordApp/dist/index.min.js

1 line
192 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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=7)}([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,n){"use strict";n.r(t),n.d(t,"default",(function(){return Ns}));var s={};n.r(s),n.d(s,"minimumDiscordVersion",(function(){return r})),n.d(s,"currentDiscordVersion",(function(){return o})),n.d(s,"minSupportedVersion",(function(){return i})),n.d(s,"bbdVersion",(function(){return a})),n.d(s,"bbdChangelog",(function(){return l})),n.d(s,"settings",(function(){return c})),n.d(s,"defaultCookie",(function(){return d})),n.d(s,"settingsCookie",(function(){return u})),n.d(s,"settingsRPC",(function(){return h})),n.d(s,"defaultRPC",(function(){return p})),n.d(s,"bdpluginErrors",(function(){return m})),n.d(s,"bdthemeErrors",(function(){return g})),n.d(s,"bdConfig",(function(){return f})),n.d(s,"bdthemes",(function(){return b})),n.d(s,"bdplugins",(function(){return y})),n.d(s,"pluginCookie",(function(){return v})),n.d(s,"themeCookie",(function(){return w}));const r="0.0.306",o=window.DiscordNative&&window.DiscordNative.remoteApp&&window.DiscordNative.remoteApp.getVersion&&window.DiscordNative.remoteApp.getVersion()||"0.0.306",i="0.3.0",a="0.3.5",l={description:"Big things are coming.",changes:[{title:"Bug Fixes",type:"fixed",items:["Some fixes related to showing modals in the `BdApi`.","Fixed the open folder buttons for plugins and themes"]}]},c={"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"},"Enable Edit Button":{id:"fork-ps-7",info:"Enable an Edit Button on the plugin and theme panel.",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Themes in Popout Window":{id:"lightcord-9",info:"Enable themes in Popout Window. (For example, when detaching screenshare.)",implemented:!0,hidden:!1,cat:"core",category:"content manager",experimental:!0},"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 Personal Information":{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 "Lightcord Api" section.',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"},"Lightcord Tabs":{id:"lightcord-8",info:"Allows you to launch multiple instances of Lightcord in the same window.",implemented:!0,hidden:!1,cat:"lightcord",category:"Lightcord",experimental:!0},"Use Notification Shim":{id:"lightcord-10",info:"Basically don't use Windows's Notifications.",implemented:!0,hidden:"win32"!==process.platform,cat:"lightcord",category:"Lightcord",experimental:!1},"Always-on-Top":{id:"lightcord-3",info:"Enable the window's Always-on-Top mode, where Lightcord stays on top of other applications.",implemented:!0,hidden:!1,cat:"lightcord",category:"Window"},"No Window Bounds":{id:"no_window_bound",info:"Disable Window Bounds. Can be useful if you use a window manager.",implemented:!0,hidden:"linux"!==process.platform,cat:"lightcord",category:"Window"},"Enable Glasstron":{id:"enable_glasstron",info:"Enable Glasstron. If you're not using transparent themes, this can reduce lag.",implemented:!0,hidden:!1,cat:"lightcord",category:"Window"},Enable:{id:"lightcord-presence-1",info:"Enable RichPresence below.",implemented:!0,hidden:!1,cat:"status"}},d={"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":!1,"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-ps-7":!1,"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,"lightcord-8":!1,"lightcord-9":!1,"lightcord-10":!1,no_window_bound:!1},u={},h={},p={name:"Lightcord",application_id:"711416957718757418",state:"Lightcord Client",details:"Browsing Discord","timestamps.start":Date.now(),"assets.small":null,"assets.large":"712323821037682791"},m=[],g=[],f=Object.create(BetterDiscordConfig),b={},y={},v={},w={},C=webpackJsonp.push([[],{__extra_id__:(e,t,n)=>e.exports=n},[["__extra_id__"]]]);delete C.m.__extra_id__,delete C.c.__extra_id__;const E=e=>{for(const t in C.c)if(C.c.hasOwnProperty(t)){const n=C.c[t].exports;if(n&&n.__esModule&&n.default&&e(n.default))return n.default;if(n&&e(n))return n}return null};let S={find:E,findAll:e=>{const t=[];for(const n in C.c)if(C.c.hasOwnProperty(n)){const s=C.c[n].exports;s&&s.__esModule&&s.default&&e(s.default)?t.push(s.default):s&&e(s)&&t.push(s)}return t},findByProps:(...e)=>E(t=>e.every(e=>void 0!==t[e])),findByPrototypes:(...e)=>E(t=>t.prototype&&e.every(e=>void 0!==t.prototype[e])),findByDisplayName:e=>E(t=>t.displayName===e)};var x=S;window.Lightcord.BetterDiscord.WebpackModules=S;const k=window.require,D=n(2),M=n(1),B=DiscordNative.globals?DiscordNative.globals.releaseChannel:DiscordNative.app?DiscordNative.app.getReleaseChannel():"stable";let N="";N="win32"===process.platform?process.env.APPDATA:"darwin"===process.platform?M.join(process.env.HOME,"Library","Preferences"):process.env.XDG_CONFIG_HOME?process.env.XDG_CONFIG_HOME:M.join(process.env.HOME,".config"),N=M.join(N,"BetterDiscord");var L=new class{constructor(){this.data={settings:{stable:{},canary:{},ptb:{}}},this.pluginData={},window.Lightcord.BetterDiscord.DataStore=this}initialize(){try{D.existsSync(this.BDFile)||D.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary");const e=JSON.parse(D.readFileSync(this.BDFile,"binary"));if(e.hasOwnProperty("settings")&&(this.data=e),!D.existsSync(this.settingsFile))return;let t=k(this.settingsFile);D.unlinkSync(this.settingsFile),t=t.hasOwnProperty("settings")?Object.assign({stable:{},canary:{},ptb:{}},{[B]:t}):Object.assign({stable:{},canary:{},ptb:{}},t),this.setBDData("settings",t)}catch(e){console.error(e),xe.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=M.resolve(this.injectionPath,"betterdiscord","config.json"))}get BDFile(){return this._BDFile||(this._BDFile=M.resolve(N,"bdstorage.json"))}get settingsFile(){return this._settingsFile||(this._settingsFile=M.resolve(N,"bdsettings.json"))}getPluginFile(e){return M.resolve(ve.pluginsFolder,e+".config.json")}getSettingGroup(e){return this.data.settings[B][e]||null}setSettingGroup(e,t){this.data.settings[B][e]=t,D.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary")}getBDData(e){return this.data[e]||""}setBDData(e,t){this.data[e]=t,D.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4),"binary")}getPluginData(e,t){return void 0!==this.pluginData[e]?this.pluginData[e][t]:D.existsSync(this.getPluginFile(e))?(this.pluginData[e]=JSON.parse(D.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,D.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],D.writeFileSync(this.getPluginFile(e),JSON.stringify(this.pluginData[e],null,4),"binary")}};const P=n(5);var A=new class extends P{constructor(){super(),window.Lightcord.BetterDiscord.BDEvents=this}dispatch(e,...t){this.emit(e,...t)}off(e,t){this.removeListener(e,t)}};class T{constructor(){window.Lightcord.BetterDiscord.PluginModule=this}get folder(){return ve.pluginsFolder}}T.prototype.loadPlugins=async function(){this.loadPluginData(),m.splice(0,0,...await ve.loadPlugins());const e=Object.keys(y);for(let t=0;t<e.length;t++){let n,s;try{n=y[e[t]].plugin,s=n.getName(),n.load&&"function"==typeof n.load&&n.load()}catch(n){v[s]=!1,xe.err("Plugins",s+" could not be loaded.",n),m.push({name:s,file:y[e[t]].filename,message:"load() could not be fired.",error:{message:n.message,stack:n.stack}});continue}if(v[s]||(v[s]=!1),v[s])try{n.start(),u["fork-ps-2"]&&xe.showToast(`${n.getName()} v${n.getVersion()} has started.`)}catch(n){v[s]=!1,xe.err("Plugins",s+" could not be started.",n),m.push({name:s,file:y[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{y[e].plugin.start(),u["fork-ps-2"]&&!t&&xe.showToast(`${y[e].plugin.getName()} v${y[e].plugin.getVersion()} has started.`)}catch(n){u["fork-ps-2"]&&!t&&xe.showToast(`${y[e].plugin.getName()} v${y[e].plugin.getVersion()} could not be started.`,{type:"error"}),v[e]=!1,this.savePluginData(),xe.err("Plugins",e+" could not be started.",n)}},T.prototype.stopPlugin=function(e,t=!1){try{y[e].plugin.stop(),u["fork-ps-2"]&&!t&&xe.showToast(`${y[e].plugin.getName()} v${y[e].plugin.getVersion()} has stopped.`)}catch(n){u["fork-ps-2"]&&!t&&xe.showToast(`${y[e].plugin.getName()} v${y[e].plugin.getVersion()} could not be stopped.`,{type:"error"}),xe.err("Plugins",y[e].plugin.getName()+" could not be stopped.",n)}},T.prototype.enablePlugin=function(e,t=!1){v[e]||(v[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){v[e]&&(v[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){v[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 ve.loadContent(e,"plugin");if(t)return u["fork-ps-1"]&&xe.showContentErrors({plugins:[t]}),u["fork-ps-2"]&&xe.showToast(e+" could not be loaded.",{type:"error"}),xe.err("ContentManager",e+" could not be loaded.",t);const n=Object.values(y).find(t=>console.log(t.filename,e)||t.filename==e).plugin;try{n.load&&"function"==typeof n.load&&n.load()}catch(e){u["fork-ps-1"]&&xe.showContentErrors({plugins:[e]})}xe.log("ContentManager",`${n.getName()} v${n.getVersion()} was loaded.`),u["fork-ps-2"]&&xe.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(y).find(t=>t.filename==e)||y[e];if(!t)return;const n=t.plugin.getName();v[n]&&this.disablePlugin(n,!0);const s=ve.unloadContent(y[n].filename,"plugin");if(delete y[n],s)return u["fork-ps-1"]&&xe.showContentErrors({plugins:[s]}),u["fork-ps-2"]&&xe.showToast(n+" could not be unloaded. It may have not been loaded yet.",{type:"error"}),xe.err("ContentManager",n+" could not be unloaded. It may have not been loaded yet.",s);xe.log("ContentManager",n+" was unloaded."),u["fork-ps-2"]&&xe.showToast(n+" was unloaded.",{type:"success"}),A.dispatch("plugin-unloaded",n)},T.prototype.delete=function(e){const t=Object.values(y).find(t=>t.filename==e)||y[e];if(!t)return;this.unloadPlugin(t.filename);const s=n(1).resolve(ve.pluginsFolder,t.filename);n(2).unlinkSync(s)},T.prototype.reloadPlugin=async function(e){const t=Object.values(y).find(t=>t.filename==e)||y[e];if(!t)return this.loadPlugin(e);const n=t.plugin.getName(),s=v[n];s&&this.stopPlugin(n,!0);const r=await ve.reloadContent(y[n].filename,"plugin");if(r)return u["fork-ps-1"]&&xe.showContentErrors({plugins:[r]}),u["fork-ps-2"]&&xe.showToast(n+" could not be reloaded.",{type:"error"}),xe.err("ContentManager",n+" could not be reloaded.",r);y[n].plugin.load&&"function"==typeof y[n].plugin.load&&y[n].plugin.load(),s&&this.startPlugin(n,!0),xe.log("ContentManager",`${n} v${y[n].plugin.getVersion()} was reloaded.`),u["fork-ps-2"]&&xe.showToast(`${n} v${y[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(y).find(t=>t.filename==e)||y[e];if(!t)return;const s=n(1).resolve(ve.pluginsFolder,t.filename);console.log("Edit "+s),n(0).shell.openItem(""+s)},T.prototype.updatePluginList=function(){const e=ve.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=L.getSettingGroup("plugins");e&&Object.assign(v,e)},T.prototype.savePluginData=function(){L.setSettingGroup("plugins",v)},T.prototype.newMessage=function(){const e=Object.keys(y);for(let t=0;t<e.length;t++){const n=y[e[t]].plugin;if(v[n.getName()]&&"function"==typeof n.onMessage)try{n.onMessage()}catch(e){xe.err("Plugins","Unable to fire onMessage for "+n.getName()+".",e)}}},T.prototype.channelSwitch=function(){const e=Object.keys(y);for(let t=0;t<e.length;t++){const n=y[e[t]].plugin;if(v[n.getName()]&&"function"==typeof n.onSwitch)try{n.onSwitch()}catch(e){xe.err("Plugins","Unable to fire onSwitch for "+n.getName()+".",e)}}},T.prototype.rawObserver=function(e){const t=Object.keys(y);for(let n=0;n<t.length;n++){const s=y[t[n]].plugin;if(v[s.getName()]&&"function"==typeof s.observer)try{s.observer(e)}catch(e){xe.err("Plugins","Unable to fire observer for "+s.getName()+".",e)}}};var R=new T,O=n(3),j=n.n(O),_=n(0),$=n(4);let I,W;function F(){return I||(I=x.findByProps("tooltip","tooltipBlack"))}function z(){return W||(W=x.findByProps("layer","layerContainer"))}const H=function(e){const t=e[0].toUpperCase()+e.slice(1),n=F()["tooltip"+t];return n||null},U=function(e){return!!H(e)},G=function(e){return e+"px"};class q{constructor(e,t,n={}){const{style:s="black",side:r="top",preventFlip:o=!1,disabled:i=!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=i,!U(this.side))return xe.err("EmulatedTooltip",`Side ${this.side} does not exist.`);if(!U(this.style))return xe.err("EmulatedTooltip",`Style ${this.style} does not exist.`);this.element=document.createElement("div"),this.element.className=z().layer+" "+z().disabledPointerEvents,this.tooltipElement=document.createElement("div"),this.tooltipElement.className=`${F().tooltip} ${H(this.style)}`,this.labelElement=document.createElement("div"),this.labelElement.className=F().tooltipContent;const a=document.createElement("div");a.className=F().tooltipPointer,this.tooltipElement.append(a),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("."+xe.removeDa(BDModules.get(e=>e.popouts)[0].popouts)+" ~ ."+xe.removeDa(BDModules.get(e=>e.layerContainer)[0].layerContainer))}get canShowAbove(){return this.node.getBoundingClientRect().top-this.element.offsetHeight>=0}get canShowBelow(){return this.node.getBoundingClientRect().top+this.node.offsetHeight+this.element.offsetHeight<=xe.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<=xe.screenWidth}hide(){this.element.remove(),this.tooltipElement.className=this._className}show(){this.tooltipElement.className=`${F().tooltip} ${H(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(H("top")),this.element.style.setProperty("top",G(this.node.getBoundingClientRect().top-this.element.offsetHeight-10)),this.centerHorizontally()}showBelow(){this.tooltipElement.classList.add(H("bottom")),this.element.style.setProperty("top",G(this.node.getBoundingClientRect().top+this.node.offsetHeight+10)),this.centerHorizontally()}showLeft(){this.tooltipElement.classList.add(H("left")),this.element.style.setProperty("left",G(this.node.getBoundingClientRect().left-this.element.offsetWidth-10)),this.centerVertically()}showRight(){this.tooltipElement.classList.add(H("right")),this.element.style.setProperty("left",G(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",G(e-this.element.offsetWidth/2))}centerVertically(){const e=this.node.getBoundingClientRect().top+this.node.offsetHeight/2;this.element.style.setProperty("top",G(e-this.element.offsetHeight/2))}}var V=class extends React.Component{constructor(e){super(e)}async componentDidMount(){const{style:e="black",side:t="top",text:n=""}=this.props;this.node=Se.reactDom.findDOMNode(this),this.tooltip=new q(this.node,n,{style:e,side:t})}componentWillUnmount(){this.tooltip.hide(),delete this.tooltip}render(){return this.props.children}},J=n(2),Z=n(1);const Y={},K={};var X=new class{constructor(){window.Lightcord.BetterDiscord.PluginCertifier=this}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();j()(e.url,{headers:{"User-Agent":_.remote.getCurrentWebContents().userAgent}}).then(n=>{if(200!==n.status)throw new Error("File doesn't exist.");const s=$.createHash("sha256");let r=Buffer.alloc(0);n.body.on("data",e=>{r=Buffer.concat([r,e]),s.update(e)}),n.body.on("end",()=>{const n=s.digest("hex");K[e.url]=n,Q[n]=e.url,ee(n,r,e.filename,n=>{!function(e,t,n){const s=document.getElementById(e);if(!s||s.childNodes.length>0)return;ne||(ne=BDModules.get(e=>e.flowerStarContainer)[0]);se||(se=BDModules.get(e=>e.childContainer)[0]);if(t.suspect){try{s.parentNode.style.borderColor="rgb(240, 71, 71)";let e=s=>{for(let r of s.children)"A"===r.tagName?r.addEventListener("click",e=>{e.preventDefault(),e.stopImmediatePropagation(),xe.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:()=>{_.remote.shell.openExternal(r.href)}})}):["div"].includes(r.tagName.toLowerCase())&&e(r)};e(s.parentNode)}catch(e){console.error(e)}Se.reactDom.render(Se.react.createElement(V,{text:t.type+" "+t.name+" is potentially dangerous."},Se.react.createElement("div",{className:ne.flowerStarContainer,style:{width:"20px",height:"20px"}},Se.react.createElement("svg",{className:BDModules.get(e=>e.svg)[0].svg,"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 40 32"},Se.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 if(t.official){s.parentNode.style.borderColor="#4087ed";let e=Se.react.createElement("span",{style:{display:"inherit"}},[Se.react.createElement(V,{text:t.type+" "+t.name+" was made by the developers of Lightcord.",style:"brand"},Se.react.createElement("div",{className:ne.flowerStarContainer,style:{width:"20px",height:"20px",float:"left"}},Se.react.createElement("svg",{className:ne.flowerStar,"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 16 15.2",stroke:"#36393f",style:{color:"#4087ed"}},Se.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"})),Se.react.createElement("div",{className:se.childContainer},Se.react.createElement("svg",{"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 16 15.2"},Se.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"}))))),Se.react.createElement(V,{text:"Install this "+t.type.toLowerCase()+" on Lightcord."},Se.react.createElement("div",{className:ne.flowerStarContainer,style:{width:"20px",height:"20px"},onClick(){xe.showConfirmationModal("Are you sure you want to download this "+t.type.toLowerCase()+" ?","Lightcord will automatically download and load this "+t.type.toLowerCase()+". You must enable it in the settings.",{confirmText:"Download and Install",cancelText:"I've changed my mind",danger:!1,onCancel:()=>{},onConfirm:()=>{let e=re(K).find(e=>e[1]===t.hash)[0];j()(e).then(async e=>{if(200!==e.status)throw new Error("Status was not 200");let n=await e.buffer(),s=Object(Z.join)("Plugin"===t.type?ve._pluginsFolder:ve._themesFolder,t.filename);Object(J.writeFileSync)(s,n),xe.showToast(t.type+" succesfully installed.")}).catch(e=>{e=e instanceof Error?e:new Error(e),xe.showToast(e.message,{type:"error"})})}})}},Se.react.createElement("svg",{className:ne.flowerStar,"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 24 24",style:{color:"rgb(67, 181, 129)",cursor:"pointer"}},React.createElement("g",{fill:"none","fill-rule":"evenodd"},React.createElement("path",{d:"M0 0h24v24H0z"}),React.createElement("path",{class:"fill",fill:"currentColor",d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"})))))]);Se.reactDom.render(e,s)}else{s.parentNode.style.borderColor="#4087ed";let e=Se.react.createElement("span",{style:{display:"inherit"}},[Se.react.createElement(V,{text:t.type+" "+t.name+" is certified by Lightcord."},Se.react.createElement("div",{className:ne.flowerStarContainer,style:{width:"20px",height:"20px",float:"left"}},Se.react.createElement("svg",{className:ne.flowerStar,"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 16 15.2"},Se.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"})),Se.react.createElement("div",{className:se.childContainer},Se.react.createElement("svg",{"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 16 15.2"},Se.react.createElement("path",{fill:"#ffffff",d:"M7.4,11.17,4,8.62,5,7.26l2,1.53L10.64,4l1.36,1Z"}))))),Se.react.createElement(V,{text:"Install this "+t.type.toLowerCase()+" on Lightcord."},Se.react.createElement("div",{className:ne.flowerStarContainer,style:{width:"20px",height:"20px"},onClick(){xe.showConfirmationModal("Are you sure you want to download this "+t.type.toLowerCase()+" ?","Lightcord will automatically install and launch this "+t.type.toLowerCase()+". You don't have anything to do.",{confirmText:"Download and Install",cancelText:"I've changed my mind",danger:!1,onCancel:()=>{},onConfirm:()=>{let e=re(K).find(e=>e[1]===t.hash)[0];console.log(e),j()(e).then(async e=>{if(200!==e.status)throw new Error("Status was not 200");let n=await e.buffer(),s=Object(Z.join)("Plugin"===t.type?ve._pluginsFolder:ve._themesFolder,t.filename);console.log(s),Object(J.writeFileSync)(s,n),xe.showToast(t.type+" succesfully installed.")}).catch(e=>{e=e instanceof Error?e:new Error(e),xe.showToast(e.message,{type:"error"})})}})}},Se.react.createElement("svg",{className:ne.flowerStar,"aria-hidden":"false",width:"20px",height:"20px",viewBox:"0 0 24 24",style:{color:"rgb(67, 181, 129)",cursor:"pointer"}},React.createElement("g",{fill:"none","fill-rule":"evenodd"},React.createElement("path",{d:"M0 0h24v24H0z"}),React.createElement("path",{class:"fill",fill:"currentColor",d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"})))))]);Se.reactDom.render(e,s)}}(t,n,e.filename)},()=>{let e=document.getElementById(t);e&&e.remove()})})}).catch(()=>{})}(e,t)})}start(){}isTrusted(e){return Y[e]&&!Y[e].suspect}};const Q={};function ee(e,t,n,s,r){if(console.log(`File: ${n} hash: ${e}`),Y[e]){const t=Y[e];s(t)}else j()("https://cdn.jsdelivr.net/gh/Lightcord/filehashes@master/hashes/"+e,{headers:{"User-Agent":_.remote.getCurrentWebContents().userAgent}}).then(async o=>{if(200!==o.status)return n.endsWith(".theme.css")?r(e):void function(e,t,n,s,r){t=t.toString("utf8");let o=!1;for(let e of t.split(/[^\w\d]+/g)){for(let t of["token","email","phone","MFA","2fa","child_process","localStorage","eval","getGlobal","BrowserWindow"])if(e.toLowerCase().includes(t.toLowerCase())&&"domtokenlist"===!e.toLowerCase()){console.log(t,e),o="token stealer/virus";break}if(o)break}if(!o){const e=t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"").trim();if(/var [\w\d_$]+=\["/gi.test(e)&&(o="obfuscation/hidden code"),!o){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(o)break;n.test(e)&&(o="obfuscation/hidden code")}}}if(!o)return s(e);Y[e]={suspect:!0,name:Q[e].split("/").pop(),type:Q[e].endsWith(".js")?"Plugin":"Theme",harm:o,hash:e,filename:r},console.log(`Found potentially dangerous ${Y[e].type.toLowerCase()}: ${Y[e].name}`),n(Y[e])}(e,t,s,r,n);const i=await o.json();i.hash=e,i.filename=n,Y[e]=i,s(i)}).catch(console.error)}function te(e,t,n=(e=>{}),s=!1){const r=$.createHash("sha256");let o=Buffer.alloc(0);Object(J.createReadStream)(e).on("data",e=>{o=Buffer.concat([o,e]),r.update(e)}).on("end",()=>{const i=r.digest("hex");if(Q[i]=e,s&&be[i]){let e=be[i];if(!(e.timestamp<Date.now()-6048e5))return void t(e.result);delete be[i],ve.saveAddonCache()}ee(i,o,Object(Z.basename)(e),t,n)})}let ne=BDModules.get(e=>e.flowerStarContainer)[0],se=BDModules.get(e=>e.childContainer)[0];function re(e){let t=[];return Object.keys(e).forEach(n=>{t.push([n,e[n]])}),t}let oe=null,ie=null;function ae(){oe=[$.randomBytes(16).toString("base64"),$.randomBytes(32).toString("base64")]}function le(e){let t=[Buffer.from(oe[1],"base64"),Buffer.from(oe[0],"base64")],n=$.createCipheriv("aes-256-cbc",...t),s=n.update(Buffer.from(e,"utf8"));return s=Buffer.concat([s,n.final()]),s.toString("base64")}window.Lightcord.Api.ensureExported(e=>e.ObjectStorage).then(e=>{let t=e.impl;ie=function(){t.set("PluginCertifierKeyEncryption__",btoa(JSON.stringify(oe)))},setInterval(()=>{ie()},1e5);try{let e=function(e){try{return JSON.parse(e)}catch(e){return e instanceof Error?new Error(e):e}}(atob(t.get("PluginCertifierKeyEncryption__")));if(e instanceof Error||!Array.isArray(e)||2!==e.length||e.find(e=>"string"!=typeof e)||16!==Buffer.from(e[0],"base64").length||32!==Buffer.from(e[1],"base64").length)return ae(),void ie();oe=e}catch(e){ae(),ie()}});const ce=n(1),de=n(2),ue=n(6).Module;ue.globalPaths.push(ce.resolve(n(0).remote.app.getAppPath(),"node_modules"));class he extends Error{constructor(e){super(e),this.name="MetaError"}}const pe=ue._extensions[".js"],me=ue._extensions[".css"]?ue._extensions[".css"]:()=>null,ge=/[^\S\r\n]*?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/,fe=/^\\@/;let be={},ye=!1;var ve=new class{constructor(){this.timeCache={},this.watchers={}}patchExtensions(){ye||(ye=!0,ue._extensions[".js"]=this.getContentRequire("plugin"),ue._extensions[".css"]=this.getContentRequire("theme"))}get pluginsFolder(){return this._pluginsFolder||(this._pluginsFolder=de.realpathSync(ce.resolve(f.dataPath+"plugins/")))}get themesFolder(){return this._themesFolder||(this._themesFolder=de.realpathSync(ce.resolve(f.dataPath+"themes/")))}loadAddonCertifierCache(){if("string"!=typeof L.getSettingGroup("PluginCertifierHashes"))L.setSettingGroup("PluginCertifierHashes",le("{}"));else try{be=JSON.parse(function(e){try{let t=$.createDecipheriv("aes-256-cbc",Buffer.from(oe[1],"base64"),Buffer.from(oe[0],"base64")),n=t.update(Buffer.from(e,"base64"));return n=Buffer.concat([n,t.final()]),n.toString("utf8")}catch(e){return"{}"}}(L.getSettingGroup("PluginCertifierHashes")))}catch(e){L.setSettingGroup("PluginCertifierHashes",le("{}")),be={}}Object.keys(be).forEach(e=>{let t=be[e];if(!t||"object"!=typeof t||Array.isArray(t))return delete be[e];let n=[{key:"timestamp",type:"number"},{key:"result",type:"object"},{key:"hash",type:"string"}];for(let s of n)if(!(s.key in t)||typeof t[s.key]!==s.type)return void delete be[e];t.hash===e?t.result.suspect&&delete be[e]:delete be[e]}),this.saveAddonCache()}saveAddonCache(){L.setSettingGroup("PluginCertifierHashes",le(JSON.stringify(be)))}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]=de.watch(n,{persistent:!1},async(e,r)=>{if(!e||!r||!r.endsWith(s))return;await new Promise(e=>setTimeout(e,50));try{de.statSync(ce.resolve(n,r))}catch(e){if("ENOENT"!==e.code)return;return delete this.timeCache[r],t?R.unloadPlugin(r):Ee.unloadTheme(r)}if(!de.statSync(ce.resolve(n,r)).isFile())return;const o=de.statSync(ce.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 Ee.loadTheme(r)),"change"==e&&(t?await R.reloadPlugin(r):await Ee.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 he("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 he("META was not found.");const s=xe.testJSON(n);if(!s)throw new he("META could not be parsed.");if(!s.name)throw new he("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(ge))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(fe,"@");return n[s]=r.trim(),delete n[""],n.format="jsdoc",n}getContentRequire(e){const t="plugin"===e,n=this,s=t?pe:me;return function(e,r){const o=t?n.pluginsFolder:n.themesFolder,i=ce.resolve(o,ce.basename(r));if(!de.existsSync(i)||r!==de.realpathSync(i))return Reflect.apply(s,this,arguments);let a=de.readFileSync(r,"utf8");a=xe.stripBOM(a);const l=de.statSync(r),c=n.extractMeta(a);if(c.filename=ce.basename(r),c.added=l.atimeMs,c.modified=l.mtimeMs,c.size=l.size,t||(c.css=a,"json"==c.format&&(c.css=c.css.split("\n").slice(1).join("\n")),a=`module.exports = ${JSON.stringify(c)};`),t){e._compile(a,e.filename);!xe.isEmpty(e.exports)?(c.type=e.exports,e.exports=c,a=""):(xe.warn("Module Not Exported",c.name+", please start setting module.exports"),a+=`\nmodule.exports = ${JSON.stringify(c)};\nmodule.exports.type = ${c.exports||c.name};`)}e._compile(a,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;if(u["fork-ps-6"]){let t=await new Promise(t=>{te(ce.resolve(s,e),e=>{console.log(e),t(e)},n=>{t({suspect:!1,hash:n,filename:e,name:e})},!0)});if(t&&(be[t.hash]={timestamp:Date.now(),hash:t.hash,result:t},this.saveAddonCache(),t.suspect))return{name:e,file:e,message:"This plugin might be dangerous ("+t.harm+").",error:new Error("This plugin might be dangerous ("+t.harm+").")}}try{window.require(ce.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(ce.resolve(s,e));if(!r.name)return{name:e,file:e,message:"Cannot escape the ID.",error:new Error("Cannot read property 'replace' of undefined")};if(r.id=xe.escapeID(r.name),n){if(!r.type)return;try{r.plugin=new r.type,delete y[r.plugin.getName()],y[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 b[r.name],b[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(ce.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(ce.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=de.readdirSync(s),o=Object.values(t?y:b),i=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)&&de.statSync(ce.resolve(s,e)).isFile()),removed:i}}async loadAllContent(e){this.patchExtensions();const t="plugin"===e,n=t?".plugin.js":".theme.css",s=t?this.pluginsFolder:this.themesFolder,r=[],o=de.readdirSync(s);for(const t of o){if(!de.statSync(ce.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")}};class we{static escapeID(e){return e.replace(/^[^a-z]+|[^\w-]+/gi,"-")}static addStyle(e,t){document.head.append(we.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 i=(o-s)/n;i>1&&(i=1);const a=e(i);t(a),i<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("."),i=n&&s;s||(s=n);const a=i?function(e){e.target.matches(n)&&s(e)}:s;e.addEventListener(r,a);const l=()=>{e.removeEventListener(r,a)};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("."),i=n&&s;s||(s=n);const a=i?function(t){t.target.matches(n)&&(s(t),e.removeEventListener(r,a))}:function(t){s(t),e.removeEventListener(r,a)};e.addEventListener(r,a);const l=()=>{e.removeEventListener(r,a)};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 i=this.listeners[s]||[],a=n?i.filter(r):i.filter(o);for(let e=0;e<a.length;e++)a[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 i=n&&s;s||(s=n);const a=i?function(e){e.target.matches(n)&&s(e)}:s;return e.removeEventListener(r,a),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=we;class Ce{constructor(){window.Lightcord.BetterDiscord.ThemeModule=this}get folder(){return ve.themesFolder}}Ce.prototype.loadThemes=async function(){this.loadThemeData(),g.splice(0,0,...await ve.loadThemes());const e=Object.keys(b);for(let t=0;t<e.length;t++){const n=b[e[t]];w[n.name]||(w[n.name]=!1),w[n.name]&&we.addStyle(we.escapeID(n.id),unescape(n.css)),await new Promise(e=>setTimeout(e,10))}for(const e in w)b[e]||delete w[e];this.saveThemeData()},Ce.prototype.enableTheme=function(e,t=!1){w[e]=!0,this.saveThemeData();const n=b[e];we.addStyle(we.escapeID(n.id),unescape(n.css)),u["fork-ps-2"]&&!t&&xe.showToast(`${n.name} v${n.version} has been applied.`)},Ce.prototype.enable=function(e,t=!1){return this.enableTheme(e,t)},Ce.prototype.disableTheme=function(e,t=!1){w[e]=!1,this.saveThemeData();const n=b[e];we.removeStyle(we.escapeID(n.id)),u["fork-ps-2"]&&!t&&xe.showToast(`${n.name} v${n.version} has been disabled.`)},Ce.prototype.disable=function(e,t=!1){return this.disableTheme(e,t)},Ce.prototype.toggleTheme=function(e){w[e]?this.disableTheme(e):this.enableTheme(e)},Ce.prototype.toggle=function(e,t=!1){return this.toggleTheme(e,t)},Ce.prototype.loadTheme=async function(e){const t=await ve.loadContent(e,"theme");if(t)return u["fork-ps-1"]&&xe.showContentErrors({themes:[t]}),u["fork-ps-2"]&&xe.showToast(e+" could not be loaded. It may not have been loaded.",{type:"error"}),xe.err("ContentManager",e+" could not be loaded.",t);const n=Object.values(b).find(t=>t.filename==e);xe.log("ContentManager",`${n.name} v${n.version} was loaded.`),u["fork-ps-2"]&&xe.showToast(`${n.name} v${n.version} was loaded.`,{type:"success"}),A.dispatch("theme-loaded",n.name)},Ce.prototype.unloadTheme=function(e){const t=Object.values(b).find(t=>t.filename==e)||b[e];if(!t)return;const n=t.name;w[n]&&this.disableTheme(n,!0);const s=ve.unloadContent(b[n].filename,"theme");if(delete b[n],s)return u["fork-ps-1"]&&xe.showContentErrors({themes:[s]}),u["fork-ps-2"]&&xe.showToast(n+" could not be unloaded. It may have not been loaded yet.",{type:"error"}),xe.err("ContentManager",n+" could not be unloaded. It may have not been loaded yet.",s);xe.log("ContentManager",n+" was unloaded."),u["fork-ps-2"]&&xe.showToast(n+" was unloaded.",{type:"success"}),A.dispatch("theme-unloaded",n)},Ce.prototype.delete=function(e){const t=Object.values(b).find(t=>t.filename==e)||b[e];if(!t)return;this.unloadTheme(t.filename);const s=n(1).resolve(ve.themesFolder,t.filename);n(2).unlinkSync(s)},Ce.prototype.reloadTheme=async function(e){const t=Object.values(b).find(t=>t.filename==e)||b[e];if(!t)return this.loadTheme(e);const n=t.name,s=await ve.reloadContent(b[n].filename,"theme");if(w[n]&&(this.disableTheme(n,!0),this.enableTheme(n,!0)),s)return u["fork-ps-1"]&&xe.showContentErrors({themes:[s]}),u["fork-ps-2"]&&xe.showToast(n+" could not be reloaded.",{type:"error"}),xe.err("ContentManager",n+" could not be reloaded.",s);xe.log("ContentManager",`${n} v${b[n].version} was reloaded.`),u["fork-ps-2"]&&xe.showToast(`${n} v${b[n].version} was reloaded.`,{type:"success"}),A.dispatch("theme-reloaded",n)},Ce.prototype.reload=function(e){return this.reloadTheme(e)},Ce.prototype.edit=function(e){const t=Object.values(b).find(t=>t.filename==e)||b[e];if(!t)return;const s=n(1).resolve(ve.themesFolder,t.filename);n(0).shell.openItem(""+s)},Ce.prototype.updateThemeList=function(){const e=ve.loadNewContent("theme");for(const t of e.added)this.loadTheme(t);for(const t of e.removed)this.unloadTheme(t)},Ce.prototype.loadThemeData=function(){const e=L.getSettingGroup("themes");e&&Object.assign(w,e)},Ce.prototype.saveThemeData=function(){L.setSettingGroup("themes",w)};var Ee=new Ce,Se=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,t)=>{let n=t?e:e.default;if(!n)return e;if(n.remove&&n.set&&n.clear&&n.get&&!n.sort)return null;if(!n.getToken&&!n.getEmail&&!n.showToken)return e;const s=new Proxy(n,{getOwnPropertyDescriptor:function(e,t){if("getToken"!==t&&"getEmail"!==t&&"showToken"!==t)return Object.getOwnPropertyDescriptor(e,t)},get:function(e,t){return"getToken"==t&&e.getToken?()=>"mfa.XCnbKzo0CLIqdJzBnL0D8PfDruqkJNHjwHXtr39UU3F8hHx43jojISyi5jdjO52e9_e9MjmafZFFpc-seOMa":"getEmail"==t&&e.getEmail?()=>"puppet11112@gmail.com":"showToken"==t&&e.showToken?()=>!0:"__proto__"==t&&e.__proto__?s:e[t]}});return t?s:Object.assign({},e,{default:s})},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,!0);if(r&&n(r))return t(r,!1)}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,!0)):o&&n(o)&&s.push(t(o,!1))}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"))],window.Lightcord.BetterDiscord.V2=this}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(c).reduce((t,n)=>{const s=c[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}};class xe{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 we.query("."+ke(BDModules.get(e=>e.channelTextArea&&e.titleWrapper)[0].channelTextArea)+" 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 formatString(e,t){for(const n in t){let s=t[n];Array.isArray(s)&&(s=JSON.stringify(s)),"object"==typeof s&&null!==s&&(s=s.toString()),e=e.replace(new RegExp(`{{${n}}}`,"g"),s)}return e}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:i=!1,silent:a=!1,force:l=!1}=n,c=n.displayName||e.displayName||e[t].displayName||e.name||e.constructor.displayName||e.constructor.name;if(a||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 h=()=>{a||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:h,originalMethod:d,callOriginalMethod:()=>n.returnValue=n.originalMethod.apply(n.thisObject,n.methodArguments)};if(o){const s=xe.suppressErrors(o,"`instead` callback of "+e[t].displayName)(n);void 0!==s&&(n.returnValue=s)}else s&&xe.suppressErrors(s,"`before` callback of "+e[t].displayName)(n),n.callOriginalMethod(),r&&xe.suppressErrors(r,"`after` callback of "+e[t].displayName)(n);return i&&h(),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()}),h}static onRemoved(e,t){const n=new MutationObserver(s=>{for(let r=0;r<s.length;r++){const o=s[r],i=Array.from(o.removedNodes),a=i.indexOf(e)>-1,l=i.some(t=>t.contains(e));(a||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("."+ke(BDModules.get(e=>e.sidebar&&e.hasNotice)[0].sidebar)+" + div")||null,t=e?e.querySelector("."+ke(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:xe.screenWidth-s-240,i=n?n.offsetHeight:80,a=document.createElement("div");a.classList.add("bd-toasts"),a.style.setProperty("left",s+"px"),a.style.setProperty("width",o+"px"),a.style.setProperty("bottom",i+"px"),document.querySelector("#app-mount").appendChild(a)}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=we.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",()=>{we.addClass(o,"closing"),setTimeout(()=>{o.remove(),i.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)}),o.querySelector(".bd-backdrop").addEventListener("click",()=>{we.addClass(o,"closing"),setTimeout(()=>{o.remove(),i.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)}),we.query("#app-mount").append(o);const i=[];return{close:()=>{we.addClass(o,"closing"),setTimeout(()=>{o.remove(),i.forEach(e=>{try{e()}catch(e){console.error(e)}})},300)},onClose:e=>{i.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=we.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 i(e){const t=we.createElement('<div class="errors">');for(const n of e){const e=we.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(),xe.err("ContentManager",`Error details for ${n.name?n.name:n.file}.`,n.error)}))}return t}const a=[i(e),i(t)];o.querySelectorAll(".tab-bar-item").forEach(e=>e.addEventListener("click",e=>{e.preventDefault();const t=o.querySelector(".tab-bar-item.selected");t&&we.removeClass(t,"selected"),we.addClass(e.target,"selected");const n=o.querySelector(".scroller");n.innerHTML="",n.append(a[we.index(e.target)])})),o.querySelector(".footer button").addEventListener("click",()=>{we.addClass(o,"closing"),setTimeout(()=>{o.remove()},300)}),o.querySelector(".bd-backdrop").addEventListener("click",()=>{we.addClass(o,"closing"),setTimeout(()=>{o.remove()},300)}),we.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=x.findByProps("push","update","pop","popWithKey"),n=x.findByProps("fixed","improved"),s=x.findByDisplayName("Text"),r=x.findByProps("Child"),o=x.findByProps("Tags","default"),i=x.find(e=>e.defaultProps&&0==e.defaultProps.selectable),l=x.findByProps("defaultRules","parse");if(!(i&&t&&n&&s&&r&&o&&l))return;const{image:c="https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5",description:d="",changes:u=[],title:h="BandagedBD",subtitle:p="v"+a,footer:m}=e,g=Se.React.createElement,f=[g("img",{src:c})];d&&f.push(g("p",null,l.parse(d)));for(let e=0;e<u.length;e++){const t=u[e],s=n[t.type]?n[t.type]:n.added,r=0==e?n.marginTop:"";f.push(g("h1",{className:`${s} ${r}`},t.title));const o=g("ul",null,t.items.map(e=>g("li",null,l.parse(e))));f.push(o)}const b=function(){return g(r.Child,{grow:1,shrink:1},g(o.default,{tag:o.Tags.H4},h),g(s,{size:s.Sizes.SMALL,color:s.Colors.STANDARD,className:n.date},p))},y=()=>{const e=x.find(e=>"Anchor"==e.displayName),n=x.findByProps("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},o=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),Se.joinBD2()},i=e?g(e,{onClick:o},"Join our Discord Server."):g("a",{className:`${n.anchor} ${n.anchorUnderlineOnHover}`,onClick:o},"Join our Discord Server."),a=g(s,{size:s.Sizes.SMALL,color:s.Colors.STANDARD},"Need support? ",i);return g(r.Child,{grow:1,shrink:1},m||a)};return t.push((function(e){return g(i,Object.assign({className:n.container,selectable:!0,onScroll:e=>e,onClose:e=>e,renderHeader:b,renderFooter:y,children:f},e))}))}static showConfirmationModal(e,t,n={}){const s=x.findByProps("openModal","updateModal"),r=x.findByDisplayName("Markdown"),o=x.findByDisplayName("ConfirmModal");if(!s||!o||!r)return xe.alert(e,t);const i=()=>{},{onConfirm:a=i,onCancel:l=i,confirmText:c="Okay",cancelText:d="Cancel",danger:u=!1,key:h}=n;return Array.isArray(t)||(t=[t]),t=t.map(e=>"string"==typeof e?Se.React.createElement(r,null,e):e),s.openModal(n=>Se.React.createElement(o,Object.assign({header:e,red:u,confirmText:c,cancelText:d,onConfirm:a,onCancel:l},n),t),{modalKey:h})}static get removeDa(){return ke}}function ke(e){return e?e.split(" ").filter(e=>!e.startsWith("da-")).join(" "):e}xe.showToast=xe.suppressErrors(xe.showToast,"Could not show toast."),window.Lightcord.BetterDiscord.Utils=xe;class De{constructor(){this.panels={}}register(e,t){this.panels[e]=t}getComponent(e,t){return this.panels[e](t)}get items(){return[{text:"BetterDiscord Settings",id:"core"},{text:"Plugins",id:"plugins"},{text:"Themes",id:"themes"},{text:"Custom CSS",id:"customcss"}]}get LCitems(){return[{text:"Lightcord Settings",id:"lightcord"},{text:"RichPresence",id:"status"},{text:"Account Info",id:"accountinfo"}]}get LCDevItems(){let e=[];return window.Lightcord.Settings.devMode?(e.push({section:"DIVIDER"},{section:"HEADER",label:"Lightcord Api"},{text:"Components Preview",id:"lcapipreview"}),e):e}render(e){return[{section:"HEADER",label:"Lightcord"},...this.LCitems.map(t=>({section:t.id,label:t.text,element:this.getComponent(t.id,e)})),...this.LCDevItems.map(t=>t.section?t:{section:t.id,label:t.text,element:this.getComponent(t.id,e)}),{section:"DIVIDER"},{section:"CUSTOM",element:this.getComponent("BDChangelogTitle")},...this.items.map(t=>({section:t.id,label:t.text,element:this.getComponent(t.id,e)})),{section:"DIVIDER"}]}}var Me=new class{injectColoredText(){this.cancelColoredText||Se.MessageComponent&&(this.cancelColoredText=xe.monkeyPatch(Se.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=u["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","")})}},Be=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(!u["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=xe.monkeyPatch(Se.TimeFormatter,"calendarFormat",{after:t}),s=xe.monkeyPatch(Se.TimeFormatter,"dateFormat",{after:t});this.cancel24Hour=()=>{n(),s()}}remove24Hour(){this.cancel24Hour&&this.cancel24Hour()}};class Ne extends Se.reactComponent{constructor(e){super(e)}render(){return Se.react.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12",style:{width:"18px",height:"18px"}},Se.react.createElement("g",{className:"background",fill:"none",fillRule:"evenodd"},Se.react.createElement("path",{d:"M0 0h12v12H0"}),Se.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 Le extends Se.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 Se.react.createElement("div",{className:"tools-container "+e.toolsContainer},Se.react.createElement("div",{className:"tools "+e.tools},Se.react.createElement("div",{className:t.container},Se.react.createElement("div",{className:"btn-close "+t.closeButton,onClick:this.onClick},Se.react.createElement(Ne,null)),Se.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 Pe extends Se.reactComponent{constructor(e){super(e)}render(){return Se.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.text)}}class Ae extends Se.reactComponent{constructor(e){super(e)}render(){return Se.react.createElement("div",{className:"ui-tab-bar-separator margin-top-8 margin-bottom-8"})}}class Te extends Se.reactComponent{constructor(e){super(e)}render(){return Se.react.createElement("div",{className:"ui-tab-bar-header"},this.props.text,this.props.button)}}class Re extends Se.reactComponent{constructor(e){super(e),this.setInitialState(),this.onClick=this.onClick.bind(this)}setInitialState(){this.state={selected:this.props.selected||!1}}render(){return Se.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)}}class Oe extends Se.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 Se.react.createElement("div",{className:`${t.card} ${t.cardPrimary} ${BDModules.get(e=>e.marginBottom8)[0].marginBottom8} bd-server-card${e.pinned?" bd-server-card-pinned":""}`},Se.react.createElement("img",{ref:"img",className:"bd-server-image",src:e.iconUrl,onError:this.handleError.bind(this),draggable:!1}),Se.react.createElement("div",{className:n.flexChild+" bd-server-content"},Se.react.createElement("div",{className:n.horizontal+" "+s.noWrap+" bd-server-header"},Se.react.createElement("h5",{className:"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-name"},e.name),Se.react.createElement("h5",{className:"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-member-count"},e.members," Members")),Se.react.createElement("div",{className:n.horizontal+" "+s.noWrap},Se.react.createElement("div",{className:"scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d scrollerFade-1Ijw5y bd-server-description-container"},Se.react.createElement("div",{className:"scroller-2FKFPG scroller bd-server-description"},e.description))),Se.react.createElement("div",{className:"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-footer"},Se.react.createElement("div",{className:"flexChild-faoVW3 bd-server-tags",style:{flex:"1 1 auto"}},e.categories.join(", ")),this.state.joined&&Se.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"}},Se.react.createElement("div",{className:"ui-button-contents"},"Joined")),e.error&&Se.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"}},Se.react.createElement("div",{className:"ui-button-contents"},"Error")),!e.error&&!this.state.joined&&Se.react.createElement("button",{type:"button",className:"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN",style:{minHeight:"12px",marginTop:"4px"},onClick:()=>{this.join()}},Se.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 je extends Se.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 Se.react.createElement("div",{key:"scrollerwrap",className:n},Se.react.createElement("div",{key:"scroller",ref:"scroller",className:s},r))}}const _e=je.prototype.render;Object.defineProperty(je.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:()=>_e});class $e extends Se.reactComponent{constructor(e){super(e)}render(){const{sidebar:e,content:t,tools:n}=this.props.children;return Se.react.createElement("div",{className:"standardSidebarView-3F1I7i ui-standard-sidebar-view"},Se.react.createElement("div",{className:"sidebarRegion-VFTUkN sidebar-region"},Se.react.createElement(je,{key:"sidebarScroller",ref:"sidebarScroller",sidebar:!0,fade:e.fade||!0,dark:e.dark||!0},e.component)),Se.react.createElement("div",{className:"contentRegion-3nDuYy content-region"},Se.react.createElement("div",{className:"contentTransitionWrap-3hqOEW content-transition-wrap"},Se.react.createElement("div",{className:"scrollerWrap-2lJEkd firefoxFixScrollFlex-cnI2ix contentRegionScrollerWrap-3YZXdm content-region-scroller-wrap scrollerThemed-2oenus themeGhost-28MSn0 scrollerTrack-1ZIpsv"},Se.react.createElement("div",{className:"scroller-2FKFPG firefoxFixScrollFlex-cnI2ix contentRegionScroller-26nc1e content-region-scroller scroller",ref:"contentScroller"},Se.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},t.component),n.component)))))}}class Ie extends Se.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=Se.WebpackModules.findByUniqueProperties(["getGuilds"]),this.AvatarDefaults=Se.WebpackModules.findByUniqueProperties(["getUserAvatarURL","DEFAULT_AVATARS"]),this.InviteActions=Se.WebpackModules.findByUniqueProperties(["acceptInvite"]),this.SortedGuildStore=Se.WebpackModules.findByUniqueProperties(["getSortedGuilds"])}componentDidMount(){this.checkConnection()}setInitialState(){this.state={selectedCategory:-1,title:"Loading...",loading:!0,servers:[],next:null,connection:{state:0,user:null}}}close(){Se.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 i=`Showing 1-${o} of ${s.total} results in ${n.categoryButtons[n.state.selectedCategory]}`;n.state.term&&(i+=" for "+n.state.term),n.setState({loading:!1,title:i,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[Se.react.createElement(Oe,{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())]}),Se.react.createElement(Oe,{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 Se.react.createElement($e,{ref:"sbv"},this.component)}get component(){return{sidebar:{component:this.sidebar},content:{component:this.content},tools:{component:Se.react.createElement(Le,{key:"pt",ref:"tools",onClick:this.close})}}}get sidebar(){return Se.react.createElement("div",{className:"sidebar",key:"ps"},Se.react.createElement("div",{className:"ui-tab-bar SIDE"},Se.react.createElement("div",{className:"ui-tab-bar-header",style:{fontSize:"16px"}},"Public Servers"),Se.react.createElement(Ae,null),this.searchInput,Se.react.createElement(Ae,null),Se.react.createElement(Te,{text:"Categories"}),this.categoryButtons.map((e,t)=>Se.react.createElement(Re,{id:t,onClick:this.changeCategory,key:t,text:e,selected:this.state.selectedCategory===t})),Se.react.createElement(Ae,null),this.footer,this.connection))}get searchInput(){return Se.react.createElement("div",{className:"ui-form-item"},Se.react.createElement("div",{className:"ui-text-input flex-vertical",style:{width:"172px",marginLeft:"10px"}},Se.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[Se.react.createElement("div",{ref:"content",key:"pc",className:s.contentColumn+" "+s.contentColumn+" content-column default"},Se.react.createElement(Pe,{text:e.state.title}),e.bdServer,e.state.servers.map(s=>Se.react.createElement(Oe,{key:s.identifier,server:s,join:e.join,guildList:t,fallback:n[Math.floor(5*Math.random())]})),e.state.next&&Se.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"}},Se.react.createElement("div",{className:"ui-button-contents"},e.state.loading?"Loading":"Load More")),e.state.servers.length>0&&Se.react.createElement(Pe,{text:e.state.title}))]}get notConnected(){let e=BDModules.get(e=>e.contentColumnDefault)[0];return[Se.react.createElement("div",{key:"ncc",ref:"content",className:e.contentColumn+" "+e.contentColumn+" content-column default"},Se.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},"Not connected to discordservers.com!",Se.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"}},Se.react.createElement("div",{className:"ui-button-contents"},"Connect"))),this.bdServer)]}get footer(){return Se.react.createElement("div",{className:"ui-tab-bar-header"},Se.react.createElement("a",{href:"https://discordservers.com",target:"_blank"},"Discordservers.com"))}get connection(){const{connection:e}=this.state;return 2!==e.state?Se.react.createElement("span",null):Se.react.createElement("span",null,Se.react.createElement(Ae,null),Se.react.createElement("span",{style:{color:"#b9bbbe",fontSize:"10px",marginLeft:"10px"}},"Connected as: ",`${e.user.username}#${e.user.discriminator}`),Se.react.createElement("div",{style:{padding:"5px 10px 0 10px"}},Se.react.createElement("button",{style:{width:"100%",minHeight:"20px"},type:"button",className:"ui-button filled brand small grow"},Se.react.createElement("div",{className:"ui-button-contents",onClick:this.connect},"Reconnect"))))}}class We extends Se.reactComponent{constructor(e){super(e),this.keyupListener=this.keyupListener.bind(this)}keyupListener(e){27===e.which&&Se.reactDom.unmountComponentAtNode(this.refs.root.parentNode)}componentDidMount(){window.addEventListener("keyup",this.keyupListener);const e=we.query("#"+this.props.id);we.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=we.query("#"+this.props.id);we.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=we.query(".publicServersOpen");t.classList.remove("publicServersOpen"),we.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=we.query('[class*="layer-"]');e.classList.add("publicServersOpen"),we.animate({duration:200,update:function(t){e.style.transform=`scale(${.07*(1-t)+.93}) translateZ(0px)`,e.style.opacity=1-t}})}render(){return Se.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 Fe=new class{constructor(){this._appendButton=this._appendButton.bind(this),window.Lightcord.BetterDiscord.V2_PublicServers=this}get component(){return Se.react.createElement(We,{rootId:"pubslayerroot",id:"pubslayer"},Se.react.createElement(Ie,{rootId:"pubslayerroot"}))}get root(){const e=document.getElementById("pubslayerroot");return e||(this.injectRoot()?this.root:null)}injectRoot(){let[e]=[xe.removeDa(BDModules.get(e=>e.layers&&e.layer)[0].layers)];const t=we.query(".layers, ."+e);return!!t&&(t.append(we.createElement("<div id='pubslayerroot'>")),!0)}render(){const e=this.root;e?Se.reactDom.render(this.component,e):console.log("FAILED TO LOCATE ROOT: .layers")}get button(){const e=we.createElement(`<div id="bd-pub-li" class="${Se.guildClasses.listItem}">`);u["bda-gs-1"]||(e.style.display="none");const t=we.createElement(`<div id="bd-pub-button" class="${"wrapper-25eVIn "+Se.guildClasses.circleButtonMask}">public</div>`);return t.addEventListener("click",()=>{this.render()}),e.append(t),e}_appendButton(){let[e]=[xe.removeDa(BDModules.get(e=>e.downloadProgress&&e.tutorialContainer)[0].tutorialContainer)];if(we.query("#bd-pub-li"))return;const t=we.query(`div.${e} > div`);we.after(t,this.button)}addButton(){if(this.guildPatch)return;const e=x.find(e=>e.default&&"NavigableGuilds"==e.default.displayName),t=x.findByDisplayName("Guilds");e||t||xe.warn("PublicServer","Can't find GuildList component"),this.guildPatch=xe.monkeyPatch(e||t.prototype,e?"default":"render",{after:this._appendButton}),this._appendButton()}removeButton(){this.guildPatch(),delete this.guildPatch;const e=we.query("#bd-pub-li");e&&e.remove()}};var ze=new class{start(){we.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(){we.removeStyle("VoiceMode")}};const He=new RegExp("^(?!da-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$");var Ue=new class{constructor(){window.Lightcord.BetterDiscord.ClassNormalizer=this}stop(){this.hasPatched&&(this.unpatchClassModules(x.findAll(this.moduleFilter.bind(this))),this.revertElement(document.querySelector("#app-mount")),this.hasPatched=!1)}start(){this.hasPatched||(this.patchClassModules(x.findAll(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(!He.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(He);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(!He.test(t[n]))continue;const s=t[n].match(He)[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)}}},Ge=new class{constructor(){this.debugListener=this.debugListener.bind(this),this.copySelectorListener=this.copySelectorListener.bind(this)}start(){this.startDebugListener(),u["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=we.query("."+xe.removeDa(s.menu));if(!r){const t=we.query("#app-mount > ."+xe.removeDa(n.layerContainer)),o=we.createElement(`<div class="${n.layer}">`);r=we.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 i=BDModules.get(e=>e.scrollerWrap)[0],a=we.createElement(`<div class="${i.scrollerWrap} ${i.scrollerThemed} ${i.themeGhostHairline}"></div>`),l=we.createElement(`<div class="${BDModules.get(e=>e.scroller)[0].scroller} ${s.scroller}"></div>`);a.append(l),r.append(a);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 o=r.parentElement,i=r.childNodes[0].childNodes[0],a=we.createElement('<div role="group"></div>'),l=we.createElement(`<div class="${s.item} ${s.labelContainer} ${s.colorDefault}" role="menuitem" id="bd-copy-selector-item-cm"></div>`);if(l.append(we.createElement(`<div class="${s.label}">Copy Selector</div>`)),l.addEventListener("click",()=>{Se.NativeModule.copy(t),o.style.display="none"}),l.addEventListener("mouseover",e=>{let t=we.queryAll("div[role=menuitem]."+xe.removeDa(s.focused));t&&t.forEach(e=>e.classList.remove(s.focused)),l.classList.add(s.focused)}),l.addEventListener("mouseout",e=>{l.classList.remove(s.focused)}),a.append(l),i.childNodes.length){const e=we.createElement(`<div role="separator" class="${s.separator}"></div>`);i.append(e)}i.append(a),o.clientHeight<o.scrollHeight&&(console.log("overflowing "+o.style.top),o.style.top=o.style.top-a.clientHeight+"px",console.log("overflowing"+o.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)}};const qe=Se.React;class Ve extends qe.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 qe.createElement(Lightcord.Api.Components.inputs.Switch,{onChange:this.onChange,value:this.state.checked})}}let Je=[];function Ze(e){let t=Je.find(t=>t.startsWith(e+"-"));return t||(t=BDModules.get(t=>t[e])[0][e],Je.push(t),t)}class Ye extends Se.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(){let{text:e,info:t}=this.props.data;return Je.find(e=>e.startsWith("beta-"))||Je.push(BDModules.get(e=>e.beta&&!e.container&&!e.userSettingsVoice)[0].beta),this.props.data.experimental&&(t=[t,React.createElement("sup",{className:Ze("beta")},"(EXPERIMENTAL)")]),Se.react.createElement("div",{className:"ui-flex flex-vertical flex-justify-start flex-align-stretch flex-nowrap ui-switch-item"},Se.react.createElement("div",{className:"ui-flex flex-horizontal flex-justify-start flex-align-stretch flex-nowrap"},Se.react.createElement("h3",{className:"ui-form-title h3 margin-reset margin-reset ui-flex-child"},e),Se.react.createElement(Ve,{onChange:this.onChange,checked:this.props.checked})),Se.react.createElement("div",{className:"ui-form-text style-description margin-top-4",style:{flex:"1 1 auto"}},t))}}class Ke extends Se.reactComponent{constructor(e){super(e)}render(){const{title:e,settings:t,button:n}=this.props,s=n?Se.react.createElement("button",{key:"title-button",className:"bd-pfbtn",onClick:n.onClick},n.title):null;return[Se.react.createElement(Pe,{text:e}),s,t.map(e=>Se.react.createElement(Ye,{id:e.id,key:e.id,data:e,checked:u[e.id],onChange:(e,t)=>{this.props.onChange(e,t)}}))]}}let Xe=BDModules.get(e=>e.marginTop60)[0];class Qe extends React.Component{render(){return Xe||(Xe=BDModules.get(e=>e.marginTop60)[0]),React.createElement("div",{className:Xe.marginTop60})}}class et extends Se.reactComponent{constructor(e){super(e)}render(){return this.props.sections.map((e,t)=>[0!==t?Se.react.createElement(Qe,{}):null,Se.react.createElement(Ke,Object.assign({},e,{onChange:this.props.onChange}))])}}class tt extends Se.reactComponent{constructor(e){super(e),this.onClick=this.onClick.bind(this),this.setInitialState()}setInitialState(){this.state={checked:this.props.checked||!1}}render(){return Se.react.createElement("li",null,Se.react.createElement("div",{className:"checkbox "+BDModules.get(e=>e.checkboxElement)[0].checkbox,onClick:this.onClick},Se.react.createElement("div",{className:"checkbox-inner "+BDModules.get(e=>e.checkboxInner)[0].checkboxInner},Se.react.createElement("input",{className:BDModules.get(e=>e.checkboxElement)[0].checkboxElement,checked:this.state.checked,onChange:()=>{},type:"checkbox"}),Se.react.createElement("span",null)),Se.react.createElement("span",null,this.props.text)))}onClick(){this.props.onChange(this.props.id,!this.state.checked),this.setState({checked:!this.state.checked})}}class nt extends Se.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(){we.addClass(we.query("#app-mount"),"bd-detached-editor"),Se.editorDetached=!0,this.editor=ace.edit("bd-customcss-editor-detached"),this.editor.setTheme("ace/theme/discord"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{u["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){we.removeClass(we.query("#app-mount"),"bd-detached-editor"),Se.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=L.getBDData("bdcustomcss");let t="";return e&&""!==e&&(t=atob(e)),t}get root(){const e=we.query("#bd-customcss-detach-container");return e||(this.injectRoot()?this.detachedRoot:null)}injectRoot(){const e=we.query(".app, ."+xe.removeDa(BDModules.get(e=>e.app&&e.layers)[0].app));return!!e&&(we.insertAfter(we.createElement('<div id="bd-customcss-detach-container">'),e),!0)}render(){const e=this;return Se.react.createElement("div",{className:"bd-detached-css-editor",id:"bd-customcss-detach-editor"},Se.react.createElement("div",{id:"bd-customcss-innerpane"},Se.react.createElement("div",{className:"editor-wrapper"},Se.react.createElement("div",{id:"bd-customcss-editor-detached",className:"editor",ref:"editor"},e.css)),Se.react.createElement("div",{id:"bd-customcss-attach-controls"},Se.react.createElement("ul",{className:"checkbox-group"},Se.react.createElement(tt,{id:"live-update",text:"Live Update",onChange:e.onChange,checked:u["bda-css-0"]})),Se.react.createElement("div",{id:"bd-customcss-detach-controls-button"},Se.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),Se.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),Se.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("attach")}},"Attach"),Se.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on attach")))))}onChange(e,t){switch(e){case"live-update":u["bda-css-0"]=t,Zn.saveSettings()}}onClick(e){const t=this;switch(e){case"attach":we.query("#editor-detached")&&t.props.attach(),Se.reactDom.unmountComponentAtNode(t.root),t.root.remove();break;case"update":t.updateCss();break;case"save":t.saveCss()}}updateCss(){we.removeStyle("customcss"),we.addStyle("customcss",this.editor.session.getValue())}saveCss(){L.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class st extends Se.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=Se.react.createElement(nt,{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||Se.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/discord"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{u["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&Se.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=L.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&&Se.react.createElement("div",{id:"editor-detached"},Se.react.createElement(Pe,{text:"Custom CSS Editor"}),Se.react.createElement("h3",null,"Editor Detached"),Se.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&Se.react.createElement("div",null,Se.react.createElement(Pe,{text:"Custom CSS Editor"}),Se.react.createElement("div",{className:"editor-wrapper"},Se.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),Se.react.createElement("div",{id:"bd-customcss-attach-controls"},Se.react.createElement("ul",{className:"checkbox-group"},Se.react.createElement(tt,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:u["bda-css-0"]})),Se.react.createElement("div",{id:"bd-customcss-detach-controls-button"},Se.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),Se.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),Se.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),Se.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),Se.react.createElement("div",{className:"help-text"},"Press ",Se.react.createElement("code",{className:"inline"},"ctrl"),"+",Se.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":u["bda-css-0"]=t,Zn.saveSettings()}}updateCss(){we.removeStyle("customcss"),we.addStyle("customcss",this.editor.session.getValue())}saveCss(){L.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?Se.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=we.query("#bd-customcss-detach-container");return e||(this.injectDetachedRoot()?this.detachedRoot:null)}injectDetachedRoot(){const e=we.query(".app, ."+xe.removeDa(BDModules.get(e=>e.app&&e.layers)[0].app));return!!e&&(we.insertAfter(we.createElement('<div id="bd-customcss-detach-container">'),e),!0)}attach(){this.setState({detached:!1})}}class rt extends Se.reactComponent{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?Se.react.createElement("div",{className:"react-error"},"Component Error"):this.props.children}}const ot=rt.prototype.render;Object.defineProperty(rt.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:()=>ot});class it extends Se.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){let e=this.props.title?Se.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title):null;return[e,this.props.children]}}class at extends Se.reactComponent{constructor(e){super(e)}render(){return Se.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"}},Se.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"}),Se.react.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}const lt=Se.React;class ct extends lt.Component{render(){const e=this.props.size||"24px";return lt.createElement("svg",{className:this.props.className||"",viewBox:"0 0 24 24",fill:"var(--text-normal)",style:{width:e,height:e},onClick:this.props.onClick},lt.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"}),lt.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}}const dt=Se.React;class ut extends dt.Component{render(){const e=this.props.size||"24px";return dt.createElement("svg",{className:this.props.className||"",fill:"var(--text-normal)",viewBox:"0 0 24 24",style:{width:e,height:e},onClick:this.props.onClick},dt.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),dt.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"}),dt.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}))}}const ht=Se.React,pt=Se.anchorClasses;class mt extends Se.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),u["fork-ps-3"]&&setImmediate(()=>{const e=this.refs.cardNode,t=e.closest('div[class*="contentRegionScroller-"]');if(!((e,t)=>{if(!e)return console.error(new Error("Container is undefined.")),!1;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=we.offset(e),s=we.offset(t),r=t.scrollTop,o=n.top-s.top+t.scrollTop-30;we.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){xe.err("Plugins","Unable to get settings panel for "+this.name+".",e)}return Se.react.createElement("div",{className:"bd-card bd-addon-card settings-open ui-switch-item",ref:"cardNode"},Se.react.createElement("div",{style:{float:"right",cursor:"pointer"},onClick:()=>{this.refs.settingspanel.innerHTML="",this.setState({settings:!1})}},Se.react.createElement(Ne,null)),"object"==typeof this.settingsPanel&&Se.react.createElement("div",{id:"plugin-settings-"+this.name,className:"plugin-settings",ref:"settingspanel"}),"object"!=typeof this.settingsPanel&&Se.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]=ht.createElement("span",{className:"name bda-name"},e));const o=s.findIndex(e=>"{{version}}"==e);r&&(s[o]=ht.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+=` ${pt.anchor} ${pt.anchorUnderlineOnHover}`,e.target="_blank",n.link&&(e.href=n.link),n.id&&(e.onClick=()=>{Se.LayerStack.popLayer(),Se.openDM(n.id)})),s[i]=ht.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()}),Se.react.createElement("a",n,e)}makeButton(e,t,n){return ht.createElement(V,{color:"black",side:"top",text:e},ht.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]),Se.LayerStack.popLayer(),Se.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)&&Se.react.createElement("div",{className:"bd-card-footer bda-footer"},Se.react.createElement("span",{className:"bd-addon-links bda-links"},...e.map((t,n)=>n<e.length-1?[t," | "]:t).flat()),this.hasSettings&&Se.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 u["fork-ps-6"]&&(this.isScanning?(!0===this.state.isTrusted&&(n.borderColor="#4087ed"),"suspect"===this.state.isTrusted&&(n.borderColor="rgb(240, 71, 71)")):(this.isScanning=!0,te(Object(Z.resolve)(this.props.addon.filename.endsWith(".plugin.js")?ve.pluginsFolder:ve.themesFolder,this.props.addon.filename),e=>{this.unmounted||this.setState({isTrusted:!e.suspect||"suspect"})},()=>{}))),Se.react.createElement("div",{className:"bd-card bd-addon-card settings-closed ui-switch-item",style:n},Se.react.createElement("div",{className:"bd-addon-header bda-header"},Se.react.createElement("div",{className:"bd-card-title bda-header-title"},this.buildTitle(this.name,this.version,{name:this.author,id:e,link:t})),Se.react.createElement("div",{className:"bd-addon-controls bda-controls"},this.props.edit&&this.makeButton("Edit",ht.createElement(ct,{className:"bd-icon"}),this.edit),this.props.remove&&this.makeButton("Delete",ht.createElement(ut,{className:"bd-icon"}),this.delete),this.props.reload&&this.makeButton("Reload",ht.createElement(at,{className:"bd-icon"}),this.reload),ht.createElement(Ve,{onChange:this.onChange,checked:this.state.checked}))),Se.react.createElement("div",{className:"bd-scroller-wrap bda-description-wrap scroller-wrap fade"},Se.react.createElement("div",{className:"bd-scroller bd-addon-description bda-description scroller"},this.description)),this.footer)}}const gt=mt.prototype.render;Object.defineProperty(mt.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:()=>gt});const ft=Se.React;class bt extends ft.Component{render(){const e=this.props.size||"16px";return ft.createElement("svg",{className:this.props.className||"",fill:"var(--text-normal)",viewBox:"0 0 24 24",style:{width:e,height:e}},ft.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 yt=Se.React;class vt extends yt.Component{constructor(e){super(e),this.state={open:!1,value:this.props.value||this.props.options[0].value},this.dropdown=yt.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 yt.createElement("div",{className:"bd-select-options"},this.props.options.map(t=>yt.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 yt.createElement("div",{className:`bd-select${e}${t}`,onClick:this.showMenu,ref:this.dropdown},yt.createElement("div",{className:"bd-select-value"},this.selected.label),yt.createElement(bt,{className:"bd-select-arrow"}),this.state.open&&this.options)}}const wt=Se.React;class Ct extends wt.Component{render(){const e=this.props.size||"16px";return wt.createElement("svg",{className:this.props.className||"",fill:"var(--text-normal)",viewBox:"0 0 24 24",style:{width:e,height:e}},wt.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),wt.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 Et=Se.React;class St extends Et.Component{render(){return Et.createElement("div",{className:"bd-search-wrapper"},Et.createElement("input",{onChange:this.props.onChange,onKeyDown:this.props.onKeyDown,type:"text",className:"bd-search",placeholder:this.props.placeholder,maxLength:"50"}),Et.createElement(Ct,null))}}function xt(){return(xt=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 kt=x.findByDisplayName("Tooltip"),Dt=Se.react;class Mt extends Se.reactComponent{constructor(e){super(e),this.state={sort:"name",ascending:!0,query:""},this.isPlugins="plugins"==this.props.type,this.cookie=this.isPlugins?v:w,this.manager=this.isPlugins?R:Ee,this.sort=this.sort.bind(this),this.reverse=this.reverse.bind(this),this.search=this.search.bind(this),this.onAddonChanges=function(){this.forceUpdate()},this.onAddonChanges=this.onAddonChanges.bind(this)}componentDidMount(){const e=(this.isPlugins?"plugin":"theme")+"-";A.on(e+"loaded",this.onAddonChanges),A.on(e+"unloaded",this.onAddonChanges),A.on(e+"reloaded",this.onAddonChanges)}componentWillUnmount(){const e=(this.isPlugins?"plugin":"theme")+"-";A.off(e+"loaded",this.onAddonChanges),A.off(e+"unloaded",this.onAddonChanges),A.off(e+"reloaded",this.onAddonChanges)}openFolder(){const e=n(0).shell;(e.openPath||e.openItem)(this.isPlugins?ve.pluginsFolder:ve.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=>{Ds.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),edit:u["fork-ps-7"]?this.edit.bind(this):null,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(y):Object.values(b)}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(Dt.createElement(rt,null,Dt.createElement(mt,xt({},r,{reload:!u["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)}renderCheckUpdates(){return window.ZeresPluginLibrary&&window.PluginUpdates?"function"!=typeof window.PluginUpdates.checkAll?null:this.isPlugins?Dt.createElement(V,{text:"Checks for updates of plugins that support this feature. Right-click for a list."},Dt.createElement("span",{style:{marginLeft:"10px"}},Dt.createElement(Lightcord.Api.Components.inputs.Button,{color:"brand",look:"filled",size:"min",hoverColor:"default",onClick:()=>{try{xe.showToast("Plugin update check in progress.",{type:"info"}),window.PluginUpdates.checkAll().then(()=>{xe.showToast("Plugin update check complete.",{type:"success"})}).catch(e=>{console.error(e),xe.showToast("An error occured while checking update.",{type:"error"})})}catch(e){console.error(e),xe.showToast("An error occured while checking update.",{type:"error"})}},wrapper:!1,disabled:!1},"Check for Updates"))):null:null}render(){const e=Dt.createElement(kt,{color:"black",position:"top",text:"Reload List"},e=>Dt.createElement(at,xt({},e,{className:"bd-icon bd-reload bd-reload-header",size:"18px",onClick:async()=>{this.isPlugins?R.updatePluginList():Ee.updateThemeList(),this.forceUpdate()}}))),t=this.getAddons();return Dt.createElement(it,{title:`${this.props.type.toUpperCase()}${t.length}`},Dt.createElement("button",{key:"folder-button",className:"bd-button bd-pfbtn",onClick:this.openFolder.bind(this)},"Open ",this.isPlugins?"Plugin":"Theme"," Folder"),this.renderCheckUpdates(),!u["fork-ps-5"]&&e,Dt.createElement("div",{className:"bd-controls bd-addon-controls"},Dt.createElement(St,{onChange:this.search,placeholder:`Search ${this.props.type}...`}),Dt.createElement("div",{className:"bd-addon-dropdowns"},Dt.createElement("div",{className:"bd-select-wrapper"},Dt.createElement("label",{className:"bd-label"},"Sort by:"),Dt.createElement(vt,{options:this.sortOptions,onChange:this.sort,style:"transparent"})),Dt.createElement("div",{className:"bd-select-wrapper"},Dt.createElement("label",{className:"bd-label"},"Order:"),Dt.createElement(vt,{options:this.directions,onChange:this.reverse,style:"transparent"})))),Dt.createElement("div",{className:"bda-slist bd-addon-list"},t))}}const Bt=Mt.prototype.render;Object.defineProperty(Mt.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:()=>Bt});const Nt=BDModules.get(e=>e.Dispatcher&&e.default&&e.default.dispatch)[0].default,Lt=BDModules.get(e=>e.ActionTypes)[0].ActionTypes,Pt=process.pid;var At=new class{constructor(){this.enabled=!1,this.game=h}get formatedGame(){if(!this.game)return null;if(!1===this.enabled)return null;return{name:this.game.name||p.name,application_id:this.game.application_id||p.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(){Nt.dispatch({type:Lt.LOCAL_ACTIVITY_UPDATE,socketId:"lightcord-spoof-socket",pid:Pt,activity:this.formatedGame})}enable(){this.enabled||(this.enabled=!0,console.log("Enabling custom RichPresence"),this.set(h||Object.create(p)),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 Tt=Se.React;let Rt;class Ot extends Tt.Component{constructor(e){super(e),this.state={data:L.getSettingGroup("rpc")||p,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=jt.find(t=>t.id===e.props.id);this.setState({data:Object.assign(h,this.state.data,{[n.id]:t||null}),assets:this.state.assets}),"application_id"===e.props.id&&this.fetchAssets(),L.setSettingGroup("rpc",h),this.preview.forceUpdate(),At.set(h)}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,At.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(){let[e]=this.modules;return[Tt.createElement(Ke,{title:"RichPresence Settings",settings:this.props.settings,onChange:this.props.onChange}),Tt.createElement(Qe,null),Tt.createElement(Pe,{text:"RichPresence"}),Tt.createElement("div",null,this.optionsComponents),Tt.createElement("div",null,Tt.createElement(Qe,null),Tt.createElement(Pe,{text:"Preview"}),Tt.createElement(Qt,{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:()=>{_.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=jt.map(e=>{if("text"===e.type)return Tt.createElement(Wt,{setting:e,manager:this,id:e.id});if("number"===e.type){return[Tt.createElement(Ft,{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 jt=[{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 _t,$t,It;class Wt extends Tt.PureComponent{get modules(){return _t&&_t[0]?_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]]}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,i,a,l]=this.modules;return Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${i.flexChild}`},Tt.createElement("h5",{className:r.colorStandard+" "+o.size14+" "+s.h5+" "+s.defaultMarginh5},e.title),this.input),Tt.createElement(Xt,null))}}class Ft 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,i]=this.modules;return Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${i.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(Xt,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 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]])}render(){let e=this.props.setting,[t,n,s,r,o,i]=this.modules,a=this.props.manager.state.assets.map(e=>({value:"asset-"+e.id,label:e.name}));return a.unshift({value:"none",label:"No assets"}),Tt.createElement("div",{className:t.row+" "+n.marginBottom20},Tt.createElement("div",{className:`${t.item} ${i.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:a,onChange:this.onChange.bind(this)})),Tt.createElement(Xt,null))}}let Ht,Ut,Gt,qt,Vt,Jt,Zt,Yt,Kt=[];class Xt extends Tt.PureComponent{get modules(){return Kt&&Kt[0]?Kt:Kt=[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 Qt 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(){return Tt.createElement("div",{className:"lc-tabWrapper"},Tt.createElement("div",{className:"lc-tabnav",style:{flex:"0 1 auto"}},Tt.createElement(en,{preview:this,title:"Full Profile",id:"profile"}),Tt.createElement(en,{preview:this,title:"User Popout",id:"popout"})),Tt.createElement(tn,{preview:this.preview,state:this.state.rpc,props:{preview:this},key:this.state.active}))}isActive(e){return this.state.active===e}get preview(){return"profile"===this.state.active?sn:nn}}class en 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 tn extends Tt.Component{componentDidCatch(e,t){console.error(e,t),this.setState({error:!0})}render(){if(this.state||(this.state={error:!1}),this.state.error)return Ht=Ht||Se.WebpackModules.find(e=>e.emptyStateImage&&e.emptyState),Ht?Tt.createElement("div",{style:{margin:"20px"}},Tt.createElement("div",{style:{backgroundColor:"var(--background-primary)",padding:"30px 30px",borderRadius:"8px"},className:"lc-tab-box-shadow "+Ht.emptyState},Tt.createElement("div",{className:Ht.emptyStateImage,style:{marginTop:"20px"}}),Tt.createElement("div",{className:Ht.emptyStateHeader},"An error occured"),Tt.createElement("p",{className:Ht.emptyStateSubtext},"Please check the console for more informations. Join our ­",Tt.createElement("a",{className:`${Se.anchorClasses.anchor} ${Se.anchorClasses.anchorUnderlineOnHover}`,role:"button",tabindex:0,onClick:()=>{Se.joinLC()}},"support server"),"­ for help."))):(xe.showToast("An error occured. Please check the console for more informations."),null);try{const e=new this.props.preview(this.props.props);return e.setState(this.props.state),e.render()}catch(e){return console.error(e),this.state.error=!0,this.render()}}}class nn extends Tt.Component{get modules(){return Ut||(Ut=[Se.WebpackModules.find(e=>e.default&&"FluxContainer(ForwardRef(SubscribeGuildMembersContainer(UserPopout)))"===e.default.displayName),Se.WebpackModules.find(e=>e.default&&e.default.getCurrentUser)])}render(){let[e,t]=this.modules;const n=t.default.getCurrentUser();if(!Gt){if(!e)throw new Error("Couldn't find the UserPopout component.");const t=new e.default({userId:n.id,guildId:null,channelId:null,disableUserProfileLink:!0}).render();qt=t.props;const s=t.type.render(qt,null),r=new s.type(s.props).render();Gt=r.type}if(!Gt)throw new Error("Couldn't find the UserPopoutComponent component.");let s=Object.assign({},p,this.props.preview.props.settings.state.data);const r=function(){if(!this.game)return null;return{name:this.game.name||p.name,application_id:this.game.application_id||p.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,type:0}}.call({game:s});qt=new e.default({userId:n.id,guildId:null,channelId:null,disableUserProfileLink:!0}).render().props;const o=new Gt(Object.assign({},qt,{activity:r})).render().props.children,i=Tt.createElement("div",window.Lightcord.Api._.excludeProperties(o.props,["onClick","onContextMenu"]));return Tt.createElement("div",{className:"lc-userPopout lc-tab-box-shadow"},i)}}class sn extends Tt.Component{get modules(){return Vt||(Vt=[Se.WebpackModules.find(e=>e.default&&"UserProfile"===e.default.displayName),Se.WebpackModules.find(e=>e.default&&e.default.getCurrentUser)])}render(){let[e,t]=this.modules;const n=t.default.getCurrentUser();if(!Jt){const t=new e.default({user:n}).render();Yt=t.type;const s=new t.type(t.props).render(),r=s.type.render(s.props,null),o=new r.type(r.props).render();Jt=o.type}if(!Jt)throw new Error("Couldn't find the UserProfileComponent component.");let s=Object.assign({},p,this.props.preview.props.settings.state.data);const r=function(){if(!this.game)return null;return{name:this.game.name||p.name,application_id:this.game.application_id||p.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,type:0}}.call({game:s});Zt=new Yt({user:n,close:()=>{}}).render().props;const o=new Jt(Object.assign({},Zt,{activity:r})).render().props.children;return o.props.style={width:"auto"},Tt.createElement("div",{className:"lc-tab lc-tab-box-shadow"},o)}}const rn=Se.React;let on=BDModules.get(e=>e.defaultMarginh5)[0],an=BDModules.get(e=>e.colorStandard)[0],ln=BDModules.get(e=>e.size32)[0],cn=BDModules.get(e=>e.scrollbarGhostHairline)[0];const dn=BDModules.get(e=>e.default&&e.default.getGuilds)[0].default,un=BDModules.get(e=>e.default&&e.default.getRelationships)[0].default,hn=BDModules.get(e=>e.default&&e.default.getSessions)[0].default,pn=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0].default;class mn extends rn.Component{constructor(e){super(e)}render(){return on||(on=BDModules.get(e=>e.defaultMarginh5)[0]),an||(an=BDModules.get(e=>e.colorStandard)[0]),ln||(ln=BDModules.get(e=>e.size32)[0]),[rn.createElement(Pe,{text:"Account Infos"}),rn.createElement("div",null,rn.createElement("h5",{className:an.colorStandard+" "+ln.size14+" "+on.h5+" "+on.defaultMarginh5},"Profile"),rn.createElement(yn,{content:this.getProfileValue(),language:"diff"}),rn.createElement("h5",{className:an.colorStandard+" "+ln.size14+" "+on.h5+" "+on.defaultMarginh5},"Statistics"),rn.createElement(yn,{content:this.getStatistics(),language:"diff"}),rn.createElement("h5",{className:an.colorStandard+" "+ln.size14+" "+on.h5+" "+on.defaultMarginh5},"Connected Sessions"),rn.createElement(yn,{content:this.getSessionValue(),language:"diff"})),rn.createElement("div",{className:BDModules.get(e=>e.marginBottom20)[0].marginBottom20})]}getSessionValue(){const e=hn.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+ Activities: ${e.activities.length}`).join("\n"+"-".repeat(38)+"\n")}getProfileValue(){const e=pn.getCurrentUser(),t=e.createdAt;let n=e.avatarURL;return e.avatar&&e.avatar.startsWith("a_")&&(n=e.getAvatarURL("gif")),n.startsWith("/")&&(n="https://discord.com"+n),n.endsWith("?size=128")&&(n=n.replace("?size=128","?size=4096")),`+ Username: ${e.username}\n+ Discriminator: ${e.discriminator}\n+ Tag: ${e.tag}\n+ ID: ${e.id}\n+ Avatar: ${e.avatar}\n+ Avatar URL: ${n}\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(dn.getGuilds()),t=Object.keys(un.getRelationships()),n=t.filter(e=>un.isFriend(e)),s=t.filter(e=>un.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 gn=BDModules.get(e=>e.highlight)[0],fn=BDModules.get(e=>e.markup)[0],bn=BDModules.get(e=>e.messageContent)[0];class yn extends rn.Component{render(){return fn||(fn=BDModules.get(e=>e.markup)[0]),bn||(bn=BDModules.get(e=>e.messageContent)[0]),cn||(cn=BDModules.get(e=>e.scrollbarGhostHairline)[0]),gn||(gn=BDModules.get(e=>e.highlight)[0]),rn.createElement("div",{class:`${fn.markup} ${bn.messageContent}`},rn.createElement("pre",null,rn.createElement("code",{class:cn.scrollbarGhostHairline+" hljs",dangerouslySetInnerHTML:{__html:gn.highlight(this.props.language,this.props.content).value}})),rn.createElement("div",{className:BDModules.get(e=>e.marginBottom8)[0].marginBottom8}))}}const vn=window.Lightcord.DiscordModules.dispatcher,wn=BDModules.get(e=>e.default&&e.default.getChannel&&e.default.hasChannel)[0].default;let Cn=BDModules.get(e=>e.default&&e.default.addRelationship)[0],En=BDModules.get(e=>e.default&&e.default.closePrivateChannel)[0];const Sn={};let xn=BDModules.get(e=>e.default&&e.default.getCurrentUser)[0];var kn=new class{constructor(){this.antiDM=this.antiDM.bind(this),this.enabled=!1}enable(){this.enabled||(this.enabled=!0,vn.subscribe("MESSAGE_CREATE",this.antiDM))}disable(){this.enabled&&(this.enabled=!1,vn.unsubscribe("MESSAGE_CREATE",this.antiDM))}antiDM(e){if(!e.message.author.bot)return;if(e.message.author.id===(xn?xn.default.getCurrentUser():null).id&&e.message.guild_id)return;const t=wn.getChannel(e.message.channel_id);var n;t&&(1===t.type&&(Sn[e.message.author.id]||(n=e.message,(/(discord\.gg|discord\.com\/invite\/|discordapp\.com\/invite\/)/g.test(n.content)||Dn(n,"discord.gg/")||Dn(n,"discord.com/invite/")||Dn(n,"discordapp.com/invite/"))&&(Sn[e.message.author.id]=!0,xe.showToast(`[AdBlock]: Blocked ${e.message.author.username}#${e.message.author.discriminator}`,{type:"warning"}),Cn||(Cn=BDModules.get(e=>e.default&&e.default.addRelationship)[0]),Cn.default.addRelationship(e.message.author.id,{location:"ContextMenu"},2),En||(En=BDModules.get(e=>e.default&&e.default.closePrivateChannel)[0]),En.default.closePrivateChannel(t.id,!1)))))}};function Dn(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 Mn;const Bn=xe.removeDa;var Nn=new class{constructor(){this.enabled=!1}enable(){this.enabled||(this.enabled=!0,Mn=Mn||function(){let e=BDModules.get(e=>e.standardSidebarView)[0];if(!e)return null;let t=Bn(e.standardSidebarView),n=[],s=BDModules.get(e=>e.userSettingsAccount)[0];const r=BDModules.get(e=>"string"==typeof e.children)[0];return n.push(`#app-mount .${t} .payment-info .${Bn(BDModules.get(e=>e.description&&"string"==typeof e.description&&e.description.includes("formText"))[0].description)}`),n.push(`#app-mount .${t} .${Bn(BDModules.get(e=>e.paymentSourceRow)[0].paymentSourceRow)} .${Bn(BDModules.get(e=>e.subText&&e.descriptionWrapper)[0].subText)}`),s&&(n.push(`#app-mount .${t} .${Bn(s.userSettingsAccount)} div:nth-child(2)>div:nth-child(2)>.${Bn(BDModules.get(e=>e.viewBody)[0].viewBody)}`),n.push(`.${Bn(s.userSettingsSecurity)} .${Bn(r.children)} > div:nth-child(2)`)),console.log(n),n}(),Mn||console.error(new Error("Couldn't find selectors to blur personnal informations.")),we.addStyle("blurPrivate",`\n${Mn.join(", ")} {\n transition: all 150ms cubic-bezier(.55,.085,.68,.53);\n filter: blur(4px);\n opacity: .8;\n}\n\n${Mn.map(e=>e+":hover").join(", ")} {\n transition: all 150ms cubic-bezier(.55,.09,.68,.53);\n filter: none;\n opacity: 1;\n}`))}disable(){this.enabled&&(this.enabled=!1,we.removeStyle("blurPrivate"))}},Ln=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}),window.Lightcord.BetterDiscord.DisableTyping=this}disable(){this.disabled=!0}enable(){this.disabled=!1}};function Pn(){return(Pn=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 An extends React.Component{render(){const e=this.props;return React.createElement("svg",Pn({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"}))}}function Tn(){return(Tn=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 Rn extends React.Component{render(){return React.createElement("svg",Tn({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 jn={};let _n=[];var $n=new class{constructor(){this._cache={badges:{}},window.Lightcord.BetterDiscord.DistantServer=this}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(jn[e])return jn[e];let t;const n=new Promise(e=>t=e);jn[e]=n;const s=[];for(let t of Fn.badges)t.defaultUsers.includes(e)&&s.push(t);const r=await new Promise(t=>{if(!u["lightcord-5"])return t([]);_n.push([e,t]),setTimeout(()=>{let e=_n;0!==e.length&&(_n=[],In(zn.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();for(let t of n){e.find(e=>e[0]===t.user_id)[1](t.badges)}}).catch(t=>{t instanceof Wn||console.error(t),e.forEach(e=>{e[1]([])})}))},0)});for(let e of r)Fn.badges.find(t=>t.id===e)&&(s.find(t=>t.id===e)||s.push(Fn.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 jn[e],s}};const In=function(e,t,n){return u["lightcord-5"]?j()(`${Fn.SERVER_URL}/api/v1${e}`,{method:t,headers:{CLIENT:"Lightcord",Authorization:window.Lightcord.Api.Authorization||"None::Anonymous"},...n?{body:n}:{}}):Promise.reject(new Wn("The current settings blocked the request."))};class Wn extends Error{constructor(){super(...arguments),this.name="LightcordError"}}const Fn={SERVER_URL:"https://lightcord.deroku.xyz",badges:[{name:"Lightcord Bug Hunter",id:"f04698f5-816b-41e3-bd01-92291193d7a5",defaultUsers:["696481194443014174","696003456611385396"],scopes:[],component:An,href:"https://github.com/lightcord/lightcord/wiki/badges#bug_hunter"},{name:"Buffoon",id:"06904d31-65b4-41ec-a50c-8658bbd1af96",defaultUsers:["389016895543705602","664600134528663565","625350657829896224"],scopes:[],component:Rn,href:"https://youtu.be/EJtb6z-dlT8?t=145"}]},zn={badges:"/users/badges"};On();let Hn;class Un extends React.PureComponent{constructor(){super(...arguments),this.state={states:[]}}render(){Hn||(Hn=x.find(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(Hn.FormSection,{tag:"h2",title:"Lightcord's Api Availlable components"},React.createElement(Hn.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("div",{style:{marginTop:"20px"}}),React.createElement(Lightcord.Api.Components.general.AlertBox,{type:"info"},"All these components have error handling. If you want none, add `.original` after the component path."),React.createElement(Lightcord.Api.Components.general.AlertBox,{type:"warn"},"We do not recommend modifying these component by a plugin. Only do this if you know what you are doing.")),React.createElement(Qe,null),React.createElement(Lightcord.Api.Components.inputs.Button,{color:"brand",look:"outlined",size:"medium",hoverColor:"green",onClick:()=>{_.remote.shell.openExternal("https://lightcord.deroku.xyz/LightcordApi/docs")},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,t,n)=>{if("string"==typeof e)return e;if("boolean"==typeof e)return String(e);if("function"==typeof e)return e.toString();if("object"==typeof e){if(e&&e.$$typeof&&(e.$$typeof===Symbol.for("react.element")||60103===e.$$typeof)){if("Lightcord.Api.Components.general.Tabs"===t){if("react"===n)return'React.createElement("div", {style: {\n marginTop: "20px", marginBottom: "20px"\n}},\n React.createElement("div", {style: {\n backgroundColor: "var(--background-secondary)",\n padding: "30px 30px",\n borderRadius: "8px"\n }, className: "lc-tab-box-shadow" },\n React.createElement(Lightcord.Api.Components.general.Title, null, "Preview tabs")\n )\n)';if("jsx"===n)return'<div style={{\n marginTop: "20px", marginBottom: "20px"\n }}>\n <div style={{\n backgroundColor: "var(--background-secondary)", \n padding: "30px 30px", \n borderRadius: "8px"\n }} className="lc-tab-box-shadow">\n <Lightcord.Api.Components.general.Title>Preview tabs</Lightcord.Api.Components.general.Title>\n </div>\n </div>'}return"Your components here."}return JSON.stringify(e,null," ")}return String(e)},i=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}`,i=r();if("jsx"===t){let e,n=[],r=null;if(Object.keys(i).forEach(e=>{if("children"==e)r=o(i[e],s,t);else{let r=e+"=";"string"==typeof i[e]?r+=JSON.stringify(i[e]):r+=`{${o(i[e],s,t)}}`,n.push(r)}}),r){return e=`<${s} ${n.join(" ")}>`,`${e}\n ${r}\n${`</${s}>`}`}return e=`<${s} ${n.join(" ")}/>`,e}if("react"===t){let e=i.children||null;delete i.children,e&&e.$$typeof&&(e.$$typeof===Symbol.for("react.element")||60103===e.$$typeof)&&(e=o(e,s,t));let n=[];Object.keys(i).forEach(e=>{let r=(/[^\w\d_]/g.test(e)?JSON.stringify(e):e)+": ";"string"==typeof i[e]?r+=JSON.stringify(i[e]):r+=o(i[e],s,t).split("\n").map((e,t)=>0===t?e:" "+e).join("\n"),n.push(r)});let r="{";n.length?n.forEach((e,t)=>{let s=t===n.length-1;0===t||(r+=","),r+="\n ",r+=e,s&&(r+="\n}")}):r+="}";let a="string"==typeof e&&e.startsWith("React.createElement")?e:JSON.stringify(e);return`React.createElement(${s}, ${r}, ${a})`}},a=e.help||{},l=a.info?React.createElement(window.Lightcord.Api.Components.general.AlertBox,{type:"info"},a.info):null,c=a.warn?React.createElement(window.Lightcord.Api.Components.general.AlertBox,{type:"warn"},a.warn):null,d=a.danger?React.createElement(window.Lightcord.Api.Components.general.AlertBox,{type:"danger"},a.danger):null,u=a.error?React.createElement(window.Lightcord.Api.Components.general.AlertBox,{type:"error"},a.error):null,h=a.success?React.createElement(window.Lightcord.Api.Components.general.AlertBox,{type:"success"},a.success):null;return React.createElement("div",null,React.createElement(window.Lightcord.Api.Components.general.SettingsTitle,null,e.displayName||e.name),l,h,c,u,d,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:{margin:"20px"}},React.createElement("div",{style:{backgroundColor:"var(--background-secondary)",padding:"30px 30px",borderRadius:"8px"},className:"lc-tab-box-shadow"},React.createElement(e,r()))):React.createElement("div",{style:{margin:"20px"}},React.createElement("div",{style:{backgroundColor:"var(--background-secondary)",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:i("jsx")}),React.createElement(window.Lightcord.Api.Components.general.SettingSubTitle,null,"React"),React.createElement(window.Lightcord.Api.Components.general.CodeBlock,{language:"js",content:i("react")}))),onChange:e=>{n({tab:e})}}))})]}get renders(){}}const Gn=Se.React;class qn extends Gn.Component{render(){const e=this.props.size||"18px";return Gn.createElement("svg",{viewBox:"0 0 24 24",fill:"var(--text-normal)",className:this.props.className||"",style:{width:e,height:e},onClick:this.props.onClick},Gn.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),Gn.createElement("path",{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))}}class Vn extends React.PureComponent{render(){let e=x.find(e=>e.Separator&&e.Header&&e.Item);const t=React.createElement(V,{color:"black",side:"top",text:"Changelog"},React.createElement("span",{style:{float:"right",cursor:"pointer"},className:"bd-changelog-button",onClick:()=>{xe.showChangelogModal(bbdChangelog)}},React.createElement(qn,{className:"bd-icon",size:"16px"})));return new e.Header({children:React.createElement("span",null,"Bandaged BD",t),className:"ui-tab-bar-header"})}}let Jn=!1;var Zn=new class{constructor(){this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new De,this.registerComponents()}registerComponents(){this.sidebar.register("lightcord",Yn(this.lightcordComponent.bind(this))),this.sidebar.register("status",Yn(this.PresenceComponent.bind(this))),this.sidebar.register("accountinfo",Yn(this.AccountInfosComponent.bind(this))),this.sidebar.register("lcapipreview",Yn(this.ApiPreviewComponent.bind(this))),this.sidebar.register("BDChangelogTitle",Yn(()=>(new Vn).render())),this.sidebar.register("core",Yn(this.coreComponent.bind(this))),this.sidebar.register("customcss",Yn(this.customCssComponent.bind(this))),this.sidebar.register("plugins",Yn(this.renderAddonPane("plugins"))),this.sidebar.register("themes",Yn(this.renderAddonPane("themes")))}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")}getSettings(e){return Object.keys(c).reduce((t,n)=>{const s=c[n];return s.cat===e&&s.implemented&&!s.hidden&&(s.text=n,t.push(s)),t},[])}onChange(e,t,n){this.updateSettings(e,t,n)}updateSettings(e,t,n){if(["lightcord-8","no_window_bound","enable_glasstron","lightcord-10"].includes(e)||(u[e]=t),"bda-gs-2"==e&&(t?we.addClass(document.body,"bd-minimal"):we.removeClass(document.body,"bd-minimal")),"bda-gs-3"==e&&(t?we.addClass(document.body,"bd-minimal-chan"):we.removeClass(document.body,"bd-minimal-chan")),"bda-gs-1"==e&&(t?Fe.addButton():Fe.removeButton()),"bda-gs-4"==e&&(t?ze.start():ze.stop()),"bda-gs-5"==e&&(t?we.addClass(we.query("#app-mount"),"bda-dark"):we.removeClass(we.query("#app-mount"),"bda-dark")),t&&"bda-gs-6"==e&&Be.inject24Hour(),"bda-gs-7"==e&&(t?Me.injectColoredText():Me.removeColoredText()),"fork-ps-4"==e&&(t?Ue.start():Ue.stop()),"fork-ps-5"==e&&(t?(ve.watchContent("plugin"),ve.watchContent("theme")):(ve.unwatchContent("plugin"),ve.unwatchContent("theme"))),"fork-wp-1"==e&&(xe.setWindowPreference("transparent",t),t?xe.setWindowPreference("backgroundColor",null):xe.setWindowPreference("backgroundColor","#2f3136")),"bda-gs-8"==e&&(t?Ge.startDebugListener():Ge.stopDebugListener()),"fork-dm-1"==e&&(t?Ge.startCopySelector():Ge.stopCopySelector()),"reactDevTools"===e&&(t?reactDevTools.start():reactDevTools.stop()),"lightcord-1"===e&&(window.Lightcord.Settings.devMode=!!t,n.forceUpdate()),"lightcord-2"===e&&(window.Lightcord.Settings.callRingingBeat=!!t),"lightcord-presence-1"===e)if(t){At.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 At.disable();if("lightcord-3"===e&&(t?_.remote.getCurrentWindow().setAlwaysOnTop(!0):_.remote.getCurrentWindow().setAlwaysOnTop(!1)),"lightcord-4"===e&&(t?kn.enable():kn.disable()),"lightcord-6"===e&&(t?Nn.enable():Nn.disable()),"lightcord-7"===e&&(t?Ln.enable():Ln.disable()),"lightcord-8"===e){let e=_.remote.getGlobal("appSettings");e.set("isTabs",t),e.save(),_.remote.app.relaunch(),_.remote.app.exit()}if("lightcord-10"!==e){if("no_window_bound"===e){let e=_.remote.getGlobal("appSettings");e.set("NO_WINDOWS_BOUND",t),e.save(),_.remote.app.relaunch(),_.remote.app.exit()}if("enable_glasstron"===e){let e=_.remote.getGlobal("appSettings");e.set("GLASSTRON",t),e.save(),_.remote.app.relaunch(),_.remote.app.exit()}this.saveSettings()}else Ss.methods.NotificationsUseShim(t)}async initializeSettings(){u.reactDevTools&&reactDevTools.start(),u["bda-gs-2"]&&we.addClass(document.body,"bd-minimal"),u["bda-gs-3"]&&we.addClass(document.body,"bd-minimal-chan"),u["bda-gs-1"]&&Fe.addButton(),u["bda-gs-4"]&&ze.start(),u["bda-gs-5"]&&we.addClass(we.query("#app-mount"),"bda-dark"),u["bda-gs-6"]&&Be.inject24Hour(),u["bda-gs-7"]&&Me.injectColoredText(),u["fork-ps-4"]&&Ue.start(),u["lightcord-1"]&&(window.Lightcord.Settings.devMode=!0),u["lightcord-2"]&&(window.Lightcord.Settings.callRingingBeat=!0),u["lightcord-presence-1"]&&At.enable(),u["lightcord-3"]&&_.remote.getCurrentWindow().setAlwaysOnTop(!0),u["lightcord-4"]&&kn.enable(),u["lightcord-6"]&&Nn.enable(),u["lightcord-7"]&&Ln.enable(),u["fork-ps-5"]&&(ve.watchContent("plugin"),ve.watchContent("theme")),u["bda-gs-8"]&&Ge.startDebugListener(),u["fork-dm-1"]&&Ge.startCopySelector(),this.saveSettings()}saveSettings(){L.setSettingGroup("settings",u),L.setSettingGroup("rpc",h)}loadSettings(){Object.assign(u,L.getSettingGroup("settings")),Object.assign(h,L.getSettingGroup("rpc"))}renderSidebar(e){return this.sidebar.render(e)}coreComponent(){return Se.react.createElement(et,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings})}lightcordComponent(e,t){let n=_.remote.getGlobal("appSettings");return[this.lightcordSettings.map((t,s)=>[0===s?null:Se.react.createElement(Qe),Se.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},t.title),t.settings.map(t=>{let s=u[t.id];"lightcord-8"===t.id&&(s=n.get("isTabs",!1)),"no_window_bound"===t.id&&(s=n.get("NO_WINDOWS_BOUND",!1)),"enable_glasstron"===t.id&&(s=n.get("GLASSTRON",!0)),"lightcord-10"===t.id&&(s=!n.get("DEFAULT_NOTIFICATIONS",!0));let r=Se.react.createElement(Ye,{id:t.id,key:t.id,data:t,checked:s,onChange:(t,n)=>{this.onChange(t,n,e)}});return"lightcord-8"==t.id&&s?[r,React.createElement(Lightcord.Api.Components.inputs.Button,{color:"green",look:"outlined",size:"small",hoverColor:"brand",onClick:()=>{DiscordNative.ipc.send("NEW_TAB")},wrapper:!1,disabled:!1},"Open a new Tab")]:r})]),Se.react.createElement(window.Lightcord.Api.Components.inputs.Button,{color:"yellow",look:"ghost",size:"medium",hoverColor:"red",onClick(){console.log("Should relaunch"),_.remote.app.relaunch({args:_.remote.process.argv.slice(1).concat(["--disable-betterdiscord"])}),_.remote.app.quit()},wrapper:!0},"Relaunch without BetterDiscord"),React.createElement(Lightcord.Api.Components.inputs.Button,{color:"yellow",look:"ghost",size:"medium",hoverColor:"red",onClick:()=>{Jn||(Jn=!0,xe.showToast("Clearing cache...",{type:"info"}),t(),_.remote.getCurrentWebContents().session.clearCache().then(()=>{xe.showToast("Cache is cleared !",{type:"success"}),Jn=!1,t()}).catch(e=>{console.error(e),xe.showToast("An error occured. Check console for more informations.",{type:"error"}),Jn=!1,t()}))},wrapper:!0,disabled:Jn},"Clear cache")]}PresenceComponent(){return Se.react.createElement(Ot,{key:"lppannel",onChange:this.onChange,settings:this.PresenceSettings})}AccountInfosComponent(){return Se.react.createElement(mn,{key:"lapannel"})}ApiPreviewComponent(){return Se.react.createElement(Un,{key:"lapipannel"})}customCssComponent(){return Se.react.createElement(st,{key:"csseditor"})}renderAddonPane(e){class t extends Se.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 Se.react.createElement(t,{type:e},Se.react.createElement(Mt,{type:e}))}}};function Yn(e){class t extends React.Component{render(){return e(n,()=>this.forceUpdate())}}let n;return e=>(n=e,t)}class Kn extends Se.reactComponent{render(){return Se.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"},Se.react.createElement("metadata",null),Se.react.createElement("defs",null,Se.react.createElement("filter",{id:"shadow1"},Se.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),Se.react.createElement("filter",{id:"shadow2"},Se.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),Se.react.createElement("filter",{id:"shadow3"},Se.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),Se.react.createElement("g",null,Se.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"}),Se.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"}),Se.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 Xn(){return(Xn=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 Qn extends React.Component{render(){const e=this.props;return React.createElement("svg",Xn({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 es={EmojiRegex:/<a?\.(\w+)\.(\d+)>/g};let ts=BDModules.get(e=>e.CustomEmoji)[0],ns=BDModules.get(e=>e.default&&e.default.getCustomEmojiById)[0],ss=BDModules.get(e=>e.default&&"Autocomplete"===e.default.displayName)[0],rs=BDModules.get(e=>e.getAutocompleteOptions)[0],os=BDModules.get(e=>e.default&&e.default.queryEmojiResults)[0],is=BDModules.get(e=>e.default&&e.default.Messages&&e.default.Messages.EMOJI_MATCHING)[0],as=BDModules.get(e=>e.default&&e.default.getGuild&&e.default.getGuilds&&!e.default.isFetching)[0],ls=BDModules.get(e=>e.default&&e.default.getDisambiguatedEmojiContext);var cs=new class{constructor(){this.init().catch(e=>xe.err("EmojiModule","An error occured",e))}async init(){if(ss||(ss=await window.Lightcord.Api.ensureExported(e=>e.default&&"Autocomplete"===e.default.displayName)),rs||(rs=await window.Lightcord.Api.ensureExported(e=>e.getAutocompleteOptions)),os||(os=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.queryEmojiResults)),is||(is=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.Messages&&e.default.Messages.EMOJI_MATCHING)),as||(as=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.getGuild&&e.default.getGuilds&&!e.default.isFetching)),ls||(ls=await window.Lightcord.Api.ensureExported(e=>e.default&&e.default.getDisambiguatedEmojiContext)),ss&&rs&&os&&is&&as&&ls){console.log("Patching getAutocompleteOptions of AutoCompletionTemplates",rs);const e=rs.getAutocompleteOptions;rs.getAutocompleteOptions=function(t,n,s,r,o){const i=e.call(this,...arguments);return i.LIGHTCORD_EMOJIS={matches(e,t){let n=t.length>1&&"."===e;return ws(n),n},queryResults:e=>os.default.queryEmojiResults(e,t),renderResults:(e,t,n,s,r)=>ds(e,t,r.emojis,n,s,is.default.Messages.EMOJI_MATCHING,is.default.Messages.EMOJI,ss.default.Emoji,(function(e){return{emoji:e,key:e.id||e.uniqueName||e.name,sentinel:".",guild:null!=e.guildId?as.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+">"}},i}}else console.error(new Error("Couldn't start autocompletion of Lightcord's emojis."));for(;!Se.MessageComponent;)await new Promise(e=>setTimeout(e,100));this.cancelEmojiRender||(this.cancelEmoteRender=xe.monkeyPatch(Se.MessageComponent,"default",{before:e=>{if(!xe.getNestedProp(e.methodArguments[0],"childrenMessageContent.props.message"))return;const t=xe.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=es.EmojiRegex.exec(e),r){o=!0,ns||(ns=BDModules.get(e=>e.default&&e.default.getCustomEmojiById)[0]);const e=ns.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?(ts||(ts=BDModules.get(e=>e.CustomEmoji)[0]),React.createElement(ts.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 ds(e,t,n,s,r,o,i,a,l,c){if(null==n||0===n.length)return null;var d=n.map((function(e,n){return React.createElement(a,Object.assign({onClick:r,onHover:s,selected:t===n,index:n},l(e,n)))}));return[us(o,i,e,c),d]}function us(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(ss.default.Title,{title:r},r)}us.displayName="renderHeader";let hs,ps,ms,gs,fs=BDModules.get(e=>e.default&&e.default.isEmojiDisabled)[0],bs=fs&&fs.default.isEmojiDisabled,ys=!1,vs=!1;function ws(e){ys=e,vs||(fs||(fs=BDModules.get(e=>e.default&&e.default.isEmojiDisabled)[0]),fs&&(bs||(bs=fs.default.isEmojiDisabled),vs=!0,fs.default.isEmojiDisabled=function(e){return ys?!(!e.surrogates&&!e.diversity):bs.call(this,...arguments)}))}function Cs(){}Cs.prototype.setConfig=function(e){this.hasStarted||Object.assign(f,e)},Object.defineProperty(Cs.prototype,"methods",{get:()=>hs}),Cs.prototype.setMethods=function(e){this.hasStarted||(hs=e)},Cs.prototype.init=async function(){if(this.hasStarted)return;if(this.hasStarted=!0,!Array.prototype.flat)return void xe.alert("Not Supported","BetterDiscord v"+a+" does not support this old version ("+o+") of Discord. Please update your Discord installation before proceeding.");if(f.version<i)return void xe.alert("Not Supported","BetterDiscord v"+f.version+" (your version) is not supported by the latest js ("+a+").<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 xe.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 xe.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");xe.suppressErrors(this.patchAttributes.bind(this),"LC Plugin Certifier Patch")(),xe.log("Startup","Initializing Settings"),this.initSettings(),await this.checkForGuilds(),Se.initialize(),xe.log("Startup","Updating Settings"),Zn.initializeSettings(),xe.log("Startup","Loading Addons Cache"),await ve.loadAddonCertifierCache(),xe.log("Startup","Loading Plugins"),await R.loadPlugins(),xe.log("Startup","Loading Themes"),await Ee.loadThemes(),we.addStyle("customcss",atob(L.getBDData("bdcustomcss"))),window.addEventListener("beforeunload",(function(){u["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),X.start(),xe.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),xe.log("Startup","Initializing Main Observer"),this.initObserver(),u["fork-ps-1"]&&(xe.log("Startup","Collecting Startup Errors"),xe.showContentErrors({plugins:m,themes:g}));const e=L.getBDData("version");if(a>e&&(l&&this.showChangelogModal(l),L.setBDData("version",a)),cs.start(),xe.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),xe.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),xe.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),xe.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")(),xe.suppressErrors(this.patchMessageHeader.bind(this),"BD Badge Chat Patch")(),xe.suppressErrors(this.patchMemberList.bind(this),"BD Badge Member List Patch")(),xe.suppressErrors(this.patchAttachment.bind(this),"LC Plugin Certifier Patch")(),xe.suppressErrors(this.patchPopoutWindow.bind(this),"BD Popout Window Patch")(),f.haveInstalledDefault){let e=xe.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>')},Cs.prototype.patchPopoutWindow=async function(){let e=!1;this.cancelPatchPopoutWindow=()=>{e=!0},window.Lightcord.Api.ensureExported(e=>e.default&&e.default.getWindow).then(t=>{if(e)return;const n=window.Lightcord.DiscordModules.dispatcher._interceptor;window.Lightcord.DiscordModules.dispatcher.setInterceptor((function(e){if(e&&"POPOUT_WINDOW_OPEN"===e.type){const t=e.render;e.render=function(){const e=t.call(this,...arguments),n=e.type;return e.type=function(e){const t=n(e);return console.log(e,t),t},console.log(e),e}}return n.call(this,e)})),window.Lightcord.DiscordModules.dispatcher.subscribe("POPOUT_WINDOW_OPEN",n=>{u["lightcord-9"]&&(e||(xe.log("POPOUT THEME","Popout opened, Adding theme"),setImmediate(()=>{console.log(n);const e=t.default.getWindow(n.key);console.log(e)})))})})},Cs.prototype.patchAttributes=async function(){let e=[];for(this.cancelPatchAttributes=function(){e.forEach(e=>e())};!Se.MessageComponent;)await new Promise(e=>setTimeout(e,100));const t=x.find(e=>"Anchor"==e.displayName);window.Lightcord.Api.ensureExported(e=>e.default&&"DiscordTag"===e.default.displayName).then(e=>{let n=e.default;e.default=function(e){let s=n(e),r=On(),o=Se.React.createElement("div",{style:{display:"inline",marginTop:"5px"}},Se.React.createElement("span",{id:"badges-"+r,key:"badges-"+r,style:{display:"inherit"}})),i=[s];"249746236008169473"===e.user.id?i.push(Se.React.createElement(V,{color:"black",side:"top",text:"BandagedBD Developer"},Se.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},Se.React.createElement(Kn,{size:"16px",className:"bd-logo"})))):"696481194443014174"!==e.user.id&&"696003456611385396"!==e.user.id||i.push(Se.React.createElement(V,{color:"black",side:"top",text:"Lightcord Developer"},Se.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},Se.React.createElement(Qn,{size:"16px",className:"bd-logo"})))),i.push(o);let a=Se.React.createElement("div",{style:{display:"block"}},i);return Es(r,e.user,!1),a}}),e.push(xe.monkeyPatch(Se.MessageComponent,"default",{after:e=>{e.methodArguments[0].childrenMessageContent.props.message&&(e.returnValue.props["data-message-id"]=e.methodArguments[0].childrenMessageContent.props.message.id)}}))},Cs.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=Se.guildClasses.wrapper.split(" ")[0];document.querySelectorAll("."+s).length>0&&e++;const r=Se.guildClasses.listItem.split(" ")[0],o=Se.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${r} .${o}`).length>0||e>=50?t(f.deferLoaded=!0):void setTimeout(n,100)};"loading"!=document.readyState&&setTimeout(n,100),document.addEventListener("DOMContentLoaded",()=>{setTimeout(n,100)})})},Cs.prototype.injectExternals=async function(){},Cs.prototype.initSettings=function(){if(L.initialize(),L.getSettingGroup("settings")||L.getSettingGroup("rpc")){Zn.loadSettings();for(const e in d)null==u[e]&&(u[e]=d[e],Zn.saveSettings())}else L.getSettingGroup("settings")||Object.assign(u,d),L.getSettingGroup("rpc")||Object.assign(h,p),Zn.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(!e[1])return e;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(...Zn.renderSidebar(this));t[0];)e.push(t.pop())}return e}})},Cs.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];ps||(ps=BDModules.get(e=>e.layer&&"string"==typeof e.layer&&e.animating)[0].layer),ms||(ms=BDModules.get(e=>e.socialLinks&&"string"==typeof e.socialLinks)[0].socialLinks),gs||(gs=BDModules.get(e=>e.modal&&"string"==typeof e.modal&&e.inner&&"string"==typeof e.inner&&!e.responsiveWidthMobile)[0].modal),s.classList.contains(ps)&&("GUILD_SETTINGS"===s.getAttribute("aria-label")&&(s.setAttribute("layer-id","server-settings"),s.setAttribute("id","server-settings")),s.getElementsByClassName(ms).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})},Cs.prototype.showChangelogModal=function(e={}){return xe.showChangelogModal(e)},Cs.prototype.alert=function(e,t){return xe.alert(e,t)},Cs.prototype.patchSocial=function(){if(this.socialPatch)return;const e=x.find(e=>"TabBar"==e.displayName),t=x.find(e=>"Anchor"==e.displayName);e&&(this.socialPatch=xe.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(Se.React.createElement(V,{color:"black",side:"top",text:"Lightcord"},Se.React.createElement(t,{className:"bd-social-link "+e.link,href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},Se.React.createElement(Qn,{size:"16px",className:"bd-social-logo"})))),n.props.children.push(Se.React.createElement(V,{color:"black",side:"top",text:"BandagedBD"},Se.React.createElement(t,{className:"bd-social-link "+e.link,href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},Se.React.createElement(Kn,{size:"16px",className:"bd-social-logo"})))),n};n[n.length-2].type=r}let[s,r,o]=[BDModules.get(e=>e.colorMuted)[0].colorMuted,BDModules.get(e=>e.size32)[0],BDModules.get(e=>e.versionHash)[0].versionHash];const i=`(${f.hash?f.hash.substring(0,7):f.branch})`,l=[Se.react.createElement("div",{className:`${s} ${r.size12}`},`Lightcord ${_.remote.getGlobal("BuildInfo").version} `,Se.react.createElement("span",{className:o+" da-versionHash"},`(${(_.remote.getGlobal("BuildInfo").commit||"Unknown").slice(0,7)})`)),Se.react.createElement("div",{className:`${s} ${r.size12}`},`BBD ${a} `,Se.react.createElement("span",{className:o+" da-versionHash"},i))],c=n[n.length-1].type;n[n.length-1].type=function(){const e=c(...arguments);return e.props.children.splice(1,0,l),e}}}))};function Es(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 o=x.find(e=>"Anchor"==e.displayName);$n.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=o,r.href={className:n?"bd-chat-badge":"bd-member-badge",title:e.name,target:"_blank"});const i=Se.React.createElement(V,{color:"black",side:"top",text:e.name},e.href?Se.react.createElement(o,{href:e.href,className:n?"bd-chat-badge":"bd-member-badge",title:e.name,target:"_blank"},Se.React.createElement(e.component,r)):Se.React.createElement(e.component,r)),a=document.createElement("div");Se.reactDom.render(i,a),a.childNodes.forEach(e=>{s.appendChild(e)})})})})}Cs.prototype.patchGuildListItems=function(){if(this.guildListItemsPatch)return;const e=function(){const e=x.findByProps("wrapper","unreadMentionsBar"),t=x.findByProps("guildsError","selected"),n=x.findByProps("blobContainer");return Object.assign({},e,t,n)}(),t=e.listItem.split(" ")[0],n=e.blobContainer.split(" ")[0],s=Se.getInternalInstance(document.querySelector(`.${t} .${n}`).parentElement).return.type;s&&(this.guildListItemsPatch=xe.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}}}))},Cs.prototype.patchGuildPills=function(){if(this.guildPillPatch)return;const e=x.find(e=>e.default&&!e.default.displayName&&e.default.toString&&e.default.toString().includes("translate3d"));e&&(this.guildPillPatch=xe.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}}))},Cs.prototype.patchGuildSeparator=function(){if(this.guildSeparatorPatch)return;const e=x.findByDisplayName("Guilds"),t=x.findByProps("renderListItem");if(!t||!e)return;const n=function(){const e=t.Separator(...arguments);return e.props.className+=" bd-guild-separator",e};this.guildSeparatorPatch=xe.monkeyPatch(e.prototype,"render",{after:e=>{e.returnValue.props.children[1].props.children[3].type=n}})},Cs.prototype.patchAttachment=function(){if(this.AttachmentPatch)return;const e=BDModules.get(e=>e.default&&"Attachment"===e.default.displayName)[0];x.find(e=>"Anchor"==e.displayName)&&e&&e.default&&(this.AttachmentPatch=xe.monkeyPatch(e,"default",{after:e=>{if(!u["fork-ps-6"])return;const t=e.methodArguments[0]||null,n=xe.getNestedProp(e.returnValue,"props.children");if(!n||!t||!t.url)return;if(!Array.isArray(n))return;const s=On();n.push(Se.react.createElement("span",{id:"certified-"+s})),X.patch(t,"certified-"+s)}}))},Cs.prototype.patchMessageHeader=function(){if(this.messageHeaderPatch)return;const e=x.findByProps("MessageTimestamp"),t=x.find(e=>"Anchor"==e.displayName);t&&e&&e.default&&(this.messageHeaderPatch=xe.monkeyPatch(e,"default",{after:e=>{const n=xe.getNestedProp(e.methodArguments[0],"message.author"),s=xe.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(Se.React.createElement(V,{color:"black",side:"top",text:"BandagedBD Developer"},Se.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},Se.React.createElement(Kn,{size:"16px",className:"bd-logo"})))):"696481194443014174"!==n.id&&"696003456611385396"!==n.id||s.push(Se.React.createElement(V,{color:"black",side:"top",text:"Lightcord Developer"},Se.React.createElement(t,{className:"bd-chat-badge",href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},Se.React.createElement(Qn,{size:"16px",className:"bd-logo"}))));const r=On();s.push(Se.React.createElement("div",{id:"badges-"+r,style:{display:"inline"}})),Es(r,n,!0)}}))},Cs.prototype.patchMemberList=function(){if(this.memberListPatch)return;const e=x.findByDisplayName("MemberListItem"),t=x.find(e=>"Anchor"==e.displayName);t&&e&&e.prototype&&e.prototype.renderDecorators&&(this.memberListPatch=xe.monkeyPatch(e.prototype,"renderDecorators",{after:e=>{const n=xe.getNestedProp(e.thisObject,"props.user"),s=xe.getNestedProp(e.returnValue,"props.children");if(!s||!n||!n.id)return;if(!Array.isArray(s))return;"249746236008169473"===n.id?s.push(Se.React.createElement(V,{color:"black",side:"top",text:"BandagedBD Developer"},Se.React.createElement(t,{className:"bd-member-badge",href:"https://github.com/rauenzi/BetterDiscordApp",title:"BandagedBD",target:"_blank"},Se.React.createElement(Kn,{size:"16px",className:"bd-logo"})))):"696481194443014174"!==n.id&&"696003456611385396"!==n.id||s.push(Se.React.createElement(V,{color:"black",side:"top",text:"Lightcord Developer"},Se.React.createElement(t,{className:"bd-member-badge",href:"https://github.com/Lightcord/Lightcord",title:"Lightcord",target:"_blank"},Se.React.createElement(Qn,{size:"16px",className:"bd-logo"}))));const r=On();s.push(Se.React.createElement("div",{id:"badges-"+r})),Es(r,n,!1)}}))},Cs.prototype.updateInjector=async function(){if(!L.injectionPath)return!1};var Ss=new Cs;const xs={get React(){return Se.React},get ReactDOM(){return Se.ReactDom},get ReactComponent(){return Se.ReactComponent},get WindowConfigFile(){return xe.WindowConfigFile},get settings(){return c},get emotes(){return null},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 xe.getAllWindowPreferences()},getWindowPreference:function(e){return xe.getWindowPreference(e)},setWindowPreference:function(e,t){return xe.setWindowPreference(e,t)},injectCSS:function(e,t){we.addStyle(we.escapeID(e),t)},clearCSS:function(e){we.removeStyle(we.escapeID(e))},linkJS:function(e,t){we.addScript(we.escapeID(e),t)},unlinkJS:function(e){we.removeScript(we.escapeID(e))},getPlugin:function(e){return y.hasOwnProperty(e)?y[e].plugin:null},getCore:function(){return xe.warn("Deprecation Notice","BdApi.getCore() will be removed in future versions."),Ss},alert:function(e,t){return xe.showConfirmationModal(e,t,{cancelText:null})},showConfirmationModal:function(e,t,n={}){return xe.showConfirmationModal(e,t,n)},showToast:function(e,t={}){xe.showToast(e,t)},findModule:function(e){return Se.WebpackModules.find(e)},findAllModules:function(e){return Se.WebpackModules.findAll(e)},findModuleByProps:function(...e){return Se.WebpackModules.findByUniqueProperties(e)},findModuleByPrototypes:function(...e){return Se.WebpackModules.findByPrototypes(e)},findModuleByDisplayName:function(e){return Se.WebpackModules.findByDisplayName(e)},getInternalInstance:function(e){if(e instanceof window.jQuery||e instanceof Element)return e instanceof jQuery&&(e=e[0]),Se.getInternalInstance(e)},loadData:function(e,t){return L.getPluginData(e,t)}};xs.getData=xs.loadData,xs.saveData=function(e,t,n){return L.setPluginData(e,t,n)},xs.setData=xs.saveData,xs.deleteData=function(e,t){return L.deletePluginData(e,t)},xs.monkeyPatch=function(e,t,n){return xe.monkeyPatch(e,t,n)},xs.onRemoved=function(e,t){return xe.onRemoved(e,t)},xs.suppressErrors=function(e,t){return xe.suppressErrors(e,t)},xs.testJSON=function(e){return xe.testJSON(e)},xs.isPluginEnabled=function(e){return!!v[e]},xs.isThemeEnabled=function(e){return!!w[e]},xs.isSettingEnabled=function(e){return!!u[e]},xs.enableSetting=function(e){return Zn.onChange(e,!0)},xs.disableSetting=function(e){return Zn.onChange(e,!1)},xs.toggleSetting=function(e){return Zn.onChange(e,!u[e])},xs.getBDData=function(e){return L.getBDData(e)},xs.setBDData=function(e,t){return L.setBDData(e,t)};const ks=(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)}};xs.Plugins=ks(v,y,R),xs.Themes=ks(w,b,Ee);var Ds=xs;window.Lightcord.BetterDiscord.BdApi=xs,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 Ms=(e,t)=>{Object.defineProperty(window,e,{get:()=>(xe.warn("Deprecated Global",`"${e}" will be removed in future versions. Please only use BdApi.`),t)})},Bs=Object.keys(s);for(const e of Bs)Ms(e,s[e]);Ms("BDV2",Se),Ms("pluginModule",R),Ms("themeModule",Ee),Ms("Utils",xe),Ms("BDEvents",A),Ms("settingsPanel",Zn),Ms("DataStore",L),Ms("ContentManager",ve),Ms("ClassNormalizer",Ue),window.BdApi=Ds,Ms("mainCore",Ss);class Ns{constructor(e,t){Ss.setConfig(e),Ss.setMethods(t)}init(){Ss.init()}}}]);