function Core(config) { window.bdConfig = config; } Core.prototype.init = async function() { if (bdConfig.version < minSupportedVersion) { this.alert("Not Supported", "BetterDiscord v" + bdConfig.version + " (your version)" + " is not supported by the latest js (" + bbdVersion + ").

Please download the latest version from GitHub"); return; } if (bdConfig.updater.LatestVersion > bdConfig.version) { this.alert("Update Available", ` An update for BandagedBD is available (${bdConfig.updater.LatestVersion})! Please Reinstall!

Download Installer `); } Utils.log("Startup", "Initializing Settings"); this.initSettings(); emoteModule = new EmoteModule(); quickEmoteMenu = new QuickEmoteMenu(); Utils.log("Startup", "Initializing EmoteModule"); window.emotePromise = emoteModule.init().then(() => { emoteModule.initialized = true; Utils.log("Startup", "Initializing QuickEmoteMenu"); quickEmoteMenu.init(); }); publicServersModule = new V2_PublicServers(); voiceMode = new VoiceMode(); dMode = new devMode(); this.injectExternals(); await this.checkForGuilds(); BDV2.initialize(); Utils.log("Startup", "Updating Settings"); settingsPanel = new V2_SettingsPanel(); settingsPanel.initializeSettings(); Utils.log("Startup", "Loading Plugins"); pluginModule = new PluginModule(); pluginModule.loadPlugins(); Utils.log("Startup", "Loading Themes"); themeModule = new ThemeModule(); themeModule.loadThemes(); $("#customcss").detach().appendTo(document.head); window.addEventListener("beforeunload", function() { if (settingsCookie["bda-dc-0"]) document.querySelector(".btn.btn-disconnect").click(); }); publicServersModule.initialize(); emoteModule.autoCapitalize(); Utils.log("Startup", "Removing Loading Icon"); document.getElementsByClassName("bd-loaderv2")[0].remove(); Utils.log("Startup", "Initializing Main Observer"); this.initObserver(); // Show loading errors if (settingsCookie["fork-ps-1"]) { Utils.log("Startup", "Collecting Startup Errors"); this.showContentErrors({plugins: bdpluginErrors, themes: bdthemeErrors}); } // if (!DataStore.getBDData(bbdVersion)) { // BdApi.alert("BBD Updated!", ["Lots of things were fixed in this update like Public Servers, Minimal Mode, Dark Mode and 24 Hour Timestamps.", BdApi.React.createElement("br"), BdApi.React.createElement("br"), "Feel free to test them all out!"]); // DataStore.setBDData(bbdVersion, true); // } }; Core.prototype.checkForGuilds = function() { return new Promise(resolve => { const checkForGuilds = function() { const wrapper = BDV2.guildClasses.wrapper.split(" ")[0]; const guild = BDV2.guildClasses.listItem.split(" ")[0]; const blob = BDV2.guildClasses.blobContainer.split(" ")[0]; if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(bdConfig.deferLoaded = true); setTimeout(checkForGuilds, 100); }; $(document).ready(function () { setTimeout(checkForGuilds, 100); }); }); }; Core.prototype.injectExternals = async function() { await Utils.injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"); if (require.original) window.require = require.original; }; Core.prototype.initSettings = function () { DataStore.initialize(); if (!DataStore.getSettingGroup("settings")) { settingsCookie = defaultCookie; this.saveSettings(); } else { this.loadSettings(); $("