diff --git a/js/main.js b/js/main.js index 8c8912b..da95180 100644 --- a/js/main.js +++ b/js/main.js @@ -179,7 +179,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0gl /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _settingsPanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsPanel */ \"./src/settingsPanel.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _webpackModules__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./webpackModules */ \"./src/webpackModules.js\");\n/* harmony import */ var _react_bdLogo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./react/bdLogo */ \"./src/react/bdLogo.js\");\n\n\n\n // import publicServersModule from \"./publicServers\";\n// import voiceMode from \"./voiceMode\";\n// import dMode from \"./devMode\";\n\n\n\n\n\n\n\n\n\nfunction Core(config) {\n Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"], config);\n}\n\nCore.prototype.init = async function () {\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version < _0globals__WEBPACK_IMPORTED_MODULE_0__[\"minSupportedVersion\"]) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BetterDiscord v\" + _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version + \" (your version)\" + \" is not supported by the latest js (\" + _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"] + \").

Please download the latest version from GitHub\");\n return;\n }\n\n if (window.ED) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.\");\n return;\n }\n\n if (window.WebSocket && window.WebSocket.name && window.WebSocket.name.includes(\"Patched\")) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with Powercord. Please uninstall one of them.\");\n return;\n }\n\n const latestLocalVersion = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].updater ? _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].updater.LatestVersion : _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].latestVersion;\n\n if (latestLocalVersion > _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Update Available\", `\n An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n Download Installer\n `);\n }\n\n const SortedGuildStore = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].WebpackModules.findByUniqueProperties([\"getSortedGuilds\"]);\n const GuildMemberStore = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].WebpackModules.findByUniqueProperties([\"getMember\"]);\n const userId = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].UserStore.getCurrentUser().id;\n\n const checkForRole = async (serverId, roleId) => {\n if (!SortedGuildStore || !GuildMemberStore) return false;\n const hasServer = SortedGuildStore.getFlattenedGuildIds().includes(serverId);\n const member = GuildMemberStore.getMember(serverId, userId);\n return hasServer && member ? member.roles.includes(roleId) : false;\n };\n\n const checkForBetaAccess = async () => {\n if (userId === \"197435711476072449\") return false;\n const isDonor = checkForRole(\"292141134614888448\", \"452687773678436354\");\n const isPluginDev = checkForRole(\"86004744966914048\", \"125166040689803264\") || checkForRole(\"280806472928198656\", \"357242595950329857\");\n return isDonor || isPluginDev;\n };\n\n const shouldHaveBeta = checkForBetaAccess();\n\n if (!shouldHaveBeta) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Beta Access\", `You don't seem like you should have Beta Access... how did you get here?`);\n }\n\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n this.initSettings(); // emoteModule = new EmoteModule();\n // quickEmoteMenu = new QuickEmoteMenu();\n\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\");\n window.emotePromise = _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init().then(() => {\n _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].initialized = true;\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing QuickEmoteMenu\");\n _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init();\n }); // publicServersModule = new V2_PublicServers();\n // voiceMode = new VoiceMode();\n // dMode = new devMode();\n\n this.injectExternals();\n await this.checkForGuilds();\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].initialize();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\"); // settingsPanel = new V2_SettingsPanel();\n\n _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initializeSettings();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\"); // pluginModule = new PluginModule();\n\n _pluginModule__WEBPACK_IMPORTED_MODULE_6__[\"default\"].loadPlugins();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\"); // themeModule = new ThemeModule();\n\n _themeModule__WEBPACK_IMPORTED_MODULE_7__[\"default\"].loadThemes();\n $(\"#customcss\").detach().appendTo(document.head);\n window.addEventListener(\"beforeunload\", function () {\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-dc-0\"]) document.querySelector(\".btn.btn-disconnect\").click();\n });\n _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].autoCapitalize();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n if (document.getElementsByClassName(\"bd-loaderv2\").length) document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n this.initObserver(); // Show loading errors\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) {\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showContentErrors({\n plugins: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdpluginErrors\"],\n themes: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemeErrors\"]\n });\n }\n\n const previousVersion = _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getBDData(\"version\");\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"] > previousVersion) {\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdChangelog\"]) this.showChangelogModal(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdChangelog\"]);\n _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].setBDData(\"version\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"]);\n }\n\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchSocial.bind(this), \"BD Social Patch\")();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildPills.bind(this), \"BD Guild Pills Patch\")();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildListItems.bind(this), \"BD Guild List Items Patch\")();\n _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildSeparator.bind(this), \"BD Guild Separator Patch\")();\n};\n\nCore.prototype.checkForGuilds = function () {\n let timesChecked = 0;\n return new Promise(resolve => {\n const checkForGuilds = function () {\n const wrapper = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper}`).length > 0) timesChecked++;\n const guild = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.listItem.split(\" \")[0];\n const blob = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].deferLoaded = true);else if (timesChecked >= 50) return resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n $(document).ready(function () {\n setTimeout(checkForGuilds, 100);\n });\n });\n};\n\nCore.prototype.injectExternals = async function () {\n await _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\");\n if (window.require.original) window.require = window.require.original;\n};\n\nCore.prototype.initSettings = function () {\n _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].initialize();\n\n if (!_dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getSettingGroup(\"settings\")) {\n Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"], _0globals__WEBPACK_IMPORTED_MODULE_0__[\"defaultCookie\"]);\n _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].saveSettings();\n } else {\n _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].loadSettings();\n $(\"'),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){V.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class Ae extends z.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=z.react.createElement(Le,{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||z.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{l["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&z.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=V.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 z.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default",style:{padding:"60px 40px 0px"}},t&&z.react.createElement("div",{id:"editor-detached"},z.react.createElement(fe,{text:"Custom CSS Editor"}),z.react.createElement("h3",null,"Editor Detached"),z.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&z.react.createElement("div",null,z.react.createElement(fe,{text:"Custom CSS Editor"}),z.react.createElement("div",{className:"editor-wrapper"},z.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),z.react.createElement("div",{id:"bd-customcss-attach-controls"},z.react.createElement("ul",{className:"checkbox-group"},z.react.createElement(Fe,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:l["bda-css-0"]})),z.react.createElement("div",{id:"bd-customcss-detach-controls-button"},z.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),z.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),z.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),z.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),z.react.createElement("div",{className:"help-text"},"Press ",z.react.createElement("code",{className:"inline"},"ctrl"),"+",z.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":l["bda-css-0"]=t,Re.saveSettings()}}updateCss(){0==$("#customcss").length&&$("head").append(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){V.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?z.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=$("#bd-customcss-detach-container");return e.length?e[0]:this.injectDetachedRoot()?this.detachedRoot:null}injectDetachedRoot(){return!!$(".app, .app-2rEoOp").length&&($("
",{id:"bd-customcss-detach-container"}).insertAfter($(".app, .app-2rEoOp")),!0)}attach(){this.setState({detached:!1})}}class Ie extends z.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){return z.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},z.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title),this.props.children)}}var Re=new class{constructor(){this.sideBarOnClick=this.sideBarOnClick.bind(this),this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new ne(this.sideBarOnClick)}get root(){const e=$("#bd-settingspane-container");return e.length?e[0]:this.injectRoot()?this.root:null}injectRoot(){if(!$(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").length)return!1;const e=$("
",{class:"contentRegion-3nDuYy content-region",id:"bd-settingspane-container"});return $(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").append(e),S.onRemoved(e[0],()=>{z.reactDom.unmountComponentAtNode(e[0])}),!0}get coreSettings(){const e=this.getSettings("core");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get emoteSettings(){return this.getSettings("emote")}getSettings(e){const t=z.WebpackModules.findByUniqueProperties(["getSortedGuilds"]),n=z.WebpackModules.findByUniqueProperties(["getMember"]),s=z.UserStore.getCurrentUser().id,o=async(e,o)=>{if(!t||!n)return!1;const r=t.getFlattenedGuildIds().includes(e),a=n.getMember(e,s);return!(!r||!a)&&a.roles.includes(o)},r=(async()=>{if("197435711476072449"===s)return!1;const e=o("292141134614888448","452687773678436354"),t=o("86004744966914048","125166040689803264")||o("280806472928198656","357242595950329857");return e||t})();return Object.keys(i).reduce((t,n)=>{const s=i[n];return s.cat===e&&s.implemented&&!s.hidden&&("beta"!==i.category||"beta"===i.category&&r)&&(s.text=n,t.push(s)),t},[])}sideBarOnClick(e){const t=this;switch($(".contentRegion-3nDuYy, .content-region").first().hide(),$(t.root).show(),e){case"core":t.renderCoreSettings();break;case"emotes":t.renderEmoteSettings();break;case"customcss":t.renderCustomCssEditor();break;case"plugins":t.renderPluginPane();break;case"themes":t.renderThemePane()}}onClick(){}onChange(e,t){this.updateSettings(e,t)}updateSettings(e,t){if(l[e]=t,"fork-beta"==e){try{const e=n(0),s=n(2).join(DiscordNative.process.remote.resourcesPath,"app","betterdiscord","config.json"),o=require(s);t?(o.branch="modularize",o.minified=!1):(o.branch="master",o.minified=!0),e.writeFileSync(s,JSON.stringify(o,null,4))}catch(e){console.error(e)}(()=>{const e=z.WebpackModules.findByUniqueProperties(["push","update","pop","popWithKey"]),t=z.WebpackModules.findByPrototypes(["handleCancel","handleSubmit","handleMinorConfirm"]);e&&t&&e.push((function(e){return z.React.createElement(t,Object.assign({title:"Restart Required",body:"Please FULLY restart Discord in order for these changes to take effect."},e))}))})()}"bda-gs-2"==e&&(t?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal")),"bda-gs-3"==e&&(t?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan")),"bda-gs-1"==e&&(t?ye.addButton():ye.removeButton()),"bda-gs-4"==e&&(t?ke.enable():ke.disable()),"bda-gs-5"==e&&(t?$("#app-mount").addClass("bda-dark"):$("#app-mount").removeClass("bda-dark")),t&&"bda-gs-6"==e&&oe.inject24Hour(),"bda-gs-7"==e&&(t?se.injectColoredText():se.removeColoredText()),"bda-es-4"==e&&(t?Q.autoCapitalize():Q.disableAutoCapitalize()),"fork-ps-4"==e&&(t?Ee.start():Ee.stop()),"fork-ps-5"==e&&(t?(q.watchContent("plugin"),q.watchContent("theme")):(q.unwatchContent("plugin"),q.unwatchContent("theme"))),"bda-gs-8"==e&&(t?Se.enable(l["fork-dm-1"]):Se.disable()),"fork-dm-1"==e&&l["bda-gs-8"]&&Se.enable(t),this.saveSettings()}async initializeSettings(){l["bda-gs-2"]&&$("body").addClass("bd-minimal"),l["bda-gs-3"]&&$("body").addClass("bd-minimal-chan"),l["bda-gs-1"]&&ye.addButton(),l["bda-gs-4"]&&ke.enable(),l["bda-gs-5"]&&$("#app-mount").addClass("bda-dark"),l["bda-gs-6"]&&oe.inject24Hour(),l["bda-gs-7"]&&se.injectColoredText(),l["bda-es-4"]&&Q.autoCapitalize(),l["fork-ps-4"]&&Ee.start(),l["fork-ps-5"]&&(q.watchContent("plugin"),q.watchContent("theme")),l["bda-gs-8"]&&Se.enable(l["fork-dm-1"]),(async()=>{const e=z.WebpackModules.findByUniqueProperties(["getSortedGuilds"]),t=z.WebpackModules.findByUniqueProperties(["getMember"]),n=e.getFlattenedGuildIds().includes("292141134614888448"),s=z.UserStore.getCurrentUser().id,o=t.getMember("292141134614888448",s);!(!n||!o)&&o.roles.includes("452687773678436354")&&(i["BBD Beta"].hidden=!1)})(),this.saveSettings()}saveSettings(){V.setSettingGroup("settings",l)}loadSettings(){Object.assign(l,V.getSettingGroup("settings"))}renderSidebar(){const e=this;$("[class*='side-'] > [class*='item-']").off("click.v2settingspanel").on("click.v2settingspanel",()=>{z.reactDom.unmountComponentAtNode(e.root),$(e.root).hide(),$(".contentRegion-3nDuYy, .content-region").first().show()}),e.sidebar.render()}get coreComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(je,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings}),z.react.createElement(he,{key:"tools"})]})}get emoteComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(Oe,{key:"espanel",title:"Emote Settings",onChange:this.onChange,settings:this.emoteSettings,button:{title:"Clear Emote Cache",onClick:()=>{Q.clearEmoteData(),Q.init(),J.init()}}}),z.react.createElement(he,{key:"tools"})]})}get customCssComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(Ae,{key:"csseditor"}),z.react.createElement(he,{key:"tools"})]})}contentComponent(e){const t="plugins"==e?this.pluginsComponent:this.themesComponent,n=e.replace("s",""),s=this;class o extends z.react.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this)}componentDidMount(){T.on(`${n}-reloaded`,this.onChange),T.on(`${n}-loaded`,this.onChange),T.on(`${n}-unloaded`,this.onChange)}componentWillUnmount(){T.off(`${n}-reloaded`,this.onChange),T.off(`${n}-loaded`,this.onChange),T.off(`${n}-unloaded`,this.onChange)}onChange(){s.sideBarOnClick(e)}render(){return t}}return z.react.createElement(o)}get pluginsComponent(){const e=Object.keys(w).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(z.react.createElement(Ne,{key:t,plugin:w[t].plugin})),e),[]),t=z.react.createElement(Te,{key:"plugin-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&z.react.createElement(De($e,{color:"black",side:"top",text:"Reload Plugin List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{P.updatePluginList(),this.sideBarOnClick("plugins")}}),o=z.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(1).shell.openItem(q.pluginsFolder)}},"Open Plugin Folder"),r=z.react.createElement(Ie,{key:"pcolumn",title:"Plugins",children:[s,o,t]});return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[r,z.react.createElement(he,{key:"tools"})]})}get themesComponent(){const e=Object.keys(k).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(z.react.createElement(Pe,{key:t,theme:k[t]})),e),[]),t=z.react.createElement(Te,{key:"theme-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&z.react.createElement(De($e,{color:"black",side:"top",text:"Reload Theme List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{B.updateThemeList(),this.sideBarOnClick("themes")}}),o=z.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(1).shell.openItem(q.themesFolder)}},"Open Theme Folder"),r=z.react.createElement(Ie,{key:"tcolumn",title:"Themes",children:[s,o,t]});return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[r,z.react.createElement(he,{key:"tools"})]})}renderCoreSettings(){const e=this.root;e?z.reactDom.render(this.coreComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderEmoteSettings(){const e=this.root;e?z.reactDom.render(this.emoteComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderCustomCssEditor(){const e=this.root;e?z.reactDom.render(this.customCssComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderPluginPane(){const e=this.root;e?z.reactDom.render(this.contentComponent("plugins"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderThemePane(){const e=this.root;e?z.reactDom.render(this.contentComponent("themes"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}};class _e extends z.reactComponent{render(){return z.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"},z.react.createElement("metadata",null),z.react.createElement("defs",null,z.react.createElement("filter",{id:"shadow1"},z.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),z.react.createElement("filter",{id:"shadow2"},z.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),z.react.createElement("filter",{id:"shadow3"},z.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),z.react.createElement("g",null,z.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"}),z.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"}),z.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 qe(e){Object.assign(h,e)}qe.prototype.init=async function(){if(h.version
Please download the latest version from GitHub");if(window.ED)return void S.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 S.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");const e=h.updater?h.updater.LatestVersion:h.latestVersion;e>h.version&&S.alert("Update Available",`\n An update for BandagedBD is available (${e})! Please Reinstall!

\n Download Installer\n `);const t=z.WebpackModules.findByUniqueProperties(["getSortedGuilds"]),n=z.WebpackModules.findByUniqueProperties(["getMember"]),s=z.UserStore.getCurrentUser().id,i=async(e,o)=>{if(!t||!n)return!1;const r=t.getFlattenedGuildIds().includes(e),a=n.getMember(e,s);return!(!r||!a)&&a.roles.includes(o)};(async()=>{if("197435711476072449"===s)return!1;const e=i("292141134614888448","452687773678436354"),t=i("86004744966914048","125166040689803264")||i("280806472928198656","357242595950329857");return e||t})()||S.alert("Beta Access","You don't seem like you should have Beta Access... how did you get here?"),S.log("Startup","Initializing Settings"),this.initSettings(),S.log("Startup","Initializing EmoteModule"),window.emotePromise=Q.init().then(()=>{Q.initialized=!0,S.log("Startup","Initializing QuickEmoteMenu"),J.init()}),this.injectExternals(),await this.checkForGuilds(),z.initialize(),S.log("Startup","Updating Settings"),Re.initializeSettings(),S.log("Startup","Loading Plugins"),P.loadPlugins(),S.log("Startup","Loading Themes"),B.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",(function(){l["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),Q.autoCapitalize(),S.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),S.log("Startup","Initializing Main Observer"),this.initObserver(),l["fork-ps-1"]&&(S.log("Startup","Collecting Startup Errors"),S.showContentErrors({plugins:d,themes:u}));const c=V.getBDData("version");r>c&&(a&&this.showChangelogModal(a),V.setBDData("version",r)),S.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),S.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),S.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),S.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")()},qe.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=z.guildClasses.wrapper.split(" ")[0];document.querySelectorAll(`.${s}`).length>0&&e++;const o=z.guildClasses.listItem.split(" ")[0],r=z.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${o} .${r}`).length>0||e>=50?t(h.deferLoaded=!0):void setTimeout(n,100)};$(document).ready((function(){setTimeout(n,100)}))})},qe.prototype.injectExternals=async function(){await S.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"),window.require.original&&(window.require=window.require.original)},qe.prototype.initSettings=function(){if(V.initialize(),V.getSettingGroup("settings")){Re.loadSettings(),$(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){V.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}}class Ae extends z.reactComponent{constructor(e){super(e);this.props.lines=0,this.setInitialState(),this.attach=this.attach.bind(this),this.detachedEditor=z.react.createElement(Le,{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||z.editorDetached}}componentDidMount(){this.editor=ace.edit("bd-customcss-editor"),this.editor.setTheme("ace/theme/monokai"),this.editor.session.setMode("ace/mode/css"),this.editor.setShowPrintMargin(!1),this.editor.setFontSize(14),this.editor.on("change",()=>{l["bda-css-0"]&&(this.saveCss(),this.updateCss())})}componentWillUnmount(){this.editor.destroy()}componentDidUpdate(e,t){const n=this;t.detached&&!n.state.detached&&z.reactDom.unmountComponentAtNode(n.detachedRoot)}codeMirror(){}get options(){return{lineNumbers:!0,mode:"css",indentUnit:4,theme:"material",scrollbarStyle:"simple"}}get css(){const e=V.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 z.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default",style:{padding:"60px 40px 0px"}},t&&z.react.createElement("div",{id:"editor-detached"},z.react.createElement(fe,{text:"Custom CSS Editor"}),z.react.createElement("h3",null,"Editor Detached"),z.react.createElement("button",{className:"btn btn-primary",onClick:()=>{e.attach()}},"Attach")),!t&&z.react.createElement("div",null,z.react.createElement(fe,{text:"Custom CSS Editor"}),z.react.createElement("div",{className:"editor-wrapper"},z.react.createElement("div",{id:"bd-customcss-editor",className:"editor",ref:"editor"},e.css)),z.react.createElement("div",{id:"bd-customcss-attach-controls"},z.react.createElement("ul",{className:"checkbox-group"},z.react.createElement(Fe,{id:"live-update",text:"Live Update",onChange:this.onChange,checked:l["bda-css-0"]})),z.react.createElement("div",{id:"bd-customcss-detach-controls-button"},z.react.createElement("button",{style:{borderRadius:"3px 0 0 3px",borderRight:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("update")}},"Update"),z.react.createElement("button",{style:{borderRadius:"0",borderLeft:"1px solid #2d2d2d",borderRight:"1px solid #2d2d2d"},className:"btn btn-primary",onClick:()=>{e.onClick("save")}},"Save"),z.react.createElement("button",{style:{borderRadius:"0 3px 3px 0",borderLeft:"1px solid #3f4146"},className:"btn btn-primary",onClick:()=>{e.onClick("detach")}},"Detach"),z.react.createElement("span",{style:{fontSize:"10px",marginLeft:"5px"}},"Unsaved changes are lost on detach"),z.react.createElement("div",{className:"help-text"},"Press ",z.react.createElement("code",{className:"inline"},"ctrl"),"+",z.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":l["bda-css-0"]=t,Re.saveSettings()}}updateCss(){0==$("#customcss").length&&$("head").append(''),$("#customcss").text(this.editor.session.getValue()).detach().appendTo(document.head)}saveCss(){V.setBDData("bdcustomcss",btoa(this.editor.session.getValue()))}detach(){this.setState({detached:!0});const e=this.detachedRoot;e?z.reactDom.render(this.detachedEditor,e):console.log("FAILED TO INJECT ROOT: .app")}get detachedRoot(){const e=$("#bd-customcss-detach-container");return e.length?e[0]:this.injectDetachedRoot()?this.detachedRoot:null}injectDetachedRoot(){return!!$(".app, .app-2rEoOp").length&&($("
",{id:"bd-customcss-detach-container"}).insertAfter($(".app, .app-2rEoOp")),!0)}attach(){this.setState({detached:!1})}}class Ie extends z.reactComponent{constructor(e){super(e)}static get displayName(){return"ContentColumn"}render(){return z.react.createElement("div",{className:"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default"},z.react.createElement("h2",{className:"ui-form-title h2 margin-reset margin-bottom-20"},this.props.title),this.props.children)}}var Re=new class{constructor(){this.sideBarOnClick=this.sideBarOnClick.bind(this),this.onChange=this.onChange.bind(this),this.updateSettings=this.updateSettings.bind(this),this.sidebar=new ne(this.sideBarOnClick)}get root(){const e=$("#bd-settingspane-container");return e.length?e[0]:this.injectRoot()?this.root:null}injectRoot(){if(!$(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").length)return!1;const e=$("
",{class:"contentRegion-3nDuYy content-region",id:"bd-settingspane-container"});return $(".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view").append(e),S.onRemoved(e[0],()=>{z.reactDom.unmountComponentAtNode(e[0])}),!0}get coreSettings(){const e=this.getSettings("core");return[...new Set(e.map(e=>e.category))].map(t=>({title:t,settings:e.filter(e=>e.category==t)}))}get emoteSettings(){return this.getSettings("emote")}getSettings(e){const t=z.WebpackModules.findByUniqueProperties(["getSortedGuilds"]),n=z.WebpackModules.findByUniqueProperties(["getMember"]),s=z.UserStore.getCurrentUser().id,o=async(e,o)=>{if(!t||!n)return!1;const r=t.getFlattenedGuildIds().includes(e),a=n.getMember(e,s);return!(!r||!a)&&a.roles.includes(o)},r=(async()=>{if("197435711476072449"===s)return!1;const e=o("292141134614888448","452687773678436354"),t=o("86004744966914048","125166040689803264")||o("280806472928198656","357242595950329857");return e||t})();return Object.keys(i).reduce((t,n)=>{const s=i[n];return s.cat===e&&s.implemented&&!s.hidden&&("beta"!==i.category||"beta"===i.category&&r)&&(s.text=n,t.push(s)),t},[])}sideBarOnClick(e){const t=this;switch($(".contentRegion-3nDuYy, .content-region").first().hide(),$(t.root).show(),e){case"core":t.renderCoreSettings();break;case"emotes":t.renderEmoteSettings();break;case"customcss":t.renderCustomCssEditor();break;case"plugins":t.renderPluginPane();break;case"themes":t.renderThemePane()}}onClick(){}onChange(e,t){this.updateSettings(e,t)}updateSettings(e,t){if(l[e]=t,"fork-beta"==e){try{const e=n(0),s=n(2).join(DiscordNative.process.remote.resourcesPath,"app","betterdiscord","config.json"),o=require(s);t?(o.branch="modularize",o.minified=!1):(o.branch="master",o.minified=!0),e.writeFileSync(s,JSON.stringify(o,null,4))}catch(e){console.error(e)}(()=>{const e=z.WebpackModules.findByUniqueProperties(["push","update","pop","popWithKey"]),t=z.WebpackModules.findByPrototypes(["handleCancel","handleSubmit","handleMinorConfirm"]);e&&t&&e.push((function(e){return z.React.createElement(t,Object.assign({title:"Restart Required",body:"Please FULLY restart Discord in order for these changes to take effect."},e))}))})()}"bda-gs-2"==e&&(t?$("body").addClass("bd-minimal"):$("body").removeClass("bd-minimal")),"bda-gs-3"==e&&(t?$("body").addClass("bd-minimal-chan"):$("body").removeClass("bd-minimal-chan")),"bda-gs-1"==e&&(t?ye.addButton():ye.removeButton()),"bda-gs-4"==e&&(t?ke.enable():ke.disable()),"bda-gs-5"==e&&(t?$("#app-mount").addClass("bda-dark"):$("#app-mount").removeClass("bda-dark")),t&&"bda-gs-6"==e&&oe.inject24Hour(),"bda-gs-7"==e&&(t?se.injectColoredText():se.removeColoredText()),"bda-es-4"==e&&(t?Y.autoCapitalize():Y.disableAutoCapitalize()),"fork-ps-4"==e&&(t?Ee.start():Ee.stop()),"fork-ps-5"==e&&(t?(q.watchContent("plugin"),q.watchContent("theme")):(q.unwatchContent("plugin"),q.unwatchContent("theme"))),"bda-gs-8"==e&&(t?Se.enable(l["fork-dm-1"]):Se.disable()),"fork-dm-1"==e&&l["bda-gs-8"]&&Se.enable(t),this.saveSettings()}async initializeSettings(){l["bda-gs-2"]&&$("body").addClass("bd-minimal"),l["bda-gs-3"]&&$("body").addClass("bd-minimal-chan"),l["bda-gs-1"]&&ye.addButton(),l["bda-gs-4"]&&ke.enable(),l["bda-gs-5"]&&$("#app-mount").addClass("bda-dark"),l["bda-gs-6"]&&oe.inject24Hour(),l["bda-gs-7"]&&se.injectColoredText(),l["bda-es-4"]&&Y.autoCapitalize(),l["fork-ps-4"]&&Ee.start(),l["fork-ps-5"]&&(q.watchContent("plugin"),q.watchContent("theme")),l["bda-gs-8"]&&Se.enable(l["fork-dm-1"]),(async()=>{const e=z.WebpackModules.findByUniqueProperties(["getSortedGuilds"]),t=z.WebpackModules.findByUniqueProperties(["getMember"]),n=e.getFlattenedGuildIds().includes("292141134614888448"),s=z.UserStore.getCurrentUser().id,o=t.getMember("292141134614888448",s);!(!n||!o)&&o.roles.includes("452687773678436354")&&(i["BBD Beta"].hidden=!1)})(),this.saveSettings()}saveSettings(){V.setSettingGroup("settings",l)}loadSettings(){Object.assign(l,V.getSettingGroup("settings"))}renderSidebar(){const e=this;$("[class*='side-'] > [class*='item-']").off("click.v2settingspanel").on("click.v2settingspanel",()=>{z.reactDom.unmountComponentAtNode(e.root),$(e.root).hide(),$(".contentRegion-3nDuYy, .content-region").first().show()}),e.sidebar.render()}get coreComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(je,{key:"cspanel",onChange:this.onChange,sections:this.coreSettings}),z.react.createElement(he,{key:"tools"})]})}get emoteComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(Oe,{key:"espanel",title:"Emote Settings",onChange:this.onChange,settings:this.emoteSettings,button:{title:"Clear Emote Cache",onClick:()=>{Y.clearEmoteData(),Y.init(),J.init()}}}),z.react.createElement(he,{key:"tools"})]})}get customCssComponent(){return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[z.react.createElement(Ae,{key:"csseditor"}),z.react.createElement(he,{key:"tools"})]})}contentComponent(e){const t="plugins"==e?this.pluginsComponent:this.themesComponent,n=e.replace("s",""),s=this;class o extends z.react.Component{constructor(e){super(e),this.onChange=this.onChange.bind(this)}componentDidMount(){T.on(`${n}-reloaded`,this.onChange),T.on(`${n}-loaded`,this.onChange),T.on(`${n}-unloaded`,this.onChange)}componentWillUnmount(){T.off(`${n}-reloaded`,this.onChange),T.off(`${n}-loaded`,this.onChange),T.off(`${n}-unloaded`,this.onChange)}onChange(){s.sideBarOnClick(e)}render(){return t}}return z.react.createElement(o)}get pluginsComponent(){const e=Object.keys(w).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(z.react.createElement(Ne,{key:t,plugin:w[t].plugin})),e),[]),t=z.react.createElement(Te,{key:"plugin-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&z.react.createElement(De($e,{color:"black",side:"top",text:"Reload Plugin List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{P.updatePluginList(),this.sideBarOnClick("plugins")}}),o=z.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(1).shell.openItem(q.pluginsFolder)}},"Open Plugin Folder"),r=z.react.createElement(Ie,{key:"pcolumn",title:"Plugins",children:[s,o,t]});return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[r,z.react.createElement(he,{key:"tools"})]})}get themesComponent(){const e=Object.keys(k).sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).reduce((e,t)=>(e.push(z.react.createElement(Pe,{key:t,theme:k[t]})),e),[]),t=z.react.createElement(Te,{key:"theme-list",className:"bda-slist",children:e}),s=!l["fork-ps-5"]&&z.react.createElement(De($e,{color:"black",side:"top",text:"Reload Theme List"}),{className:"bd-reload-header",size:"18px",onClick:async()=>{B.updateThemeList(),this.sideBarOnClick("themes")}}),o=z.react.createElement("button",{key:"folder-button",className:"bd-pfbtn",onClick:()=>{n(1).shell.openItem(q.themesFolder)}},"Open Theme Folder"),r=z.react.createElement(Ie,{key:"tcolumn",title:"Themes",children:[s,o,t]});return z.react.createElement(me,{contentColumn:!0,fade:!0,dark:!0,children:[r,z.react.createElement(he,{key:"tools"})]})}renderCoreSettings(){const e=this.root;e?z.reactDom.render(this.coreComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderEmoteSettings(){const e=this.root;e?z.reactDom.render(this.emoteComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderCustomCssEditor(){const e=this.root;e?z.reactDom.render(this.customCssComponent,e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderPluginPane(){const e=this.root;e?z.reactDom.render(this.contentComponent("plugins"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}renderThemePane(){const e=this.root;e?z.reactDom.render(this.contentComponent("themes"),e):console.log("FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i")}};class _e extends z.reactComponent{render(){return z.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"},z.react.createElement("metadata",null),z.react.createElement("defs",null,z.react.createElement("filter",{id:"shadow1"},z.react.createElement("feDropShadow",{dx:"20",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"})),z.react.createElement("filter",{id:"shadow2"},z.react.createElement("feDropShadow",{dx:"15",dy:"0",stdDeviation:"20","flood-color":"rgba(255,255,255,0.15)"})),z.react.createElement("filter",{id:"shadow3"},z.react.createElement("feDropShadow",{dx:"10",dy:"0",stdDeviation:"20","flood-color":"rgba(0,0,0,0.35)"}))),z.react.createElement("g",null,z.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"}),z.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"}),z.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 qe(e){Object.assign(h,e)}qe.prototype.init=async function(){if(h.version
Please download the latest version from GitHub");if(window.ED)return void S.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 S.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");const e=h.updater?h.updater.LatestVersion:h.latestVersion;e>h.version&&S.alert("Update Available",`\n An update for BandagedBD is available (${e})! Please Reinstall!

\n Download Installer\n `),S.log("Startup","Initializing Settings"),this.initSettings(),S.log("Startup","Initializing EmoteModule"),window.emotePromise=Y.init().then(()=>{Y.initialized=!0,S.log("Startup","Initializing QuickEmoteMenu"),J.init()}),this.injectExternals(),await this.checkForGuilds(),z.initialize(),S.log("Startup","Updating Settings"),Re.initializeSettings(),S.log("Startup","Loading Plugins"),P.loadPlugins(),S.log("Startup","Loading Themes"),B.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",(function(){l["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()})),Y.autoCapitalize(),S.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2").length&&document.getElementsByClassName("bd-loaderv2")[0].remove(),S.log("Startup","Initializing Main Observer"),this.initObserver(),l["fork-ps-1"]&&(S.log("Startup","Collecting Startup Errors"),S.showContentErrors({plugins:d,themes:u}));const t=V.getBDData("version");r>t&&(a&&this.showChangelogModal(a),V.setBDData("version",r)),S.suppressErrors(this.patchSocial.bind(this),"BD Social Patch")(),S.suppressErrors(this.patchGuildPills.bind(this),"BD Guild Pills Patch")(),S.suppressErrors(this.patchGuildListItems.bind(this),"BD Guild List Items Patch")(),S.suppressErrors(this.patchGuildSeparator.bind(this),"BD Guild Separator Patch")()},qe.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const n=function(){const s=z.guildClasses.wrapper.split(" ")[0];document.querySelectorAll(`.${s}`).length>0&&e++;const o=z.guildClasses.listItem.split(" ")[0],r=z.guildClasses.blobContainer.split(" ")[0];return document.querySelectorAll(`.${s} .${o} .${r}`).length>0||e>=50?t(h.deferLoaded=!0):void setTimeout(n,100)};$(document).ready((function(){setTimeout(n,100)}))})},qe.prototype.injectExternals=async function(){await S.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"),window.require.original&&(window.require=window.require.original)},qe.prototype.initSettings=function(){if(V.initialize(),V.getSettingGroup("settings")){Re.loadSettings(),$('