diff --git a/js/main.js b/js/main.js index 2dab9e76..1bc872d5 100644 --- a/js/main.js +++ b/js/main.js @@ -95,61 +95,7 @@ var Core = /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - -/* harmony default export */ __webpack_exports__["default"] = (new class TwentyFourHour extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "24Hour"; - } - - get category() { - return "general"; - } - - get id() { - return "twentyFourHour"; - } - - enabled() { - this.inject24Hour(); - } - - disabled() { - if (!this.cancel24Hour) return; - this.cancel24Hour(); - delete this.cancel24Hour; - } - - inject24Hour() { - if (this.cancel24Hour) return; - const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\s(AM|PM)`); - - const convert = data => { - const matched = data.returnValue.match(twelveHour); - if (!matched || matched.length !== 4) return; - if (matched[3] === "AM") return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === "12" ? "00" : matched[1].padStart(2, "0")}:${matched[2]}`); - return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === "12" ? "12" : parseInt(matched[1]) + 12}:${matched[2]}`); - }; - - const cancelCozy = modules__WEBPACK_IMPORTED_MODULE_1__["Utilities"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].TimeFormatter, "calendarFormat", { - after: convert - }); // Called in Cozy mode - - const cancelCompact = modules__WEBPACK_IMPORTED_MODULE_1__["Utilities"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].TimeFormatter, "dateFormat", { - after: convert - }); // Called in Compact mode - - this.cancel24Hour = () => { - cancelCozy(); - cancelCompact(); - }; // Cancel both - - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class TwentyFourHour extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"24Hour\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"twentyFourHour\";\n }\n\n enabled() {\n this.inject24Hour();\n }\n\n disabled() {\n if (!this.cancel24Hour) return;\n this.cancel24Hour();\n delete this.cancel24Hour;\n }\n\n inject24Hour() {\n if (this.cancel24Hour) return;\n const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\\\s(AM|PM)`);\n\n const convert = data => {\n const matched = data.returnValue.match(twelveHour);\n if (!matched || matched.length !== 4) return;\n if (matched[3] === \"AM\") return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"00\" : matched[1].padStart(2, \"0\")}:${matched[2]}`);\n return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"12\" : parseInt(matched[1]) + 12}:${matched[2]}`);\n };\n\n const cancelCozy = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"calendarFormat\", {\n after: convert\n }); // Called in Cozy mode\n\n const cancelCompact = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"dateFormat\", {\n after: convert\n }); // Called in Compact mode\n\n this.cancel24Hour = () => {\n cancelCozy();\n cancelCompact();\n }; // Cancel both\n\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zLzI0aG91ci5qcz9kZTc4Il0sIm5hbWVzIjpbIlR3ZW50eUZvdXJIb3VyIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsImluamVjdDI0SG91ciIsImRpc2FibGVkIiwiY2FuY2VsMjRIb3VyIiwidHdlbHZlSG91ciIsIlJlZ0V4cCIsImNvbnZlcnQiLCJkYXRhIiwibWF0Y2hlZCIsInJldHVyblZhbHVlIiwibWF0Y2giLCJsZW5ndGgiLCJyZXBsYWNlIiwicGFkU3RhcnQiLCJwYXJzZUludCIsImNhbmNlbENvenkiLCJVdGlsaXRpZXMiLCJtb25rZXlQYXRjaCIsIkRpc2NvcmRNb2R1bGVzIiwiVGltZUZvcm1hdHRlciIsImFmdGVyIiwiY2FuY2VsQ29tcGFjdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGNBQU4sU0FBNkJDLHdEQUE3QixDQUFxQztBQUNwRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLFFBQVA7QUFBaUI7O0FBQzdCLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxnQkFBUDtBQUF5Qjs7QUFFbkNDLFNBQU8sR0FBRztBQUNOLFNBQUtDLFlBQUw7QUFDSDs7QUFFREMsVUFBUSxHQUFHO0FBQ1AsUUFBSSxDQUFDLEtBQUtDLFlBQVYsRUFBd0I7QUFDeEIsU0FBS0EsWUFBTDtBQUNBLFdBQU8sS0FBS0EsWUFBWjtBQUNIOztBQUVERixjQUFZLEdBQUc7QUFDWCxRQUFJLEtBQUtFLFlBQVQsRUFBdUI7QUFFdkIsVUFBTUMsVUFBVSxHQUFHLElBQUlDLE1BQUosQ0FBWSxxQ0FBWixDQUFuQjs7QUFDQSxVQUFNQyxPQUFPLEdBQUlDLElBQUQsSUFBVTtBQUN0QixZQUFNQyxPQUFPLEdBQUdELElBQUksQ0FBQ0UsV0FBTCxDQUFpQkMsS0FBakIsQ0FBdUJOLFVBQXZCLENBQWhCO0FBQ0EsVUFBSSxDQUFDSSxPQUFELElBQVlBLE9BQU8sQ0FBQ0csTUFBUixLQUFtQixDQUFuQyxFQUFzQztBQUN0QyxVQUFJSCxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBbkIsRUFBeUIsT0FBT0QsSUFBSSxDQUFDRSxXQUFMLEdBQW1CRixJQUFJLENBQUNFLFdBQUwsQ0FBaUJHLE9BQWpCLENBQXlCSixPQUFPLENBQUMsQ0FBRCxDQUFoQyxFQUFzQyxHQUFFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBZixHQUFzQixJQUF0QixHQUE2QkEsT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXSyxRQUFYLENBQW9CLENBQXBCLEVBQXVCLEdBQXZCLENBQTRCLElBQUdMLE9BQU8sQ0FBQyxDQUFELENBQUksRUFBL0csQ0FBMUI7QUFDekIsYUFBT0QsSUFBSSxDQUFDRSxXQUFMLEdBQW1CRixJQUFJLENBQUNFLFdBQUwsQ0FBaUJHLE9BQWpCLENBQXlCSixPQUFPLENBQUMsQ0FBRCxDQUFoQyxFQUFzQyxHQUFFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBZixHQUFzQixJQUF0QixHQUE2Qk0sUUFBUSxDQUFDTixPQUFPLENBQUMsQ0FBRCxDQUFSLENBQVIsR0FBdUIsRUFBRyxJQUFHQSxPQUFPLENBQUMsQ0FBRCxDQUFJLEVBQTdHLENBQTFCO0FBQ0gsS0FMRDs7QUFPQSxVQUFNTyxVQUFVLEdBQUdDLGlEQUFTLENBQUNDLFdBQVYsQ0FBc0JDLHNEQUFjLENBQUNDLGFBQXJDLEVBQW9ELGdCQUFwRCxFQUFzRTtBQUFDQyxXQUFLLEVBQUVkO0FBQVIsS0FBdEUsQ0FBbkIsQ0FYVyxDQVdpRzs7QUFDNUcsVUFBTWUsYUFBYSxHQUFHTCxpREFBUyxDQUFDQyxXQUFWLENBQXNCQyxzREFBYyxDQUFDQyxhQUFyQyxFQUFvRCxZQUFwRCxFQUFrRTtBQUFDQyxXQUFLLEVBQUVkO0FBQVIsS0FBbEUsQ0FBdEIsQ0FaVyxDQVlnRzs7QUFDM0csU0FBS0gsWUFBTCxHQUFvQixNQUFNO0FBQUNZLGdCQUFVO0FBQUlNLG1CQUFhO0FBQUksS0FBMUQsQ0FiVyxDQWFpRDs7QUFDL0Q7O0FBN0JtRCxDQUF6QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zLzI0aG91ci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtVdGlsaXRpZXMsIERpc2NvcmRNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFR3ZW50eUZvdXJIb3VyIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCIyNEhvdXJcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJ0d2VudHlGb3VySG91clwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIHRoaXMuaW5qZWN0MjRIb3VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbmNlbDI0SG91cikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsMjRIb3VyKCk7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuY2FuY2VsMjRIb3VyO1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdDI0SG91cigpIHtcclxuICAgICAgICBpZiAodGhpcy5jYW5jZWwyNEhvdXIpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdHdlbHZlSG91ciA9IG5ldyBSZWdFeHAoYChbMC05XXsxLDJ9KTooWzAtOV17MSwyfSlcXFxccyhBTXxQTSlgKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ID0gKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGRhdGEucmV0dXJuVmFsdWUubWF0Y2godHdlbHZlSG91cik7XHJcbiAgICAgICAgICAgIGlmICghbWF0Y2hlZCB8fCBtYXRjaGVkLmxlbmd0aCAhPT0gNCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlZFszXSA9PT0gXCJBTVwiKSByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWUucmVwbGFjZShtYXRjaGVkWzBdLCBgJHttYXRjaGVkWzFdID09PSBcIjEyXCIgPyBcIjAwXCIgOiBtYXRjaGVkWzFdLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHttYXRjaGVkWzJdfWApO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWUucmVwbGFjZShtYXRjaGVkWzBdLCBgJHttYXRjaGVkWzFdID09PSBcIjEyXCIgPyBcIjEyXCIgOiBwYXJzZUludChtYXRjaGVkWzFdKSArIDEyfToke21hdGNoZWRbMl19YCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgY2FuY2VsQ296eSA9IFV0aWxpdGllcy5tb25rZXlQYXRjaChEaXNjb3JkTW9kdWxlcy5UaW1lRm9ybWF0dGVyLCBcImNhbGVuZGFyRm9ybWF0XCIsIHthZnRlcjogY29udmVydH0pOyAvLyBDYWxsZWQgaW4gQ296eSBtb2RlXHJcbiAgICAgICAgY29uc3QgY2FuY2VsQ29tcGFjdCA9IFV0aWxpdGllcy5tb25rZXlQYXRjaChEaXNjb3JkTW9kdWxlcy5UaW1lRm9ybWF0dGVyLCBcImRhdGVGb3JtYXRcIiwge2FmdGVyOiBjb252ZXJ0fSk7IC8vIENhbGxlZCBpbiBDb21wYWN0IG1vZGVcclxuICAgICAgICB0aGlzLmNhbmNlbDI0SG91ciA9ICgpID0+IHtjYW5jZWxDb3p5KCk7IGNhbmNlbENvbXBhY3QoKTt9OyAvLyBDYW5jZWwgYm90aFxyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/24hour.js\n"); /***/ }), @@ -161,55 +107,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _voicemode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./voicemode */ "./src/builtins/voicemode.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VoiceMode", function() { return _voicemode__WEBPACK_IMPORTED_MODULE_0__["default"]; }); - -/* harmony import */ var _classnormalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classnormalizer */ "./src/builtins/classnormalizer.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClassNormalizer", function() { return _classnormalizer__WEBPACK_IMPORTED_MODULE_1__["default"]; }); - -/* harmony import */ var _developermode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./developermode */ "./src/builtins/developermode.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeveloperMode", function() { return _developermode__WEBPACK_IMPORTED_MODULE_2__["default"]; }); - -/* harmony import */ var _publicservers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./publicservers */ "./src/builtins/publicservers.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PublicServers", function() { return _publicservers__WEBPACK_IMPORTED_MODULE_3__["default"]; }); - -/* harmony import */ var _darkmode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./darkmode */ "./src/builtins/darkmode.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DarkMode", function() { return _darkmode__WEBPACK_IMPORTED_MODULE_4__["default"]; }); - -/* harmony import */ var _minimalmode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./minimalmode */ "./src/builtins/minimalmode.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MinimalMode", function() { return _minimalmode__WEBPACK_IMPORTED_MODULE_5__["default"]; }); - -/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./24hour */ "./src/builtins/24hour.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TwentyFourHour", function() { return _24hour__WEBPACK_IMPORTED_MODULE_6__["default"]; }); - -/* harmony import */ var _coloredtext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./coloredtext */ "./src/builtins/coloredtext.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColoredText", function() { return _coloredtext__WEBPACK_IMPORTED_MODULE_7__["default"]; }); - -/* harmony import */ var _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./voicedisconnect */ "./src/builtins/voicedisconnect.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VoiceDisconnect", function() { return _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__["default"]; }); - -/* harmony import */ var _emotemenu__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./emotemenu */ "./src/builtins/emotemenu.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteMenu", function() { return _emotemenu__WEBPACK_IMPORTED_MODULE_9__["default"]; }); - -/* harmony import */ var _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./emoteautocaps */ "./src/builtins/emoteautocaps.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteAutocaps", function() { return _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__["default"]; }); - -/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emotes */ "./src/builtins/emotes.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteModule", function() { return _emotes__WEBPACK_IMPORTED_MODULE_11__["default"]; }); - - - - - - - - - - - - - +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _voicemode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./voicemode */ \"./src/builtins/voicemode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceMode\", function() { return _voicemode__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _classnormalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classnormalizer */ \"./src/builtins/classnormalizer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClassNormalizer\", function() { return _classnormalizer__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _developermode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./developermode */ \"./src/builtins/developermode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeveloperMode\", function() { return _developermode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _publicservers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./publicservers */ \"./src/builtins/publicservers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PublicServers\", function() { return _publicservers__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _darkmode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./darkmode */ \"./src/builtins/darkmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DarkMode\", function() { return _darkmode__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _minimalmode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./minimalmode */ \"./src/builtins/minimalmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MinimalMode\", function() { return _minimalmode__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./24hour */ \"./src/builtins/24hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TwentyFourHour\", function() { return _24hour__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _coloredtext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./coloredtext */ \"./src/builtins/coloredtext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColoredText\", function() { return _coloredtext__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./voicedisconnect */ \"./src/builtins/voicedisconnect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceDisconnect\", function() { return _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _emotemenu__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./emotemenu */ \"./src/builtins/emotemenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteMenu\", function() { return _emotemenu__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./emoteautocaps */ \"./src/builtins/emoteautocaps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteAutocaps\", function() { return _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteModule\", function() { return _emotes__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmpzPzU5YTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtkZWZhdWx0IGFzIFZvaWNlTW9kZX0gZnJvbSBcIi4vdm9pY2Vtb2RlXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDbGFzc05vcm1hbGl6ZXJ9IGZyb20gXCIuL2NsYXNzbm9ybWFsaXplclwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRGV2ZWxvcGVyTW9kZX0gZnJvbSBcIi4vZGV2ZWxvcGVybW9kZVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgUHVibGljU2VydmVyc30gZnJvbSBcIi4vcHVibGljc2VydmVyc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRGFya01vZGV9IGZyb20gXCIuL2Rhcmttb2RlXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNaW5pbWFsTW9kZX0gZnJvbSBcIi4vbWluaW1hbG1vZGVcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFR3ZW50eUZvdXJIb3VyfSBmcm9tIFwiLi8yNGhvdXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIENvbG9yZWRUZXh0fSBmcm9tIFwiLi9jb2xvcmVkdGV4dFwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgVm9pY2VEaXNjb25uZWN0fSBmcm9tIFwiLi92b2ljZWRpc2Nvbm5lY3RcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIEVtb3RlTWVudX0gZnJvbSBcIi4vZW1vdGVtZW51XCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbW90ZUF1dG9jYXBzfSBmcm9tIFwiLi9lbW90ZWF1dG9jYXBzXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbW90ZU1vZHVsZX0gZnJvbSBcIi4vZW1vdGVzXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/builtins.js\n"); /***/ }), @@ -221,138 +119,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - -const normalizedPrefix = "da"; -const randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$`); -/* harmony default export */ __webpack_exports__["default"] = (new class ClassNormalizer extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get id() { - return "classNormalizer"; - } - - get category() { - return "general"; - } - - get name() { - return "ClassNormalizer"; - } - - enabled() { - if (this.hasPatched) return; - this.patchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__["WebpackModules"].getModules(this.moduleFilter.bind(this))); - this.normalizeElement(document.querySelector("#app-mount")); - this.hasPatched = true; - } - - disabled() { - if (!this.hasPatched) return; - this.unpatchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__["WebpackModules"].getModules(this.moduleFilter.bind(this))); - this.revertElement(document.querySelector("#app-mount")); - this.hasPatched = false; - } - - patchClassModules(modules) { - for (const module of modules) { - this.patchClassModule(normalizedPrefix, module); - } - } - - unpatchClassModules(modules) { - for (const module of modules) { - this.unpatchClassModule(normalizedPrefix, module); - } - } - - shouldIgnore(value) { - if (!isNaN(value)) return true; - if (value.endsWith("px") || value.endsWith("ch") || value.endsWith("em") || value.endsWith("ms")) return true; - if (value.startsWith("layerContainer-")) return true; - if (value.startsWith("#") && (value.length == 7 || value.length == 4)) return true; - if (value.includes("calc(") || value.includes("rgba")) return true; - return false; - } - - moduleFilter(module) { - if (typeof module !== "object" || Array.isArray(module)) return false; - if (module.__esModule) return false; - if (!Object.keys(module).length) return false; - - for (const baseClassName in module) { - const value = module[baseClassName]; - if (typeof value !== "string") return false; - if (this.shouldIgnore(value)) continue; - if (value.split("-").length === 1) return false; - if (!randClass.test(value.split(" ")[0])) return false; - } - - return true; - } - - patchClassModule(componentName, classNames) { - for (const baseClassName in classNames) { - const value = classNames[baseClassName]; - if (this.shouldIgnore(value)) continue; - const classList = value.split(" "); - - for (const normalClass of classList) { - const match = normalClass.match(randClass)[1]; - if (!match) continue; // Shouldn't ever happen since they passed the moduleFilter, but you never know - - const camelCase = match.split("-").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(""); - classNames[baseClassName] += ` ${componentName}-${camelCase}`; - } - } - } - - unpatchClassModule(componentName, classNames) { - for (const baseClassName in classNames) { - const value = classNames[baseClassName]; - if (this.shouldIgnore(value)) continue; - let newString = ""; - const classList = value.split(" "); - - for (const normalClass of classList) { - if (normalClass.startsWith(`${componentName}-`)) continue; - newString += ` ${normalClass}`; - } - - classNames[baseClassName] = newString.trim(); - } - } - - normalizeElement(element) { - if (!(element instanceof Element)) return; - const classes = element.classList; - - for (let c = 0, clen = classes.length; c < clen; c++) { - if (!randClass.test(classes[c])) continue; - const match = classes[c].match(randClass)[1]; - const newClass = match.split("-").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(""); - element.classList.add(`${normalizedPrefix}-${newClass}`); - } - - for (const child of element.children) this.normalizeElement(child); - } - - revertElement(element) { - if (!(element instanceof Element)) return; - if (element.children && element.children.length) this.revertElement(element.children[0]); - if (element.nextElementSibling) this.revertElement(element.nextElementSibling); - const classes = element.classList; - const toRemove = []; - - for (let c = 0; c < classes.length; c++) { - if (classes[c].startsWith(`${normalizedPrefix}-`)) toRemove.push(classes[c]); - } - - element.classList.remove(...toRemove); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst normalizedPrefix = \"da\";\nconst randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$`);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ClassNormalizer extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get id() {\n return \"classNormalizer\";\n }\n\n get category() {\n return \"general\";\n }\n\n get name() {\n return \"ClassNormalizer\";\n }\n\n enabled() {\n if (this.hasPatched) return;\n this.patchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.normalizeElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = true;\n }\n\n disabled() {\n if (!this.hasPatched) return;\n this.unpatchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.revertElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = false;\n }\n\n patchClassModules(modules) {\n for (const module of modules) {\n this.patchClassModule(normalizedPrefix, module);\n }\n }\n\n unpatchClassModules(modules) {\n for (const module of modules) {\n this.unpatchClassModule(normalizedPrefix, module);\n }\n }\n\n shouldIgnore(value) {\n if (!isNaN(value)) return true;\n if (value.endsWith(\"px\") || value.endsWith(\"ch\") || value.endsWith(\"em\") || value.endsWith(\"ms\")) return true;\n if (value.startsWith(\"layerContainer-\")) return true;\n if (value.startsWith(\"#\") && (value.length == 7 || value.length == 4)) return true;\n if (value.includes(\"calc(\") || value.includes(\"rgba\")) return true;\n return false;\n }\n\n moduleFilter(module) {\n if (typeof module !== \"object\" || Array.isArray(module)) return false;\n if (module.__esModule) return false;\n if (!Object.keys(module).length) return false;\n\n for (const baseClassName in module) {\n const value = module[baseClassName];\n if (typeof value !== \"string\") return false;\n if (this.shouldIgnore(value)) continue;\n if (value.split(\"-\").length === 1) return false;\n if (!randClass.test(value.split(\" \")[0])) return false;\n }\n\n return true;\n }\n\n patchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n const match = normalClass.match(randClass)[1];\n if (!match) continue; // Shouldn't ever happen since they passed the moduleFilter, but you never know\n\n const camelCase = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n classNames[baseClassName] += ` ${componentName}-${camelCase}`;\n }\n }\n }\n\n unpatchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n let newString = \"\";\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n if (normalClass.startsWith(`${componentName}-`)) continue;\n newString += ` ${normalClass}`;\n }\n\n classNames[baseClassName] = newString.trim();\n }\n }\n\n normalizeElement(element) {\n if (!(element instanceof Element)) return;\n const classes = element.classList;\n\n for (let c = 0, clen = classes.length; c < clen; c++) {\n if (!randClass.test(classes[c])) continue;\n const match = classes[c].match(randClass)[1];\n const newClass = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n element.classList.add(`${normalizedPrefix}-${newClass}`);\n }\n\n for (const child of element.children) this.normalizeElement(child);\n }\n\n revertElement(element) {\n if (!(element instanceof Element)) return;\n if (element.children && element.children.length) this.revertElement(element.children[0]);\n if (element.nextElementSibling) this.revertElement(element.nextElementSibling);\n const classes = element.classList;\n const toRemove = [];\n\n for (let c = 0; c < classes.length; c++) {\n if (classes[c].startsWith(`${normalizedPrefix}-`)) toRemove.push(classes[c]);\n }\n\n element.classList.remove(...toRemove);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NsYXNzbm9ybWFsaXplci5qcz9kZDc4Il0sIm5hbWVzIjpbIm5vcm1hbGl6ZWRQcmVmaXgiLCJyYW5kQ2xhc3MiLCJSZWdFeHAiLCJDbGFzc05vcm1hbGl6ZXIiLCJCdWlsdGluIiwiaWQiLCJjYXRlZ29yeSIsIm5hbWUiLCJlbmFibGVkIiwiaGFzUGF0Y2hlZCIsInBhdGNoQ2xhc3NNb2R1bGVzIiwiV2VicGFja01vZHVsZXMiLCJnZXRNb2R1bGVzIiwibW9kdWxlRmlsdGVyIiwiYmluZCIsIm5vcm1hbGl6ZUVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJkaXNhYmxlZCIsInVucGF0Y2hDbGFzc01vZHVsZXMiLCJyZXZlcnRFbGVtZW50IiwibW9kdWxlcyIsIm1vZHVsZSIsInBhdGNoQ2xhc3NNb2R1bGUiLCJ1bnBhdGNoQ2xhc3NNb2R1bGUiLCJzaG91bGRJZ25vcmUiLCJ2YWx1ZSIsImlzTmFOIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfX2VzTW9kdWxlIiwiT2JqZWN0Iiwia2V5cyIsImJhc2VDbGFzc05hbWUiLCJzcGxpdCIsInRlc3QiLCJjb21wb25lbnROYW1lIiwiY2xhc3NOYW1lcyIsImNsYXNzTGlzdCIsIm5vcm1hbENsYXNzIiwibWF0Y2giLCJjYW1lbENhc2UiLCJtYXAiLCJzIiwiaSIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJqb2luIiwibmV3U3RyaW5nIiwidHJpbSIsImVsZW1lbnQiLCJFbGVtZW50IiwiY2xhc3NlcyIsImMiLCJjbGVuIiwibmV3Q2xhc3MiLCJhZGQiLCJjaGlsZCIsImNoaWxkcmVuIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwidG9SZW1vdmUiLCJwdXNoIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsTUFBTUEsZ0JBQWdC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QixFQUFvQzJCLENBQUMsRUFBckMsRUFBeUM7QUFDckMsVUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAsQ0FBVzVCLFVBQVgsQ0FBdUIsR0FBRTdCLGdCQUFpQixHQUExQyxDQUFKLEVBQW1EZ0UsUUFBUSxDQUFDQyxJQUFULENBQWNULE9BQU8sQ0FBQ0MsQ0FBRCxDQUFyQjtBQUN0RDs7QUFDREgsV0FBTyxDQUFDWixTQUFSLENBQWtCd0IsTUFBbEIsQ0FBeUIsR0FBR0YsUUFBNUI7QUFDSDs7QUF6R29ELENBQTFDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY2xhc3Nub3JtYWxpemVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge1dlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY29uc3Qgbm9ybWFsaXplZFByZWZpeCA9IFwiZGFcIjtcclxuY29uc3QgcmFuZENsYXNzID0gbmV3IFJlZ0V4cChgXig/ISR7bm9ybWFsaXplZFByZWZpeH0tKSgoPzpbQS1aYS16XXxbMC05XXwtKSspLSg/OltBLVphLXpdfFswLTldfC18Xyl7Nn0kYCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ2xhc3NOb3JtYWxpemVyIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiY2xhc3NOb3JtYWxpemVyXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJDbGFzc05vcm1hbGl6ZXJcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5oYXNQYXRjaGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wYXRjaENsYXNzTW9kdWxlcyhXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGVzKHRoaXMubW9kdWxlRmlsdGVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZUVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikpO1xyXG4gICAgICAgIHRoaXMuaGFzUGF0Y2hlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc1BhdGNoZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnVucGF0Y2hDbGFzc01vZHVsZXMoV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlcyh0aGlzLm1vZHVsZUZpbHRlci5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5yZXZlcnRFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjYXBwLW1vdW50XCIpKTtcclxuICAgICAgICB0aGlzLmhhc1BhdGNoZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaENsYXNzTW9kdWxlcyhtb2R1bGVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbW9kdWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLnBhdGNoQ2xhc3NNb2R1bGUobm9ybWFsaXplZFByZWZpeCwgbW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdW5wYXRjaENsYXNzTW9kdWxlcyhtb2R1bGVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbW9kdWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLnVucGF0Y2hDbGFzc01vZHVsZShub3JtYWxpemVkUHJlZml4LCBtb2R1bGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG91bGRJZ25vcmUodmFsdWUpIHtcclxuICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKFwicHhcIikgfHwgdmFsdWUuZW5kc1dpdGgoXCJjaFwiKSB8fCB2YWx1ZS5lbmRzV2l0aChcImVtXCIpIHx8IHZhbHVlLmVuZHNXaXRoKFwibXNcIikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwibGF5ZXJDb250YWluZXItXCIpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aChcIiNcIikgJiYgKHZhbHVlLmxlbmd0aCA9PSA3IHx8IHZhbHVlLmxlbmd0aCA9PSA0KSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKFwiY2FsYyhcIikgfHwgdmFsdWUuaW5jbHVkZXMoXCJyZ2JhXCIpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbW9kdWxlRmlsdGVyKG1vZHVsZSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkobW9kdWxlKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChtb2R1bGUuX19lc01vZHVsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmICghT2JqZWN0LmtleXMobW9kdWxlKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGJhc2VDbGFzc05hbWUgaW4gbW9kdWxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbW9kdWxlW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZElnbm9yZSh2YWx1ZSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUuc3BsaXQoXCItXCIpLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoIXJhbmRDbGFzcy50ZXN0KHZhbHVlLnNwbGl0KFwiIFwiKVswXSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoQ2xhc3NNb2R1bGUoY29tcG9uZW50TmFtZSwgY2xhc3NOYW1lcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgYmFzZUNsYXNzTmFtZSBpbiBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2xhc3NOYW1lc1tiYXNlQ2xhc3NOYW1lXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkSWdub3JlKHZhbHVlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTGlzdCA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBub3JtYWxDbGFzcyBvZiBjbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gbm9ybWFsQ2xhc3MubWF0Y2gocmFuZENsYXNzKVsxXTtcclxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpIGNvbnRpbnVlOyAvLyBTaG91bGRuJ3QgZXZlciBoYXBwZW4gc2luY2UgdGhleSBwYXNzZWQgdGhlIG1vZHVsZUZpbHRlciwgYnV0IHlvdSBuZXZlciBrbm93XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYW1lbENhc2UgPSBtYXRjaC5zcGxpdChcIi1cIikubWFwKChzLCBpKSA9PiBpID8gc1swXS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSA6IHMpLmpvaW4oXCJcIik7XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdICs9IGAgJHtjb21wb25lbnROYW1lfS0ke2NhbWVsQ2FzZX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVucGF0Y2hDbGFzc01vZHVsZShjb21wb25lbnROYW1lLCBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IG5ld1N0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTGlzdCA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBub3JtYWxDbGFzcyBvZiBjbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIGlmIChub3JtYWxDbGFzcy5zdGFydHNXaXRoKGAke2NvbXBvbmVudE5hbWV9LWApKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIG5ld1N0cmluZyArPSBgICR7bm9ybWFsQ2xhc3N9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdID0gbmV3U3RyaW5nLnRyaW0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbm9ybWFsaXplRWxlbWVudChlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwLCBjbGVuID0gY2xhc3Nlcy5sZW5ndGg7IGMgPCBjbGVuOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKCFyYW5kQ2xhc3MudGVzdChjbGFzc2VzW2NdKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gY2xhc3Nlc1tjXS5tYXRjaChyYW5kQ2xhc3MpWzFdO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdDbGFzcyA9IG1hdGNoLnNwbGl0KFwiLVwiKS5tYXAoKHMsIGkpID0+IGkgPyBzWzBdLnRvVXBwZXJDYXNlKCkgKyBzLnNsaWNlKDEpIDogcykuam9pbihcIlwiKTtcclxuICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGAke25vcm1hbGl6ZWRQcmVmaXh9LSR7bmV3Q2xhc3N9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZWxlbWVudC5jaGlsZHJlbikgdGhpcy5ub3JtYWxpemVFbGVtZW50KGNoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZlcnRFbGVtZW50KGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybjtcclxuICAgICAgICBpZiAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgIGlmIChlbGVtZW50Lm5leHRFbGVtZW50U2libGluZykgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKTtcclxuICAgICAgICBjb25zdCBjbGFzc2VzID0gZWxlbWVudC5jbGFzc0xpc3Q7XHJcbiAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IGNsYXNzZXMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKGNsYXNzZXNbY10uc3RhcnRzV2l0aChgJHtub3JtYWxpemVkUHJlZml4fS1gKSkgdG9SZW1vdmUucHVzaChjbGFzc2VzW2NdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLnRvUmVtb3ZlKTtcclxuICAgIH1cclxuXHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/classnormalizer.js\n"); /***/ }), @@ -364,63 +131,7 @@ const randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-( /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - -const MessageContent = modules__WEBPACK_IMPORTED_MODULE_1__["WebpackModules"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty("disableButtons")); -/* harmony default export */ __webpack_exports__["default"] = (new class ColoredText extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "ColoredText"; - } - - get category() { - return "appearance"; - } - - get id() { - return "coloredText"; - } - - enabled() { - this.injectColoredText(); - } - - disabled() { - if (!this.cancelColoredText) return; - this.cancelColoredText(); - delete this.cancelColoredText; - } - - injectColoredText() { - if (this.cancelColoredText) return; - this.cancelColoredText = modules__WEBPACK_IMPORTED_MODULE_1__["Utilities"].monkeyPatch(MessageContent.prototype, "render", { - after: data => { - modules__WEBPACK_IMPORTED_MODULE_1__["Utilities"].monkeyPatch(data.returnValue.props, "children", { - silent: true, - after: ({ - returnValue - }) => { - const markup = returnValue.props.children[1]; - const roleColor = data.thisObject.props.message.colorString; - if (markup && roleColor) markup.props.style = { - color: roleColor - }; - return returnValue; - } - }); - } - }); - } - - removeColoredText() { - document.querySelectorAll(".markup-2BOw-j").forEach(elem => { - elem.style.setProperty("color", ""); - }); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst MessageContent = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ColoredText extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"ColoredText\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"coloredText\";\n }\n\n enabled() {\n this.injectColoredText();\n }\n\n disabled() {\n if (!this.cancelColoredText) return;\n this.cancelColoredText();\n delete this.cancelColoredText;\n }\n\n injectColoredText() {\n if (this.cancelColoredText) return;\n this.cancelColoredText = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(MessageContent.prototype, \"render\", {\n after: data => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(data.returnValue.props, \"children\", {\n silent: true,\n after: ({\n returnValue\n }) => {\n const markup = returnValue.props.children[1];\n const roleColor = data.thisObject.props.message.colorString;\n if (markup && roleColor) markup.props.style = {\n color: roleColor\n };\n return returnValue;\n }\n });\n }\n });\n }\n\n removeColoredText() {\n document.querySelectorAll(\".markup-2BOw-j\").forEach(elem => {\n elem.style.setProperty(\"color\", \"\");\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NvbG9yZWR0ZXh0LmpzP2RlMDkiXSwibmFtZXMiOlsiTWVzc2FnZUNvbnRlbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJoYXNPd25Qcm9wZXJ0eSIsIkNvbG9yZWRUZXh0IiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsImluamVjdENvbG9yZWRUZXh0IiwiZGlzYWJsZWQiLCJjYW5jZWxDb2xvcmVkVGV4dCIsIlV0aWxpdGllcyIsIm1vbmtleVBhdGNoIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwicmV0dXJuVmFsdWUiLCJwcm9wcyIsInNpbGVudCIsIm1hcmt1cCIsImNoaWxkcmVuIiwicm9sZUNvbG9yIiwidGhpc09iamVjdCIsIm1lc3NhZ2UiLCJjb2xvclN0cmluZyIsInN0eWxlIiwiY29sb3IiLCJyZW1vdmVDb2xvcmVkVGV4dCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJlbGVtIiwic2V0UHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxNQUFNQSxjQUFjLEdBQUdDLHNEQUFjLENBQUNDLFNBQWYsQ0FBeUJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxZQUFGLElBQWtCRCxDQUFDLENBQUNDLFlBQUYsQ0FBZUMsY0FBZixDQUE4QixnQkFBOUIsQ0FBaEQsQ0FBdkI7QUFFZSxtRUFBSSxNQUFNQyxXQUFOLFNBQTBCQyx3REFBMUIsQ0FBa0M7QUFDakQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxhQUFQO0FBQXNCOztBQUNsQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ3JDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFFaENDLFNBQU8sR0FBRztBQUNOLFNBQUtDLGlCQUFMO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFFBQUksQ0FBQyxLQUFLQyxpQkFBVixFQUE2QjtBQUM3QixTQUFLQSxpQkFBTDtBQUNBLFdBQU8sS0FBS0EsaUJBQVo7QUFDSDs7QUFFREYsbUJBQWlCLEdBQUc7QUFDaEIsUUFBSSxLQUFLRSxpQkFBVCxFQUE0QjtBQUU1QixTQUFLQSxpQkFBTCxHQUF5QkMsaURBQVMsQ0FBQ0MsV0FBVixDQUFzQmhCLGNBQWMsQ0FBQ2lCLFNBQXJDLEVBQWdELFFBQWhELEVBQTBEO0FBQUNDLFdBQUssRUFBR0MsSUFBRCxJQUFVO0FBQ2pHSix5REFBUyxDQUFDQyxXQUFWLENBQXNCRyxJQUFJLENBQUNDLFdBQUwsQ0FBaUJDLEtBQXZDLEVBQThDLFVBQTlDLEVBQTBEO0FBQUNDLGdCQUFNLEVBQUUsSUFBVDtBQUFlSixlQUFLLEVBQUUsQ0FBQztBQUFDRTtBQUFELFdBQUQsS0FBbUI7QUFDL0Ysa0JBQU1HLE1BQU0sR0FBR0gsV0FBVyxDQUFDQyxLQUFaLENBQWtCRyxRQUFsQixDQUEyQixDQUEzQixDQUFmO0FBQ0Esa0JBQU1DLFNBQVMsR0FBR04sSUFBSSxDQUFDTyxVQUFMLENBQWdCTCxLQUFoQixDQUFzQk0sT0FBdEIsQ0FBOEJDLFdBQWhEO0FBQ0EsZ0JBQUlMLE1BQU0sSUFBSUUsU0FBZCxFQUF5QkYsTUFBTSxDQUFDRixLQUFQLENBQWFRLEtBQWIsR0FBcUI7QUFBQ0MsbUJBQUssRUFBRUw7QUFBUixhQUFyQjtBQUN6QixtQkFBT0wsV0FBUDtBQUNIO0FBTHlELFNBQTFEO0FBTUg7QUFQa0YsS0FBMUQsQ0FBekI7QUFRSDs7QUFFRFcsbUJBQWlCLEdBQUc7QUFDaEJDLFlBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsZ0JBQTFCLEVBQTRDQyxPQUE1QyxDQUFvREMsSUFBSSxJQUFJO0FBQ3hEQSxVQUFJLENBQUNOLEtBQUwsQ0FBV08sV0FBWCxDQUF1QixPQUF2QixFQUFnQyxFQUFoQztBQUNILEtBRkQ7QUFHSDs7QUFoQ2dELENBQXRDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY29sb3JlZHRleHQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzLCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IE1lc3NhZ2VDb250ZW50ID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5kZWZhdWx0UHJvcHMuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlQnV0dG9uc1wiKSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ29sb3JlZFRleHQgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkNvbG9yZWRUZXh0XCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFwcGVhcmFuY2VcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiY29sb3JlZFRleHRcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICB0aGlzLmluamVjdENvbG9yZWRUZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbmNlbENvbG9yZWRUZXh0KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYW5jZWxDb2xvcmVkVGV4dCgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNhbmNlbENvbG9yZWRUZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdENvbG9yZWRUZXh0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNhbmNlbENvbG9yZWRUZXh0KSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2FuY2VsQ29sb3JlZFRleHQgPSBVdGlsaXRpZXMubW9ua2V5UGF0Y2goTWVzc2FnZUNvbnRlbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5tb25rZXlQYXRjaChkYXRhLnJldHVyblZhbHVlLnByb3BzLCBcImNoaWxkcmVuXCIsIHtzaWxlbnQ6IHRydWUsIGFmdGVyOiAoe3JldHVyblZhbHVlfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFya3VwID0gcmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW5bMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb2xlQ29sb3IgPSBkYXRhLnRoaXNPYmplY3QucHJvcHMubWVzc2FnZS5jb2xvclN0cmluZztcclxuICAgICAgICAgICAgICAgIGlmIChtYXJrdXAgJiYgcm9sZUNvbG9yKSBtYXJrdXAucHJvcHMuc3R5bGUgPSB7Y29sb3I6IHJvbGVDb2xvcn07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIH19KTtcclxuICAgICAgICB9fSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ29sb3JlZFRleHQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrdXAtMkJPdy1qXCIpLmZvckVhY2goZWxlbSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBcIlwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/coloredtext.js\n"); /***/ }), @@ -432,31 +143,7 @@ const MessageContent = modules__WEBPACK_IMPORTED_MODULE_1__["WebpackModules"].ge /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); - -/* harmony default export */ __webpack_exports__["default"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "DarkMode"; - } - - get category() { - return "appearance"; - } - - get id() { - return "darkMode"; - } - - enabled() { - $("#app-mount").addClass("bda-dark").addClass("bd-dark"); - } - - disabled() { - $("#app-mount").removeClass("bda-dark").removeClass("bd-dark"); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DarkMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"darkMode\";\n }\n\n enabled() {\n $(\"#app-mount\").addClass(\"bda-dark\").addClass(\"bd-dark\");\n }\n\n disabled() {\n $(\"#app-mount\").removeClass(\"bda-dark\").removeClass(\"bd-dark\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Rhcmttb2RlLmpzPzVkZGUiXSwibmFtZXMiOlsiRGFya01vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJlbmFibGVkIiwiJCIsImFkZENsYXNzIiwiZGlzYWJsZWQiLCJyZW1vdmVDbGFzcyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsUUFBTixTQUF1QkMsd0RBQXZCLENBQStCO0FBQzlDLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFDL0IsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFVBQVA7QUFBbUI7O0FBRTdCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQkMsUUFBaEIsQ0FBeUIsVUFBekIsRUFBcUNBLFFBQXJDLENBQThDLFNBQTlDO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQRixLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCRyxXQUFoQixDQUE0QixVQUE1QixFQUF3Q0EsV0FBeEMsQ0FBb0QsU0FBcEQ7QUFDSDs7QUFYNkMsQ0FBbkMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9kYXJrbW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRGFya01vZGVcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiYXBwZWFyYW5jZVwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJkYXJrTW9kZVwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoXCIjYXBwLW1vdW50XCIpLmFkZENsYXNzKFwiYmRhLWRhcmtcIikuYWRkQ2xhc3MoXCJiZC1kYXJrXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoXCIjYXBwLW1vdW50XCIpLnJlbW92ZUNsYXNzKFwiYmRhLWRhcmtcIikucmVtb3ZlQ2xhc3MoXCJiZC1kYXJrXCIpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/darkmode.js\n"); /***/ }), @@ -468,129 +155,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - -/* harmony default export */ __webpack_exports__["default"] = (new class DeveloperMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "DeveloperMode"; - } - - get category() { - return "developer"; - } - - get id() { - return "developerMode"; - } - - get selectorModeID() { - return "copySelector"; - } - - get selectorMode() { - return this.get(this.selectorModeID); - } - - constructor() { - super(); - this.enableSelectors = this.enableSelectors.bind(this); - this.disableSelectors = this.disableSelectors.bind(this); - } - - enabled() { - $(window).on("keydown.bdDevmode", e => { - if (e.which === 119 || e.which == 118) { - //F8 - this.log("Debugger Activated"); - debugger; // eslint-disable-line no-debugger - } - }); - if (this.selectorMode) this.enableSelectors(); - this.selectorCancel = this.registerSetting(this.selectorModeID, this.enableSelectors, this.disableSelectors); - } - - disabled() { - $(window).off("keydown.bdDevmode"); - if (this.selectorMode) this.disableSelectors(); - if (this.selectorCancel) this.selectorCancel(); - } - - enableSelectors() { - $(document).on("contextmenu.bdDevmode", e => { - this.lastSelector = this.getSelector(e.toElement); - - const attach = () => { - let cm = $(".contextMenu-HLZMGh"); - - if (cm.length <= 0) { - cm = $("
"); - cm.addClass($(".app, .app-2rEoOp").hasClass("theme-dark") ? "theme-dark" : "theme-light"); - cm.appendTo(".app, .app-2rEoOp"); - cm.css("top", e.clientY); - cm.css("left", e.clientX); - $(document).on("click.bdDevModeCtx", () => { - cm.remove(); - $(document).off(".bdDevModeCtx"); - }); - $(document).on("contextmenu.bdDevModeCtx", () => { - cm.remove(); - $(document).off(".bdDevModeCtx"); - }); - $(document).on("keyup.bdDevModeCtx", e => { - if (e.keyCode === 27) { - cm.remove(); - $(document).off(".bdDevModeCtx"); - } - }); - } - - const cmo = $("
", { - "class": "itemGroup-1tL0uz" - }); - const cmi = $("
", { - "class": "item-1Yvehc", - "click": () => { - modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].ElectronModule.copy(this.lastSelector); - cm.hide(); - } - }).append($("", { - text: "Copy Selector" - })); - cmo.append(cmi); - cm.append(cmo); - if (cm.hasClass("undefined")) cm.css("top", "-=" + cmo.outerHeight()); - }; - - setImmediate(attach); - e.stopPropagation(); - }); - } - - disableSelectors() { - $(document).off("contextmenu.bdDevmode"); - $(document).off("contextmenu.bdDevModeCtx"); - } - - getRules(element, css = element.ownerDocument.styleSheets) { - // return [].concat(...[...css].map(s => [...s.cssRules || []])).filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(", ").length < 8); - const sheets = [...css].filter(s => !s.href || !s.href.includes("BetterDiscordApp")); - const rules = sheets.map(s => [...(s.cssRules || [])]).flat(); - const elementRules = rules.filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(", ").length < 8 && !r.selectorText.split(", ").includes("*")); - return elementRules; - } - - getSelector(element) { - if (element.id) return `#${element.id}`; - const rules = this.getRules(element); - const latestRule = rules[rules.length - 1]; - if (latestRule) return latestRule.selectorText;else if (element.classList.length) return `.${Array.from(element.classList).join(".")}`; - return `.${Array.from(element.parentElement.classList).join(".")}`; - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DeveloperMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DeveloperMode\";\n }\n\n get category() {\n return \"developer\";\n }\n\n get id() {\n return \"developerMode\";\n }\n\n get selectorModeID() {\n return \"copySelector\";\n }\n\n get selectorMode() {\n return this.get(this.selectorModeID);\n }\n\n constructor() {\n super();\n this.enableSelectors = this.enableSelectors.bind(this);\n this.disableSelectors = this.disableSelectors.bind(this);\n }\n\n enabled() {\n $(window).on(\"keydown.bdDevmode\", e => {\n if (e.which === 119 || e.which == 118) {\n //F8\n this.log(\"Debugger Activated\");\n debugger; // eslint-disable-line no-debugger\n }\n });\n if (this.selectorMode) this.enableSelectors();\n this.selectorCancel = this.registerSetting(this.selectorModeID, this.enableSelectors, this.disableSelectors);\n }\n\n disabled() {\n $(window).off(\"keydown.bdDevmode\");\n if (this.selectorMode) this.disableSelectors();\n if (this.selectorCancel) this.selectorCancel();\n }\n\n enableSelectors() {\n $(document).on(\"contextmenu.bdDevmode\", e => {\n this.lastSelector = this.getSelector(e.toElement);\n\n const attach = () => {\n let cm = $(\".contextMenu-HLZMGh\");\n\n if (cm.length <= 0) {\n cm = $(\"
\");\n cm.addClass($(\".app, .app-2rEoOp\").hasClass(\"theme-dark\") ? \"theme-dark\" : \"theme-light\");\n cm.appendTo(\".app, .app-2rEoOp\");\n cm.css(\"top\", e.clientY);\n cm.css(\"left\", e.clientX);\n $(document).on(\"click.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"contextmenu.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"keyup.bdDevModeCtx\", e => {\n if (e.keyCode === 27) {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n }\n });\n }\n\n const cmo = $(\"
\", {\n \"class\": \"itemGroup-1tL0uz\"\n });\n const cmi = $(\"
\", {\n \"class\": \"item-1Yvehc\",\n \"click\": () => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ElectronModule.copy(this.lastSelector);\n cm.hide();\n }\n }).append($(\"\", {\n text: \"Copy Selector\"\n }));\n cmo.append(cmi);\n cm.append(cmo);\n if (cm.hasClass(\"undefined\")) cm.css(\"top\", \"-=\" + cmo.outerHeight());\n };\n\n setImmediate(attach);\n e.stopPropagation();\n });\n }\n\n disableSelectors() {\n $(document).off(\"contextmenu.bdDevmode\");\n $(document).off(\"contextmenu.bdDevModeCtx\");\n }\n\n getRules(element, css = element.ownerDocument.styleSheets) {\n // return [].concat(...[...css].map(s => [...s.cssRules || []])).filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8);\n const sheets = [...css].filter(s => !s.href || !s.href.includes(\"BetterDiscordApp\"));\n const rules = sheets.map(s => [...(s.cssRules || [])]).flat();\n const elementRules = rules.filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8 && !r.selectorText.split(\", \").includes(\"*\"));\n return elementRules;\n }\n\n getSelector(element) {\n if (element.id) return `#${element.id}`;\n const rules = this.getRules(element);\n const latestRule = rules[rules.length - 1];\n if (latestRule) return latestRule.selectorText;else if (element.classList.length) return `.${Array.from(element.classList).join(\".\")}`;\n return `.${Array.from(element.parentElement.classList).join(\".\")}`;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2RldmVsb3Blcm1vZGUuanM/NjY2OSJdLCJuYW1lcyI6WyJEZXZlbG9wZXJNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic2VsZWN0b3JNb2RlSUQiLCJzZWxlY3Rvck1vZGUiLCJnZXQiLCJjb25zdHJ1Y3RvciIsImVuYWJsZVNlbGVjdG9ycyIsImJpbmQiLCJkaXNhYmxlU2VsZWN0b3JzIiwiZW5hYmxlZCIsIiQiLCJ3aW5kb3ciLCJvbiIsImUiLCJ3aGljaCIsImxvZyIsInNlbGVjdG9yQ2FuY2VsIiwicmVnaXN0ZXJTZXR0aW5nIiwiZGlzYWJsZWQiLCJvZmYiLCJkb2N1bWVudCIsImxhc3RTZWxlY3RvciIsImdldFNlbGVjdG9yIiwidG9FbGVtZW50IiwiYXR0YWNoIiwiY20iLCJsZW5ndGgiLCJhZGRDbGFzcyIsImhhc0NsYXNzIiwiYXBwZW5kVG8iLCJjc3MiLCJjbGllbnRZIiwiY2xpZW50WCIsInJlbW92ZSIsImtleUNvZGUiLCJjbW8iLCJjbWkiLCJEaXNjb3JkTW9kdWxlcyIsIkVsZWN0cm9uTW9kdWxlIiwiY29weSIsImhpZGUiLCJhcHBlbmQiLCJ0ZXh0Iiwib3V0ZXJIZWlnaHQiLCJzZXRJbW1lZGlhdGUiLCJzdG9wUHJvcGFnYXRpb24iLCJnZXRSdWxlcyIsImVsZW1lbnQiLCJvd25lckRvY3VtZW50Iiwic3R5bGVTaGVldHMiLCJzaGVldHMiLCJmaWx0ZXIiLCJzIiwiaHJlZiIsImluY2x1ZGVzIiwicnVsZXMiLCJtYXAiLCJjc3NSdWxlcyIsImZsYXQiLCJlbGVtZW50UnVsZXMiLCJyIiwic2VsZWN0b3JUZXh0IiwibWF0Y2hlcyIsInN0eWxlIiwic3BsaXQiLCJsYXRlc3RSdWxlIiwiY2xhc3NMaXN0IiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInBhcmVudEVsZW1lbnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxtRUFB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QUFDQSxLQUFLLENBQUM3QixNQUFOLEdBQWUsQ0FBaEIsQ0FBeEI7QUFDQSxRQUFJdUMsVUFBSixFQUFnQixPQUFPQSxVQUFVLENBQUNKLFlBQWxCLENBQWhCLEtBQ0ssSUFBSWQsT0FBTyxDQUFDbUIsU0FBUixDQUFrQnhDLE1BQXRCLEVBQThCLE9BQVEsSUFBR3lDLEtBQUssQ0FBQ0MsSUFBTixDQUFXckIsT0FBTyxDQUFDbUIsU0FBbkIsRUFBOEJHLElBQTlCLENBQW1DLEdBQW5DLENBQXdDLEVBQW5EO0FBQ25DLFdBQVEsSUFBR0YsS0FBSyxDQUFDQyxJQUFOLENBQVdyQixPQUFPLENBQUN1QixhQUFSLENBQXNCSixTQUFqQyxFQUE0Q0csSUFBNUMsQ0FBaUQsR0FBakQsQ0FBc0QsRUFBakU7QUFDSDs7QUFsR2tELENBQXhDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvZGV2ZWxvcGVybW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEaXNjb3JkTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEZXZlbG9wZXJNb2RlIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJEZXZlbG9wZXJNb2RlXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImRldmVsb3BlclwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJkZXZlbG9wZXJNb2RlXCI7fVxyXG4gICAgZ2V0IHNlbGVjdG9yTW9kZUlEKCkge3JldHVybiBcImNvcHlTZWxlY3RvclwiO31cclxuICAgIGdldCBzZWxlY3Rvck1vZGUoKSB7cmV0dXJuIHRoaXMuZ2V0KHRoaXMuc2VsZWN0b3JNb2RlSUQpO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlU2VsZWN0b3JzID0gdGhpcy5lbmFibGVTZWxlY3RvcnMuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVTZWxlY3RvcnMgPSB0aGlzLmRpc2FibGVTZWxlY3RvcnMuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQod2luZG93KS5vbihcImtleWRvd24uYmREZXZtb2RlXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlLndoaWNoID09PSAxMTkgfHwgZS53aGljaCA9PSAxMTgpIHsvL0Y4XHJcbiAgICAgICAgICAgICAgIHRoaXMubG9nKFwiRGVidWdnZXIgQWN0aXZhdGVkXCIpO1xyXG4gICAgICAgICAgICAgICBkZWJ1Z2dlcjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1kZWJ1Z2dlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3JNb2RlKSB0aGlzLmVuYWJsZVNlbGVjdG9ycygpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0b3JDYW5jZWwgPSB0aGlzLnJlZ2lzdGVyU2V0dGluZyh0aGlzLnNlbGVjdG9yTW9kZUlELCB0aGlzLmVuYWJsZVNlbGVjdG9ycywgdGhpcy5kaXNhYmxlU2VsZWN0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICAkKHdpbmRvdykub2ZmKFwia2V5ZG93bi5iZERldm1vZGVcIik7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3JNb2RlKSB0aGlzLmRpc2FibGVTZWxlY3RvcnMoKTtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RvckNhbmNlbCkgdGhpcy5zZWxlY3RvckNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZVNlbGVjdG9ycygpIHtcclxuICAgICAgICAkKGRvY3VtZW50KS5vbihcImNvbnRleHRtZW51LmJkRGV2bW9kZVwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxhc3RTZWxlY3RvciA9IHRoaXMuZ2V0U2VsZWN0b3IoZS50b0VsZW1lbnQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICBsZXQgY20gPSAkKFwiLmNvbnRleHRNZW51LUhMWk1HaFwiKTtcclxuICAgICAgICAgICAgICAgaWYgKGNtLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICBjbSA9ICQoXCI8ZGl2IGNsYXNzPVxcXCJjb250ZXh0TWVudS1ITFpNR2ggYmQtY29udGV4dC1tZW51XFxcIj48L2Rpdj5cIik7XHJcbiAgICAgICAgICAgICAgICAgICBjbS5hZGRDbGFzcygkKFwiLmFwcCwgLmFwcC0yckVvT3BcIikuaGFzQ2xhc3MoXCJ0aGVtZS1kYXJrXCIpID8gXCJ0aGVtZS1kYXJrXCIgOiBcInRoZW1lLWxpZ2h0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgY20uYXBwZW5kVG8oXCIuYXBwLCAuYXBwLTJyRW9PcFwiKTtcclxuICAgICAgICAgICAgICAgICAgIGNtLmNzcyhcInRvcFwiLCBlLmNsaWVudFkpO1xyXG4gICAgICAgICAgICAgICAgICAgY20uY3NzKFwibGVmdFwiLCBlLmNsaWVudFgpO1xyXG4gICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGljay5iZERldk1vZGVDdHhcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIi5iZERldk1vZGVDdHhcIik7XHJcbiAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY29udGV4dG1lbnUuYmREZXZNb2RlQ3R4XCIsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImtleXVwLmJkRGV2TW9kZUN0eFwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICBjb25zdCBjbW8gPSAkKFwiPGRpdi8+XCIsIHtcclxuICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGVtR3JvdXAtMXRMMHV6XCJcclxuICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNtaSA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0ZW0tMVl2ZWhjXCIsXHJcbiAgICAgICAgICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5FbGVjdHJvbk1vZHVsZS5jb3B5KHRoaXMubGFzdFNlbGVjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIH0pLmFwcGVuZCgkKFwiPHNwYW4vPlwiLCB7dGV4dDogXCJDb3B5IFNlbGVjdG9yXCJ9KSk7XHJcbiAgICAgICAgICAgICAgIGNtby5hcHBlbmQoY21pKTtcclxuICAgICAgICAgICAgICAgY20uYXBwZW5kKGNtbyk7XHJcbiAgICAgICAgICAgICAgIGlmIChjbS5oYXNDbGFzcyhcInVuZGVmaW5lZFwiKSkgY20uY3NzKFwidG9wXCIsICBcIi09XCIgKyBjbW8ub3V0ZXJIZWlnaHQoKSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoYXR0YWNoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlU2VsZWN0b3JzKCkge1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9mZihcImNvbnRleHRtZW51LmJkRGV2bW9kZVwiKTtcclxuICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJjb250ZXh0bWVudS5iZERldk1vZGVDdHhcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVsZXMoZWxlbWVudCwgY3NzID0gZWxlbWVudC5vd25lckRvY3VtZW50LnN0eWxlU2hlZXRzKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIFtdLmNvbmNhdCguLi5bLi4uY3NzXS5tYXAocyA9PiBbLi4ucy5jc3NSdWxlcyB8fCBbXV0pKS5maWx0ZXIociA9PiByICYmIHIuc2VsZWN0b3JUZXh0ICYmIGVsZW1lbnQubWF0Y2hlcyhyLnNlbGVjdG9yVGV4dCkgJiYgci5zdHlsZS5sZW5ndGggJiYgci5zZWxlY3RvclRleHQuc3BsaXQoXCIsIFwiKS5sZW5ndGggPCA4KTtcclxuICAgICAgICBjb25zdCBzaGVldHMgPSBbLi4uY3NzXS5maWx0ZXIocyA9PiAhcy5ocmVmIHx8ICFzLmhyZWYuaW5jbHVkZXMoXCJCZXR0ZXJEaXNjb3JkQXBwXCIpKTtcclxuICAgICAgICBjb25zdCBydWxlcyA9IHNoZWV0cy5tYXAocyA9PiBbLi4uKHMuY3NzUnVsZXMgfHwgW10pXSkuZmxhdCgpO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRSdWxlcyA9IHJ1bGVzLmZpbHRlcihyID0+IHIgJiYgci5zZWxlY3RvclRleHQgJiYgZWxlbWVudC5tYXRjaGVzKHIuc2VsZWN0b3JUZXh0KSAmJiByLnN0eWxlLmxlbmd0aCAmJiByLnNlbGVjdG9yVGV4dC5zcGxpdChcIiwgXCIpLmxlbmd0aCA8IDggJiYgIXIuc2VsZWN0b3JUZXh0LnNwbGl0KFwiLCBcIikuaW5jbHVkZXMoXCIqXCIpKTtcclxuICAgICAgICByZXR1cm4gZWxlbWVudFJ1bGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlbGVjdG9yKGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCkgcmV0dXJuIGAjJHtlbGVtZW50LmlkfWA7XHJcbiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLmdldFJ1bGVzKGVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IGxhdGVzdFJ1bGUgPSBydWxlc1tydWxlcy5sZW5ndGggLSAxXTtcclxuICAgICAgICBpZiAobGF0ZXN0UnVsZSkgcmV0dXJuIGxhdGVzdFJ1bGUuc2VsZWN0b3JUZXh0O1xyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCkgcmV0dXJuIGAuJHtBcnJheS5mcm9tKGVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgICAgIHJldHVybiBgLiR7QXJyYXkuZnJvbShlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/developermode.js\n"); /***/ }), @@ -602,63 +167,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - - -/* harmony default export */ __webpack_exports__["default"] = (new class EmoteAutocaps extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "EmoteAutocapitalize"; - } - - get collection() { - return "emotes"; - } - - get category() { - return "general"; - } - - get id() { - return "autoCaps"; - } - - enabled() { - $("body").off(".bdac"); - $("body").on("keyup.bdac change.bdac paste.bdac", $(".channelTextArea-1LDbYG textarea:first"), () => { - const text = $(".channelTextArea-1LDbYG textarea:first").val(); - if (text == undefined) return; - const lastWord = text.split(" ").pop(); - - if (lastWord.length > 3) { - if (lastWord == "danSgame") return; - const ret = this.capitalize(lastWord.toLowerCase()); - - if (ret !== null && ret !== undefined) { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].insertText(modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].getTextArea()[0], text.replace(lastWord, ret)); - } - } - }); - } - - disabled() { - $("body").off(".bdac"); - } - - capitalize(value) { - const res = data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchGlobal; - - for (const p in res) { - if (res.hasOwnProperty(p) && value == (p + "").toLowerCase()) { - return p; - } - } - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteAutocaps extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteAutocapitalize\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"autoCaps\";\n }\n\n enabled() {\n $(\"body\").off(\".bdac\");\n $(\"body\").on(\"keyup.bdac change.bdac paste.bdac\", $(\".channelTextArea-1LDbYG textarea:first\"), () => {\n const text = $(\".channelTextArea-1LDbYG textarea:first\").val();\n if (text == undefined) return;\n const lastWord = text.split(\" \").pop();\n\n if (lastWord.length > 3) {\n if (lastWord == \"danSgame\") return;\n const ret = this.capitalize(lastWord.toLowerCase());\n\n if (ret !== null && ret !== undefined) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].insertText(modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].getTextArea()[0], text.replace(lastWord, ret));\n }\n }\n });\n }\n\n disabled() {\n $(\"body\").off(\".bdac\");\n }\n\n capitalize(value) {\n const res = data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchGlobal;\n\n for (const p in res) {\n if (res.hasOwnProperty(p) && value == (p + \"\").toLowerCase()) {\n return p;\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlYXV0b2NhcHMuanM/MTY0NyJdLCJuYW1lcyI6WyJFbW90ZUF1dG9jYXBzIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCIkIiwib2ZmIiwib24iLCJ0ZXh0IiwidmFsIiwidW5kZWZpbmVkIiwibGFzdFdvcmQiLCJzcGxpdCIsInBvcCIsImxlbmd0aCIsInJldCIsImNhcGl0YWxpemUiLCJ0b0xvd2VyQ2FzZSIsIlV0aWxpdGllcyIsImluc2VydFRleHQiLCJnZXRUZXh0QXJlYSIsInJlcGxhY2UiLCJkaXNhYmxlZCIsInZhbHVlIiwicmVzIiwiRW1vdGVzIiwiVHdpdGNoR2xvYmFsIiwicCIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLHFCQUFQO0FBQThCOztBQUMxQyxNQUFJQyxVQUFKLEdBQWlCO0FBQUMsV0FBTyxRQUFQO0FBQWlCOztBQUNuQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFNBQVA7QUFBa0I7O0FBQ2xDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFFN0JDLFNBQU8sR0FBRztBQUNOQyxLQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLEdBQVYsQ0FBYyxPQUFkO0FBQ0FELEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUUsRUFBVixDQUFhLG1DQUFiLEVBQWtERixDQUFDLENBQUMsd0NBQUQsQ0FBbkQsRUFBK0YsTUFBTTtBQUNqRyxZQUFNRyxJQUFJLEdBQUdILENBQUMsQ0FBQyx3Q0FBRCxDQUFELENBQTRDSSxHQUE1QyxFQUFiO0FBQ0EsVUFBSUQsSUFBSSxJQUFJRSxTQUFaLEVBQXVCO0FBRXZCLFlBQU1DLFFBQVEsR0FBR0gsSUFBSSxDQUFDSSxLQUFMLENBQVcsR0FBWCxFQUFnQkMsR0FBaEIsRUFBakI7O0FBQ0EsVUFBSUYsUUFBUSxDQUFDRyxNQUFULEdBQWtCLENBQXRCLEVBQXlCO0FBQ3JCLFlBQUlILFFBQVEsSUFBSSxVQUFoQixFQUE0QjtBQUM1QixjQUFNSSxHQUFHLEdBQUcsS0FBS0MsVUFBTCxDQUFnQkwsUUFBUSxDQUFDTSxXQUFULEVBQWhCLENBQVo7O0FBQ0EsWUFBSUYsR0FBRyxLQUFLLElBQVIsSUFBZ0JBLEdBQUcsS0FBS0wsU0FBNUIsRUFBdUM7QUFDbkNRLDJEQUFTLENBQUNDLFVBQVYsQ0FBcUJELGlEQUFTLENBQUNFLFdBQVYsR0FBd0IsQ0FBeEIsQ0FBckIsRUFBaURaLElBQUksQ0FBQ2EsT0FBTCxDQUFhVixRQUFiLEVBQXVCSSxHQUF2QixDQUFqRDtBQUNIO0FBQ0o7QUFDSixLQVpEO0FBYUg7O0FBRURPLFVBQVEsR0FBRztBQUNQakIsS0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVQyxHQUFWLENBQWMsT0FBZDtBQUNIOztBQUVEVSxZQUFVLENBQUNPLEtBQUQsRUFBUTtBQUNkLFVBQU1DLEdBQUcsR0FBR0MsMkNBQU0sQ0FBQ0MsWUFBbkI7O0FBQ0EsU0FBSyxNQUFNQyxDQUFYLElBQWdCSCxHQUFoQixFQUFxQjtBQUNqQixVQUFJQSxHQUFHLENBQUNJLGNBQUosQ0FBbUJELENBQW5CLEtBQXlCSixLQUFLLElBQUksQ0FBQ0ksQ0FBQyxHQUFHLEVBQUwsRUFBU1YsV0FBVCxFQUF0QyxFQUE4RDtBQUMxRCxlQUFPVSxDQUFQO0FBQ0g7QUFDSjtBQUNKOztBQWxDa0QsQ0FBeEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9lbW90ZWF1dG9jYXBzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5cclxuaW1wb3J0IHtFbW90ZXN9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIEVtb3RlQXV0b2NhcHMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkVtb3RlQXV0b2NhcGl0YWxpemVcIjt9XHJcbiAgICBnZXQgY29sbGVjdGlvbigpIHtyZXR1cm4gXCJlbW90ZXNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJhdXRvQ2Fwc1wiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoXCJib2R5XCIpLm9mZihcIi5iZGFjXCIpO1xyXG4gICAgICAgICQoXCJib2R5XCIpLm9uKFwia2V5dXAuYmRhYyBjaGFuZ2UuYmRhYyBwYXN0ZS5iZGFjXCIsICQoXCIuY2hhbm5lbFRleHRBcmVhLTFMRGJZRyB0ZXh0YXJlYTpmaXJzdFwiKSwgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gJChcIi5jaGFubmVsVGV4dEFyZWEtMUxEYllHIHRleHRhcmVhOmZpcnN0XCIpLnZhbCgpO1xyXG4gICAgICAgICAgICBpZiAodGV4dCA9PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RXb3JkID0gdGV4dC5zcGxpdChcIiBcIikucG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChsYXN0V29yZC5sZW5ndGggPiAzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGFzdFdvcmQgPT0gXCJkYW5TZ2FtZVwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXQgPSB0aGlzLmNhcGl0YWxpemUobGFzdFdvcmQudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmV0ICE9PSBudWxsICYmIHJldCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgVXRpbGl0aWVzLmluc2VydFRleHQoVXRpbGl0aWVzLmdldFRleHRBcmVhKClbMF0sIHRleHQucmVwbGFjZShsYXN0V29yZCwgcmV0KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICAkKFwiYm9keVwiKS5vZmYoXCIuYmRhY1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBjYXBpdGFsaXplKHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gRW1vdGVzLlR3aXRjaEdsb2JhbDtcclxuICAgICAgICBmb3IgKGNvbnN0IHAgaW4gcmVzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXMuaGFzT3duUHJvcGVydHkocCkgJiYgdmFsdWUgPT0gKHAgKyBcIlwiKS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/emoteautocaps.js\n"); /***/ }), @@ -670,247 +179,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - - -const headerHTML = `
- - -
`; -const twitchEmoteHTML = `
-
-
-
- -
-
-
-
`; -const favoritesHTML = `
-
-
-
- -
-
-
-
`; - -const makeEmote = (emote, url, options = {}) => { - const { - onContextMenu, - onClick - } = options; - const emoteContainer = $(`
- ${emote} -
`)[0]; - if (onContextMenu) emoteContainer.addEventListener("contextmenu", onContextMenu); - emoteContainer.addEventListener("click", onClick); - return emoteContainer; -}; - -/* harmony default export */ __webpack_exports__["default"] = (new class EmoteMenu extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "EmoteMenu"; - } - - get collection() { - return "emotes"; - } - - get category() { - return "general"; - } - - get id() { - return "emoteMenu"; - } - - get hideEmojisID() { - return "hideEmojiMenu"; - } - - get hideEmojis() { - return this.get(this.hideEmojisID); - } - - constructor() { - super(); - this.lastTab = "bda-qem-emojis"; - this.favoriteEmotes = {}; - this.qmeHeader = $(headerHTML)[0]; - - for (const button of this.qmeHeader.getElementsByTagName("button")) button.addEventListener("click", this.switchMenu.bind(this)); - - this.teContainer = $(twitchEmoteHTML)[0]; - this.teContainerInner = this.teContainer.querySelector(".emote-menu-inner"); - this.faContainer = $(favoritesHTML)[0]; - this.faContainerInner = this.faContainer.querySelector(".emote-menu-inner"); - this.observer = new MutationObserver(mutations => { - for (const mutation of mutations) this.observe(mutation); - }); - this.enableHideEmojis = this.enableHideEmojis.bind(this); - this.disableHideEmojis = this.disableHideEmojis.bind(this); - this.updateTwitchEmotes = this.updateTwitchEmotes.bind(this); - } - - initialize() { - super.initialize(); - const fe = modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].getBDData("bdfavemotes"); - if (fe !== "" && fe !== null) this.favoriteEmotes = JSON.parse(atob(fe)); - this.updateFavorites(); - } - - async enabled() { - this.log("Starting to observe"); - this.observer.observe(document.getElementById("app-mount"), { - childList: true, - subtree: true - }); - this.hideEmojiCancel = this.registerSetting(this.hideEmojisID, this.enableHideEmojis, this.disableHideEmojis); - if (this.hideEmojis) this.enableHideEmojis(); // await this.waitForEmotes(); - // this.updateTwitchEmotes(); - - if (data__WEBPACK_IMPORTED_MODULE_1__["State"].emotesLoaded) this.updateTwitchEmotes(); - modules__WEBPACK_IMPORTED_MODULE_2__["Events"].on("emotes-loaded", this.updateTwitchEmotes); - } - - disabled() { - modules__WEBPACK_IMPORTED_MODULE_2__["Events"].off("emotes-loaded", this.updateTwitchEmotes); - this.observer.disconnect(); - this.disableHideEmojis(); - if (this.hideEmojiCancel) this.hideEmojiCancel(); - } - - async waitForEmotes() { - if (data__WEBPACK_IMPORTED_MODULE_1__["State"].emotesLoaded) return; - return new Promise(resolve => { - modules__WEBPACK_IMPORTED_MODULE_2__["Events"].on("emotes-loaded", resolve); - }); - } - - enableHideEmojis() { - $(".emojiPicker-3m1S-j").addClass("bda-qme-hidden"); - } - - disableHideEmojis() { - $(".emojiPicker-3m1S-j").removeClass("bda-qme-hidden"); - } - - insertEmote(emote) { - const ta = modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].getTextArea(); - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].insertText(ta[0], ta.val().slice(-1) == " " ? ta.val() + emote : ta.val() + " " + emote); - } - - favContext(e) { - e.stopPropagation(); - const em = e.target.closest(".emote-container").children[0]; - const menu = $(`
Remove
`); - menu.css({ - top: e.pageY - $("#bda-qem-favourite-container").offset().top, - left: e.pageX - $("#bda-qem-favourite-container").offset().left - }); - $(em).parent().append(menu); - menu.on("click", e => { - e.preventDefault(); - e.stopPropagation(); - $(em).remove(); - delete this.favoriteEmotes[$(em).attr("title")]; - this.updateFavorites(); - $(document).off("mousedown.emotemenu"); - }); - $(document).on("mousedown.emotemenu", function (e) { - if (e.target.id == "removemenu") return; - $("#removemenu").remove(); - $(document).off("mousedown.emotemenu"); - }); - } - - switchMenu(e) { - let id = typeof e == "string" ? e : $(e.target).attr("id"); - if (id == "bda-qem-emojis" && this.hideEmojis) id = "bda-qem-favourite"; - const twitch = $("#bda-qem-twitch"); - const fav = $("#bda-qem-favourite"); - const emojis = $("#bda-qem-emojis"); - twitch.removeClass("active"); - fav.removeClass("active"); - emojis.removeClass("active"); - $(".emojiPicker-3m1S-j").hide(); - $("#bda-qem-favourite-container").hide(); - $("#bda-qem-twitch-container").hide(); - - switch (id) { - case "bda-qem-twitch": - twitch.addClass("active"); - $("#bda-qem-twitch-container").show(); - break; - - case "bda-qem-favourite": - fav.addClass("active"); - $("#bda-qem-favourite-container").show(); - break; - - case "bda-qem-emojis": - emojis.addClass("active"); - $(".emojiPicker-3m1S-j").show(); - $(".emojiPicker-3m1S-j input").focus(); - break; - } - - if (id) this.lastTab = id; - } - - observe(mutation) { - if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) return; - const node = mutation.addedNodes[0]; - if (!node.classList.contains("popout-3sVMXz") || node.classList.contains("popoutLeft-30WmrD") || !node.getElementsByClassName("emojiPicker-3m1S-j").length) return; - const e = $(node); - if (this.hideEmojis) e.addClass("bda-qme-hidden");else e.removeClass("bda-qme-hidden"); - e.prepend(this.qmeHeader); - e.append(this.teContainer); - e.append(this.faContainer); - this.switchMenu(this.lastTab); - } - - favorite(name, url) { - if (!this.favoriteEmotes.hasOwnProperty(name)) this.favoriteEmotes[name] = url; - this.updateFavorites(); - } - - updateTwitchEmotes() { - while (this.teContainerInner.firstChild) this.teContainerInner.firstChild.remove(); - - for (const emote in data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchGlobal) { - if (!data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchGlobal.hasOwnProperty(emote)) continue; - const url = data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchGlobal[emote]; - const emoteElement = makeEmote(emote, url, { - onClick: this.insertEmote.bind(this, emote) - }); - this.teContainerInner.append(emoteElement); - } - } - - updateFavorites() { - while (this.faContainerInner.firstChild) this.faContainerInner.firstChild.remove(); - - for (const emote in this.favoriteEmotes) { - const url = this.favoriteEmotes[emote]; - const emoteElement = makeEmote(emote, url, { - onClick: this.insertEmote.bind(this, emote), - onContextMenu: this.favContext.bind(this) - }); - this.faContainerInner.append(emoteElement); - } - - modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].setBDData("bdfavemotes", btoa(JSON.stringify(this.favoriteEmotes))); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n\nconst headerHTML = `
\n \n \n
`;\nconst twitchEmoteHTML = `
\n
\n
\n
\n\n
\n
\n
\n
`;\nconst favoritesHTML = `
\n
\n
\n
\n\n
\n
\n
\n
`;\n\nconst makeEmote = (emote, url, options = {}) => {\n const {\n onContextMenu,\n onClick\n } = options;\n const emoteContainer = $(`
\n \"${emote}\"\n
`)[0];\n if (onContextMenu) emoteContainer.addEventListener(\"contextmenu\", onContextMenu);\n emoteContainer.addEventListener(\"click\", onClick);\n return emoteContainer;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteMenu extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteMenu\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emoteMenu\";\n }\n\n get hideEmojisID() {\n return \"hideEmojiMenu\";\n }\n\n get hideEmojis() {\n return this.get(this.hideEmojisID);\n }\n\n constructor() {\n super();\n this.lastTab = \"bda-qem-emojis\";\n this.favoriteEmotes = {};\n this.qmeHeader = $(headerHTML)[0];\n\n for (const button of this.qmeHeader.getElementsByTagName(\"button\")) button.addEventListener(\"click\", this.switchMenu.bind(this));\n\n this.teContainer = $(twitchEmoteHTML)[0];\n this.teContainerInner = this.teContainer.querySelector(\".emote-menu-inner\");\n this.faContainer = $(favoritesHTML)[0];\n this.faContainerInner = this.faContainer.querySelector(\".emote-menu-inner\");\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) this.observe(mutation);\n });\n this.enableHideEmojis = this.enableHideEmojis.bind(this);\n this.disableHideEmojis = this.disableHideEmojis.bind(this);\n this.updateTwitchEmotes = this.updateTwitchEmotes.bind(this);\n }\n\n initialize() {\n super.initialize();\n const fe = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"bdfavemotes\");\n if (fe !== \"\" && fe !== null) this.favoriteEmotes = JSON.parse(atob(fe));\n this.updateFavorites();\n }\n\n async enabled() {\n this.log(\"Starting to observe\");\n this.observer.observe(document.getElementById(\"app-mount\"), {\n childList: true,\n subtree: true\n });\n this.hideEmojiCancel = this.registerSetting(this.hideEmojisID, this.enableHideEmojis, this.disableHideEmojis);\n if (this.hideEmojis) this.enableHideEmojis(); // await this.waitForEmotes();\n // this.updateTwitchEmotes();\n\n if (data__WEBPACK_IMPORTED_MODULE_1__[\"State\"].emotesLoaded) this.updateTwitchEmotes();\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].on(\"emotes-loaded\", this.updateTwitchEmotes);\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].off(\"emotes-loaded\", this.updateTwitchEmotes);\n this.observer.disconnect();\n this.disableHideEmojis();\n if (this.hideEmojiCancel) this.hideEmojiCancel();\n }\n\n async waitForEmotes() {\n if (data__WEBPACK_IMPORTED_MODULE_1__[\"State\"].emotesLoaded) return;\n return new Promise(resolve => {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].on(\"emotes-loaded\", resolve);\n });\n }\n\n enableHideEmojis() {\n $(\".emojiPicker-3m1S-j\").addClass(\"bda-qme-hidden\");\n }\n\n disableHideEmojis() {\n $(\".emojiPicker-3m1S-j\").removeClass(\"bda-qme-hidden\");\n }\n\n insertEmote(emote) {\n const ta = modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].getTextArea();\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].insertText(ta[0], ta.val().slice(-1) == \" \" ? ta.val() + emote : ta.val() + \" \" + emote);\n }\n\n favContext(e) {\n e.stopPropagation();\n const em = e.target.closest(\".emote-container\").children[0];\n const menu = $(`
Remove
`);\n menu.css({\n top: e.pageY - $(\"#bda-qem-favourite-container\").offset().top,\n left: e.pageX - $(\"#bda-qem-favourite-container\").offset().left\n });\n $(em).parent().append(menu);\n menu.on(\"click\", e => {\n e.preventDefault();\n e.stopPropagation();\n $(em).remove();\n delete this.favoriteEmotes[$(em).attr(\"title\")];\n this.updateFavorites();\n $(document).off(\"mousedown.emotemenu\");\n });\n $(document).on(\"mousedown.emotemenu\", function (e) {\n if (e.target.id == \"removemenu\") return;\n $(\"#removemenu\").remove();\n $(document).off(\"mousedown.emotemenu\");\n });\n }\n\n switchMenu(e) {\n let id = typeof e == \"string\" ? e : $(e.target).attr(\"id\");\n if (id == \"bda-qem-emojis\" && this.hideEmojis) id = \"bda-qem-favourite\";\n const twitch = $(\"#bda-qem-twitch\");\n const fav = $(\"#bda-qem-favourite\");\n const emojis = $(\"#bda-qem-emojis\");\n twitch.removeClass(\"active\");\n fav.removeClass(\"active\");\n emojis.removeClass(\"active\");\n $(\".emojiPicker-3m1S-j\").hide();\n $(\"#bda-qem-favourite-container\").hide();\n $(\"#bda-qem-twitch-container\").hide();\n\n switch (id) {\n case \"bda-qem-twitch\":\n twitch.addClass(\"active\");\n $(\"#bda-qem-twitch-container\").show();\n break;\n\n case \"bda-qem-favourite\":\n fav.addClass(\"active\");\n $(\"#bda-qem-favourite-container\").show();\n break;\n\n case \"bda-qem-emojis\":\n emojis.addClass(\"active\");\n $(\".emojiPicker-3m1S-j\").show();\n $(\".emojiPicker-3m1S-j input\").focus();\n break;\n }\n\n if (id) this.lastTab = id;\n }\n\n observe(mutation) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) return;\n const node = mutation.addedNodes[0];\n if (!node.classList.contains(\"popout-3sVMXz\") || node.classList.contains(\"popoutLeft-30WmrD\") || !node.getElementsByClassName(\"emojiPicker-3m1S-j\").length) return;\n const e = $(node);\n if (this.hideEmojis) e.addClass(\"bda-qme-hidden\");else e.removeClass(\"bda-qme-hidden\");\n e.prepend(this.qmeHeader);\n e.append(this.teContainer);\n e.append(this.faContainer);\n this.switchMenu(this.lastTab);\n }\n\n favorite(name, url) {\n if (!this.favoriteEmotes.hasOwnProperty(name)) this.favoriteEmotes[name] = url;\n this.updateFavorites();\n }\n\n updateTwitchEmotes() {\n while (this.teContainerInner.firstChild) this.teContainerInner.firstChild.remove();\n\n for (const emote in data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchGlobal) {\n if (!data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchGlobal.hasOwnProperty(emote)) continue;\n const url = data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchGlobal[emote];\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote)\n });\n this.teContainerInner.append(emoteElement);\n }\n }\n\n updateFavorites() {\n while (this.faContainerInner.firstChild) this.faContainerInner.firstChild.remove();\n\n for (const emote in this.favoriteEmotes) {\n const url = this.favoriteEmotes[emote];\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote),\n onContextMenu: this.favContext.bind(this)\n });\n this.faContainerInner.append(emoteElement);\n }\n\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"bdfavemotes\", btoa(JSON.stringify(this.favoriteEmotes)));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlbWVudS5qcz8yYWNlIl0sIm5hbWVzIjpbImhlYWRlckhUTUwiLCJ0d2l0Y2hFbW90ZUhUTUwiLCJmYXZvcml0ZXNIVE1MIiwibWFrZUVtb3RlIiwiZW1vdGUiLCJ1cmwiLCJvcHRpb25zIiwib25Db250ZXh0TWVudSIsIm9uQ2xpY2siLCJlbW90ZUNvbnRhaW5lciIsIiQiLCJhZGRFdmVudExpc3RlbmVyIiwiRW1vdGVNZW51IiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImhpZGVFbW9qaXNJRCIsImhpZGVFbW9qaXMiLCJnZXQiLCJjb25zdHJ1Y3RvciIsImxhc3RUYWIiLCJmYXZvcml0ZUVtb3RlcyIsInFtZUhlYWRlciIsImJ1dHRvbiIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwic3dpdGNoTWVudSIsImJpbmQiLCJ0ZUNvbnRhaW5lciIsInRlQ29udGFpbmVySW5uZXIiLCJxdWVyeVNlbGVjdG9yIiwiZmFDb250YWluZXIiLCJmYUNvbnRhaW5lcklubmVyIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJvYnNlcnZlIiwiZW5hYmxlSGlkZUVtb2ppcyIsImRpc2FibGVIaWRlRW1vamlzIiwidXBkYXRlVHdpdGNoRW1vdGVzIiwiaW5pdGlhbGl6ZSIsImZlIiwiRGF0YVN0b3JlIiwiZ2V0QkREYXRhIiwiSlNPTiIsInBhcnNlIiwiYXRvYiIsInVwZGF0ZUZhdm9yaXRlcyIsImVuYWJsZWQiLCJsb2ciLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhpZGVFbW9qaUNhbmNlbCIsInJlZ2lzdGVyU2V0dGluZyIsIlN0YXRlIiwiZW1vdGVzTG9hZGVkIiwiRXZlbnRzIiwib24iLCJkaXNhYmxlZCIsIm9mZiIsImRpc2Nvbm5lY3QiLCJ3YWl0Rm9yRW1vdGVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhZGRDbGFzcyIsInJlbW92ZUNsYXNzIiwiaW5zZXJ0RW1vdGUiLCJ0YSIsIlV0aWxpdGllcyIsImdldFRleHRBcmVhIiwiaW5zZXJ0VGV4dCIsInZhbCIsInNsaWNlIiwiZmF2Q29udGV4dCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJlbSIsInRhcmdldCIsImNsb3Nlc3QiLCJjaGlsZHJlbiIsIm1lbnUiLCJjc3MiLCJ0b3AiLCJwYWdlWSIsIm9mZnNldCIsImxlZnQiLCJwYWdlWCIsInBhcmVudCIsImFwcGVuZCIsInByZXZlbnREZWZhdWx0IiwicmVtb3ZlIiwiYXR0ciIsInR3aXRjaCIsImZhdiIsImVtb2ppcyIsImhpZGUiLCJzaG93IiwiZm9jdXMiLCJhZGRlZE5vZGVzIiwibGVuZ3RoIiwiRWxlbWVudCIsIm5vZGUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJwcmVwZW5kIiwiZmF2b3JpdGUiLCJoYXNPd25Qcm9wZXJ0eSIsImZpcnN0Q2hpbGQiLCJFbW90ZXMiLCJUd2l0Y2hHbG9iYWwiLCJlbW90ZUVsZW1lbnQiLCJzZXRCRERhdGEiLCJidG9hIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFVBQVUsR0FBSTs7OztPQUFwQjtBQU1BLE1BQU1DLGVBQWUsR0FBSTs7Ozs7Ozs7T0FBekI7QUFVQSxNQUFNQyxhQUFhLEdBQUk7Ozs7Ozs7O09BQXZCOztBQVVBLE1BQU1DLFNBQVMsR0FBRyxDQUFDQyxLQUFELEVBQVFDLEdBQVIsRUFBYUMsT0FBTyxHQUFHLEVBQXZCLEtBQThCO0FBQzVDLFFBQU07QUFBQ0MsaUJBQUQ7QUFBZ0JDO0FBQWhCLE1BQTJCRixPQUFqQztBQUNBLFFBQU1HLGNBQWMsR0FBR0MsQ0FBQyxDQUFFO3VDQUNTTixLQUFNLFVBQVNDLEdBQUksWUFBV0QsS0FBTTtXQUQvQyxDQUFELENBRWQsQ0FGYyxD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QyxZQUFNbEIsR0FBRyxHQUFHLEtBQUtrQixjQUFMLENBQW9CbkIsS0FBcEIsQ0FBWjtBQUNBLFlBQU0rRyxZQUFZLEdBQUdoSCxTQUFTLENBQUNDLEtBQUQsRUFBUUMsR0FBUixFQUFhO0FBQUNHLGVBQU8sRUFBRSxLQUFLOEQsV0FBTCxDQUFpQjFDLElBQWpCLENBQXNCLElBQXRCLEVBQTRCeEIsS0FBNUIsQ0FBVjtBQUE4Q0cscUJBQWEsRUFBRSxLQUFLc0UsVUFBTCxDQUFnQmpELElBQWhCLENBQXFCLElBQXJCO0FBQTdELE9BQWIsQ0FBOUI7QUFDQSxXQUFLSyxnQkFBTCxDQUFzQjJELE1BQXRCLENBQTZCdUIsWUFBN0I7QUFDSDs7QUFDRHZFLHFEQUFTLENBQUN3RSxTQUFWLENBQW9CLGFBQXBCLEVBQW1DQyxJQUFJLENBQUN2RSxJQUFJLENBQUN3RSxTQUFMLENBQWUsS0FBSy9GLGNBQXBCLENBQUQsQ0FBdkM7QUFDSDs7QUEzSzhDLENBQXBDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvZW1vdGVtZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge0Vtb3RlcywgU3RhdGV9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7RGF0YVN0b3JlLCBVdGlsaXRpZXMsIEV2ZW50c30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IGhlYWRlckhUTUwgPSBgPGRpdiBpZD1cImJkYS1xZW1cIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhY3RpdmVcIiBpZD1cImJkYS1xZW0tdHdpdGNoXCI+VHdpdGNoPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGlkPVwiYmRhLXFlbS1mYXZvdXJpdGVcIj5GYXZvdXJpdGU8L2J1dHRvbj5cclxuICAgIDxidXR0b24gaWQ9XCJiZGEtcWVtLWVtb2ppc1wiPkVtb2ppczwvYnV0dG9uZD5cclxuPC9kaXY+YDtcclxuXHJcbmNvbnN0IHR3aXRjaEVtb3RlSFRNTCA9IGA8ZGl2IGlkPVwiYmRhLXFlbS10d2l0Y2gtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXItd3JhcCBzY3JvbGxlcldyYXAtMmxKRWtkIGZhZGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXIgc2Nyb2xsZXItMkZLRlBHXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW90ZS1tZW51LWlubmVyXCI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5gO1xyXG5cclxuY29uc3QgZmF2b3JpdGVzSFRNTCA9IGA8ZGl2IGlkPVwiYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXItd3JhcCBzY3JvbGxlcldyYXAtMmxKRWtkIGZhZGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXIgc2Nyb2xsZXItMkZLRlBHXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW90ZS1tZW51LWlubmVyXCI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5gO1xyXG5cclxuY29uc3QgbWFrZUVtb3RlID0gKGVtb3RlLCB1cmwsIG9wdGlvbnMgPSB7fSkgPT4ge1xyXG4gICAgY29uc3Qge29uQ29udGV4dE1lbnUsIG9uQ2xpY2t9ID0gb3B0aW9ucztcclxuICAgIGNvbnN0IGVtb3RlQ29udGFpbmVyID0gJChgPGRpdiBjbGFzcz1cImVtb3RlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJlbW90ZS1pY29uXCIgYWx0PVwiJHtlbW90ZX1cIiBzcmM9XCIke3VybH1cIiB0aXRsZT1cIiR7ZW1vdGV9XCI+XHJcbiAgICA8L2Rpdj5gKVswXTtcclxuICAgIGlmIChvbkNvbnRleHRNZW51KSBlbW90ZUNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIiwgb25Db250ZXh0TWVudSk7XHJcbiAgICBlbW90ZUNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgb25DbGljayk7XHJcbiAgICByZXR1cm4gZW1vdGVDb250YWluZXI7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgRW1vdGVNZW51IGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJFbW90ZU1lbnVcIjt9XHJcbiAgICBnZXQgY29sbGVjdGlvbigpIHtyZXR1cm4gXCJlbW90ZXNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJlbW90ZU1lbnVcIjt9XHJcbiAgICBnZXQgaGlkZUVtb2ppc0lEKCkge3JldHVybiBcImhpZGVFbW9qaU1lbnVcIjt9XHJcbiAgICBnZXQgaGlkZUVtb2ppcygpIHtyZXR1cm4gdGhpcy5nZXQodGhpcy5oaWRlRW1vamlzSUQpO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMubGFzdFRhYiA9IFwiYmRhLXFlbS1lbW9qaXNcIjtcclxuICAgICAgICB0aGlzLmZhdm9yaXRlRW1vdGVzID0ge307XHJcblxyXG4gICAgICAgIHRoaXMucW1lSGVhZGVyID0gJChoZWFkZXJIVE1MKVswXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiB0aGlzLnFtZUhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJ1dHRvblwiKSkgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLnN3aXRjaE1lbnUuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHRoaXMudGVDb250YWluZXIgPSAkKHR3aXRjaEVtb3RlSFRNTClbMF07XHJcbiAgICAgICAgdGhpcy50ZUNvbnRhaW5lcklubmVyID0gdGhpcy50ZUNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmVtb3RlLW1lbnUtaW5uZXJcIik7XHJcblxyXG4gICAgICAgIHRoaXMuZmFDb250YWluZXIgPSAkKGZhdm9yaXRlc0hUTUwpWzBdO1xyXG4gICAgICAgIHRoaXMuZmFDb250YWluZXJJbm5lciA9IHRoaXMuZmFDb250YWluZXIucXVlcnlTZWxlY3RvcihcIi5lbW90ZS1tZW51LWlubmVyXCIpO1xyXG5cclxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykgdGhpcy5vYnNlcnZlKG11dGF0aW9uKTt9KTtcclxuICAgICAgICB0aGlzLmVuYWJsZUhpZGVFbW9qaXMgPSB0aGlzLmVuYWJsZUhpZGVFbW9qaXMuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVIaWRlRW1vamlzID0gdGhpcy5kaXNhYmxlSGlkZUVtb2ppcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzID0gdGhpcy51cGRhdGVUd2l0Y2hFbW90ZXMuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcclxuICAgICAgICBjb25zdCBmZSA9IERhdGFTdG9yZS5nZXRCRERhdGEoXCJiZGZhdmVtb3Rlc1wiKTtcclxuICAgICAgICBpZiAoZmUgIT09IFwiXCIgJiYgZmUgIT09IG51bGwpIHRoaXMuZmF2b3JpdGVFbW90ZXMgPSBKU09OLnBhcnNlKGF0b2IoZmUpKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJTdGFydGluZyB0byBvYnNlcnZlXCIpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFwcC1tb3VudFwiKSwge1xyXG4gICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmhpZGVFbW9qaUNhbmNlbCA9IHRoaXMucmVnaXN0ZXJTZXR0aW5nKHRoaXMuaGlkZUVtb2ppc0lELCB0aGlzLmVuYWJsZUhpZGVFbW9qaXMsIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVFbW9qaXMpIHRoaXMuZW5hYmxlSGlkZUVtb2ppcygpO1xyXG4gICAgICAgIC8vIGF3YWl0IHRoaXMud2FpdEZvckVtb3RlcygpO1xyXG4gICAgICAgIC8vIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzKCk7XHJcbiAgICAgICAgaWYgKFN0YXRlLmVtb3Rlc0xvYWRlZCkgdGhpcy51cGRhdGVUd2l0Y2hFbW90ZXMoKTtcclxuICAgICAgICBFdmVudHMub24oXCJlbW90ZXMtbG9hZGVkXCIsIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKFwiZW1vdGVzLWxvYWRlZFwiLCB0aGlzLnVwZGF0ZVR3aXRjaEVtb3Rlcyk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlSGlkZUVtb2ppcygpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVFbW9qaUNhbmNlbCkgdGhpcy5oaWRlRW1vamlDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3YWl0Rm9yRW1vdGVzKCkge1xyXG4gICAgICAgIGlmIChTdGF0ZS5lbW90ZXNMb2FkZWQpIHJldHVybjtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIEV2ZW50cy5vbihcImVtb3Rlcy1sb2FkZWRcIiwgcmVzb2x2ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZW5hYmxlSGlkZUVtb2ppcygpIHtcclxuICAgICAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5hZGRDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVIaWRlRW1vamlzKCkge1xyXG4gICAgICAgICQoXCIuZW1vamlQaWNrZXItM20xUy1qXCIpLnJlbW92ZUNsYXNzKFwiYmRhLXFtZS1oaWRkZW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0RW1vdGUoZW1vdGUpIHtcclxuICAgICAgICBjb25zdCB0YSA9IFV0aWxpdGllcy5nZXRUZXh0QXJlYSgpO1xyXG4gICAgICAgIFV0aWxpdGllcy5pbnNlcnRUZXh0KHRhWzBdLCB0YS52YWwoKS5zbGljZSgtMSkgPT0gXCIgXCIgPyB0YS52YWwoKSArIGVtb3RlIDogdGEudmFsKCkgKyBcIiBcIiArIGVtb3RlKTtcclxuICAgIH1cclxuXHJcbiAgICBmYXZDb250ZXh0KGUpIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGNvbnN0IGVtID0gZS50YXJnZXQuY2xvc2VzdChcIi5lbW90ZS1jb250YWluZXJcIikuY2hpbGRyZW5bMF07XHJcbiAgICAgICAgY29uc3QgbWVudSA9ICQoYDxkaXYgaWQ9XCJyZW1vdmVtZW51XCIgY2xhc3M9XCJiZC1jb250ZXh0LW1lbnUgY29udGV4dC1tZW51IHRoZW1lLWRhcmtcIj5SZW1vdmU8L2Rpdj5gKTtcclxuICAgICAgICBtZW51LmNzcyh7XHJcbiAgICAgICAgICAgIHRvcDogZS5wYWdlWSAtICQoXCIjYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgbGVmdDogZS5wYWdlWCAtICQoXCIjYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLm9mZnNldCgpLmxlZnRcclxuICAgICAgICB9KTtcclxuICAgICAgICAkKGVtKS5wYXJlbnQoKS5hcHBlbmQobWVudSk7XHJcbiAgICAgICAgbWVudS5vbihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgJChlbSkucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmZhdm9yaXRlRW1vdGVzWyQoZW0pLmF0dHIoXCJ0aXRsZVwiKV07XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKCk7XHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5lbW90ZW1lbnVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24uZW1vdGVtZW51XCIsIGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmlkID09IFwicmVtb3ZlbWVudVwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICQoXCIjcmVtb3ZlbWVudVwiKS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLmVtb3RlbWVudVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2hNZW51KGUpIHtcclxuICAgICAgICBsZXQgaWQgPSB0eXBlb2YoZSkgPT0gXCJzdHJpbmdcIiA/IGUgOiAkKGUudGFyZ2V0KS5hdHRyKFwiaWRcIik7XHJcbiAgICAgICAgaWYgKGlkID09IFwiYmRhLXFlbS1lbW9qaXNcIiAmJiB0aGlzLmhpZGVFbW9qaXMpIGlkID0gXCJiZGEtcWVtLWZhdm91cml0ZVwiO1xyXG4gICAgICAgIGNvbnN0IHR3aXRjaCA9ICQoXCIjYmRhLXFlbS10d2l0Y2hcIik7XHJcbiAgICAgICAgY29uc3QgZmF2ID0gJChcIiNiZGEtcWVtLWZhdm91cml0ZVwiKTtcclxuICAgICAgICBjb25zdCBlbW9qaXMgPSAkKFwiI2JkYS1xZW0tZW1vamlzXCIpO1xyXG4gICAgICAgIHR3aXRjaC5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICBmYXYucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgZW1vamlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgICAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5oaWRlKCk7XHJcbiAgICAgICAgJChcIiNiZGEtcWVtLWZhdm91cml0ZS1jb250YWluZXJcIikuaGlkZSgpO1xyXG4gICAgICAgICQoXCIjYmRhLXFlbS10d2l0Y2gtY29udGFpbmVyXCIpLmhpZGUoKTtcclxuXHJcbiAgICAgICAgc3dpdGNoIChpZCkge1xyXG4gICAgICAgICAgICBjYXNlIFwiYmRhLXFlbS10d2l0Y2hcIjpcclxuICAgICAgICAgICAgICAgIHR3aXRjaC5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIjYmRhLXFlbS10d2l0Y2gtY29udGFpbmVyXCIpLnNob3coKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmRhLXFlbS1mYXZvdXJpdGVcIjpcclxuICAgICAgICAgICAgICAgIGZhdi5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIjYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLnNob3coKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmRhLXFlbS1lbW9qaXNcIjpcclxuICAgICAgICAgICAgICAgIGVtb2ppcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIuZW1vamlQaWNrZXItM20xUy1qXCIpLnNob3coKTtcclxuICAgICAgICAgICAgICAgICQoXCIuZW1vamlQaWNrZXItM20xUy1qIGlucHV0XCIpLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlkKSB0aGlzLmxhc3RUYWIgPSBpZDtcclxuICAgIH1cclxuXHJcbiAgICBvYnNlcnZlKG11dGF0aW9uKSB7XHJcbiAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzWzBdO1xyXG4gICAgICAgIGlmICghbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJwb3BvdXQtM3NWTVh6XCIpIHx8IG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFwicG9wb3V0TGVmdC0zMFdtckRcIikgfHwgIW5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImVtb2ppUGlja2VyLTNtMVMtalwiKS5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZSA9ICQobm9kZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUVtb2ppcykgZS5hZGRDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG4gICAgICAgIGVsc2UgZS5yZW1vdmVDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG5cclxuICAgICAgICBlLnByZXBlbmQodGhpcy5xbWVIZWFkZXIpO1xyXG4gICAgICAgIGUuYXBwZW5kKHRoaXMudGVDb250YWluZXIpO1xyXG4gICAgICAgIGUuYXBwZW5kKHRoaXMuZmFDb250YWluZXIpO1xyXG5cclxuICAgICAgICB0aGlzLnN3aXRjaE1lbnUodGhpcy5sYXN0VGFiKTtcclxuICAgIH1cclxuXHJcbiAgICBmYXZvcml0ZShuYW1lLCB1cmwpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZmF2b3JpdGVFbW90ZXMuaGFzT3duUHJvcGVydHkobmFtZSkpIHRoaXMuZmF2b3JpdGVFbW90ZXNbbmFtZV0gPSB1cmw7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGYXZvcml0ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVUd2l0Y2hFbW90ZXMoKSB7XHJcbiAgICAgICAgd2hpbGUgKHRoaXMudGVDb250YWluZXJJbm5lci5maXJzdENoaWxkKSB0aGlzLnRlQ29udGFpbmVySW5uZXIuZmlyc3RDaGlsZC5yZW1vdmUoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGVtb3RlIGluIEVtb3Rlcy5Ud2l0Y2hHbG9iYWwpIHtcclxuICAgICAgICAgICAgaWYgKCFFbW90ZXMuVHdpdGNoR2xvYmFsLmhhc093blByb3BlcnR5KGVtb3RlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IEVtb3Rlcy5Ud2l0Y2hHbG9iYWxbZW1vdGVdO1xyXG4gICAgICAgICAgICBjb25zdCBlbW90ZUVsZW1lbnQgPSBtYWtlRW1vdGUoZW1vdGUsIHVybCwge29uQ2xpY2s6IHRoaXMuaW5zZXJ0RW1vdGUuYmluZCh0aGlzLCBlbW90ZSl9KTtcclxuICAgICAgICAgICAgdGhpcy50ZUNvbnRhaW5lcklubmVyLmFwcGVuZChlbW90ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVGYXZvcml0ZXMoKSB7XHJcbiAgICAgICAgd2hpbGUgKHRoaXMuZmFDb250YWluZXJJbm5lci5maXJzdENoaWxkKSB0aGlzLmZhQ29udGFpbmVySW5uZXIuZmlyc3RDaGlsZC5yZW1vdmUoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGVtb3RlIGluIHRoaXMuZmF2b3JpdGVFbW90ZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5mYXZvcml0ZUVtb3Rlc1tlbW90ZV07XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlRWxlbWVudCA9IG1ha2VFbW90ZShlbW90ZSwgdXJsLCB7b25DbGljazogdGhpcy5pbnNlcnRFbW90ZS5iaW5kKHRoaXMsIGVtb3RlKSwgb25Db250ZXh0TWVudTogdGhpcy5mYXZDb250ZXh0LmJpbmQodGhpcyl9KTtcclxuICAgICAgICAgICAgdGhpcy5mYUNvbnRhaW5lcklubmVyLmFwcGVuZChlbW90ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiYmRmYXZlbW90ZXNcIiwgYnRvYShKU09OLnN0cmluZ2lmeSh0aGlzLmZhdm9yaXRlRW1vdGVzKSkpO1xyXG4gICAgfVxyXG5cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/emotemenu.js\n"); /***/ }), @@ -922,314 +191,7 @@ const makeEmote = (emote, url, options = {}) => { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); -/* harmony import */ var _ui_emote__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/emote */ "./src/ui/emote.js"); -/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ "./src/ui/ui.js"); - - - - - -const bdEmoteSettingIDs = { - TwitchGlobal: "twitch", - TwitchSubscriber: "twitch", - BTTV: "bttv", - FrankerFaceZ: "ffz", - BTTV2: "bttv" -}; -/* harmony default export */ __webpack_exports__["default"] = (new class EmoteModule extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "Emotes"; - } - - get collection() { - return "settings"; - } - - get category() { - return "general"; - } - - get id() { - return "emotes"; - } - - get categories() { - return Object.keys(bdEmoteSettingIDs).filter(k => this.isCategoryEnabled(bdEmoteSettingIDs[k])); - } - - get MessageContentComponent() { - return modules__WEBPACK_IMPORTED_MODULE_2__["WebpackModules"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty("disableButtons")); - } - - isCategoryEnabled(id) { - return super.get("emotes", "categories", id); - } - - get(id) { - return super.get("emotes", "general", id); - } - - async enabled() {// Disable emote module for now because it's annoying and slow - // await this.getBlacklist(); - // await this.loadEmoteData(EmoteInfo); - // while (!this.MessageContentComponent) await new Promise(resolve => setTimeout(resolve, 100)); - // this.patchMessageContent(); - } - - disabled() { - this.emptyEmotes(); - if (this.cancelEmoteRender) return; - this.cancelEmoteRender(); - delete this.cancelEmoteRender; - } - - emptyEmotes() { - for (const cat in data__WEBPACK_IMPORTED_MODULE_1__["Emotes"]) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__["Emotes"], { - [cat]: {} - }); - } - - patchMessageContent() { - if (this.cancelEmoteRender) return; - this.cancelEmoteRender = modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].monkeyPatch(this.MessageContentComponent.prototype, "render", { - after: ({ - returnValue - }) => { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].monkeyPatch(returnValue.props, "children", { - silent: true, - after: ({ - returnValue - }) => { - if (this.categories.length == 0) return; - const markup = returnValue.props.children[1]; - if (!markup.props.children) return; - const nodes = markup.props.children[1]; - if (!nodes || !nodes.length) return; - - for (let n = 0; n < nodes.length; n++) { - const node = nodes[n]; - if (typeof node !== "string") continue; - const words = node.split(/([^\s]+)([\s]|$)/g); - - for (let c = 0, clen = this.categories.length; c < clen; c++) { - for (let w = 0, wlen = words.length; w < wlen; w++) { - const emote = words[w]; - const emoteSplit = emote.split(":"); - const emoteName = emoteSplit[0]; - let emoteModifier = emoteSplit[1] ? emoteSplit[1] : ""; - let emoteOverride = emoteModifier.slice(0); - if (emoteName.length < 4 || data__WEBPACK_IMPORTED_MODULE_1__["EmoteBlacklist"].includes(emoteName)) continue; - if (!data__WEBPACK_IMPORTED_MODULE_1__["EmoteModifiers"].includes(emoteModifier) || !data__WEBPACK_IMPORTED_MODULE_1__["SettingsCookie"]["bda-es-8"]) emoteModifier = ""; - if (!data__WEBPACK_IMPORTED_MODULE_1__["EmoteOverrides"].includes(emoteOverride)) emoteOverride = "";else emoteModifier = emoteOverride; - let current = this.categories[c]; - - if (emoteOverride === "twitch") { - if (data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchGlobal[emoteName]) current = "TwitchGlobal";else if (data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].TwitchSubscriber[emoteName]) current = "TwitchSubscriber"; - } else if (emoteOverride === "bttv") { - if (data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].BTTV[emoteName]) current = "BTTV";else if (data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].BTTV2[emoteName]) current = "BTTV2"; - } else if (emoteOverride === "ffz") { - if (data__WEBPACK_IMPORTED_MODULE_1__["Emotes"].FrankerFaceZ[emoteName]) current = "FrankerFaceZ"; - } - - if (!data__WEBPACK_IMPORTED_MODULE_1__["Emotes"][current][emoteName] || !data__WEBPACK_IMPORTED_MODULE_1__["SettingsCookie"][bdEmoteSettingIDs[current]]) continue; - const results = nodes[n].match(new RegExp(`([\\s]|^)${modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].escape(emoteModifier ? emoteName + ":" + emoteModifier : emoteName)}([\\s]|$)`)); - if (!results) continue; - const pre = nodes[n].substring(0, results.index + results[1].length); - const post = nodes[n].substring(results.index + results[0].length - results[2].length); - nodes[n] = pre; - const emoteComponent = modules__WEBPACK_IMPORTED_MODULE_2__["DiscordModules"].React.createElement(_ui_emote__WEBPACK_IMPORTED_MODULE_3__["default"], { - name: emoteName, - url: data__WEBPACK_IMPORTED_MODULE_1__["Emotes"][current][emoteName], - modifier: emoteModifier - }); - nodes.splice(n + 1, 0, post); - nodes.splice(n + 1, 0, emoteComponent); - } - } - } - - const onlyEmotes = nodes.every(r => { - if (typeof r == "string" && r.replace(/\s*/, "") == "") return true;else if (r.type && r.type.name == "BDEmote") return true;else if (r.props && r.props.children && r.props.children.props && r.props.children.props.emojiName) return true; - return false; - }); - if (!onlyEmotes) return; - - for (const node of nodes) { - if (typeof node != "object") continue; - if (node.type.name == "BDEmote") node.props.jumboable = true;else if (node.props && node.props.children && node.props.children.props && node.props.children.props.emojiName) node.props.children.props.jumboable = true; - } - } - }); - } - }); - } - - async loadEmoteData(emoteInfo) { - const _fs = __webpack_require__(/*! fs */ "fs"); - - const emoteFile = "emote_data.json"; - const file = data__WEBPACK_IMPORTED_MODULE_1__["Config"].dataPath + emoteFile; - - const exists = _fs.existsSync(file); - - if (exists && this.isCacheValid()) { - ui__WEBPACK_IMPORTED_MODULE_4__["Toasts"].show("Loading emotes from cache.", { - type: "info" - }); - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].log("Emotes", "Loading emotes from local cache."); - const data = await new Promise(resolve => { - _fs.readFile(file, "utf8", (err, data) => { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].log("Emotes", "Emotes loaded from cache."); - if (err) data = {}; - resolve(data); - }); - }); - let isValid = modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].testJSON(data); - if (isValid) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__["Emotes"], JSON.parse(data)); - - for (const e in emoteInfo) { - isValid = Object.keys(data__WEBPACK_IMPORTED_MODULE_1__["Emotes"][emoteInfo[e].variable]).length > 0; - } - - if (isValid) { - ui__WEBPACK_IMPORTED_MODULE_4__["Toasts"].show("Emotes successfully loaded.", { - type: "success" - }); - data__WEBPACK_IMPORTED_MODULE_1__["State"].emotesLoaded = true; - modules__WEBPACK_IMPORTED_MODULE_2__["Events"].dispatch("emotes-loaded"); - return; - } - - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].log("Emotes", "Cache was corrupt, downloading..."); - - _fs.unlinkSync(file); - } - - if (!data__WEBPACK_IMPORTED_MODULE_1__["SettingsCookie"]["fork-es-3"]) return; - ui__WEBPACK_IMPORTED_MODULE_4__["Toasts"].show("Downloading emotes in the background do not reload.", { - type: "info" - }); - - for (const e in emoteInfo) { - await new Promise(r => setTimeout(r, 1000)); - const data = await this.downloadEmotes(emoteInfo[e]); - data__WEBPACK_IMPORTED_MODULE_1__["Emotes"][emoteInfo[e].variable] = data; - } - - ui__WEBPACK_IMPORTED_MODULE_4__["Toasts"].show("All emotes successfully downloaded.", { - type: "success" - }); - - try { - _fs.writeFileSync(file, JSON.stringify(data__WEBPACK_IMPORTED_MODULE_1__["Emotes"]), "utf8"); - } catch (err) { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].err("Emotes", "Could not save emote data.", err); - } - - data__WEBPACK_IMPORTED_MODULE_1__["State"].emotesLoaded = true; - modules__WEBPACK_IMPORTED_MODULE_2__["Events"].dispatch("emotes-loaded"); - } - - downloadEmotes(emoteMeta) { - const request = __webpack_require__(/*! request */ "request"); - - const options = { - url: emoteMeta.url, - timeout: emoteMeta.timeout ? emoteMeta.timeout : 5000 - }; - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].log("Emotes", `Downloading: ${emoteMeta.variable} (${emoteMeta.url})`); - return new Promise((resolve, reject) => { - request(options, (error, response, body) => { - if (error) { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].err("Emotes", "Could not download " + emoteMeta.variable, error); - - if (emoteMeta.backup) { - emoteMeta.url = emoteMeta.backup; - emoteMeta.backup = null; - if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser; - return resolve(this.downloadEmotes(emoteMeta)); - } - - return reject({}); - } - - let parsedData = {}; - - try { - parsedData = JSON.parse(body); - } catch (err) { - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].err("Emotes", "Could not download " + emoteMeta.variable, err); - - if (emoteMeta.backup) { - emoteMeta.url = emoteMeta.backup; - emoteMeta.backup = null; - if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser; - return resolve(this.downloadEmotes(emoteMeta)); - } - - return reject({}); - } - - if (typeof emoteMeta.parser === "function") parsedData = emoteMeta.parser(parsedData); - - for (const emote in parsedData) { - if (emote.length < 4 || data__WEBPACK_IMPORTED_MODULE_1__["EmoteBlacklist"].includes(emote)) { - delete parsedData[emote]; - continue; - } - - parsedData[emote] = emoteMeta.getEmoteURL(parsedData[emote]); - } - - resolve(parsedData); - modules__WEBPACK_IMPORTED_MODULE_2__["Utilities"].log("Emotes", "Downloaded: " + emoteMeta.variable); - }); - }); - } - - getBlacklist() { - return new Promise(resolve => { - $.getJSON(`https://rauenzi.github.io/BetterDiscordApp/data/emotefilter.json`, function (data) { - resolve(data__WEBPACK_IMPORTED_MODULE_1__["EmoteBlacklist"].push(...data.blacklist)); - }); - }); - } - - isCacheValid() { - const cacheLength = modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].getBDData("emoteCacheDays") || modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].setBDData("emoteCacheDays", 7) || 7; - const cacheDate = new Date(modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].getBDData("emoteCacheDate") || null); - const currentDate = new Date(); - const daysBetween = Math.round(Math.abs((currentDate.getTime() - cacheDate.getTime()) / (24 * 60 * 60 * 1000))); - - if (daysBetween > cacheLength) { - modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].setBDData("emoteCacheDate", currentDate.toJSON()); - return false; - } - - return true; - } - - clearEmoteData() { - const _fs = __webpack_require__(/*! fs */ "fs"); - - const emoteFile = "emote_data.json"; - const file = data__WEBPACK_IMPORTED_MODULE_1__["Config"].dataPath + emoteFile; - - const exists = _fs.existsSync(file); - - if (exists) _fs.unlinkSync(file); - modules__WEBPACK_IMPORTED_MODULE_2__["DataStore"].setBDData("emoteCacheDate", new Date().toJSON()); - - for (const category in data__WEBPACK_IMPORTED_MODULE_1__["Emotes"]) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__["Emotes"], { - [category]: {} - }); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_emote__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/emote */ \"./src/ui/emote.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\nconst bdEmoteSettingIDs = {\n TwitchGlobal: \"twitch\",\n TwitchSubscriber: \"twitch\",\n BTTV: \"bttv\",\n FrankerFaceZ: \"ffz\",\n BTTV2: \"bttv\"\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteModule extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Emotes\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emotes\";\n }\n\n get categories() {\n return Object.keys(bdEmoteSettingIDs).filter(k => this.isCategoryEnabled(bdEmoteSettingIDs[k]));\n }\n\n get MessageContentComponent() {\n return modules__WEBPACK_IMPORTED_MODULE_2__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n }\n\n isCategoryEnabled(id) {\n return super.get(\"emotes\", \"categories\", id);\n }\n\n get(id) {\n return super.get(\"emotes\", \"general\", id);\n }\n\n async enabled() {// Disable emote module for now because it's annoying and slow\n // await this.getBlacklist();\n // await this.loadEmoteData(EmoteInfo);\n // while (!this.MessageContentComponent) await new Promise(resolve => setTimeout(resolve, 100));\n // this.patchMessageContent();\n }\n\n disabled() {\n this.emptyEmotes();\n if (this.cancelEmoteRender) return;\n this.cancelEmoteRender();\n delete this.cancelEmoteRender;\n }\n\n emptyEmotes() {\n for (const cat in data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"]) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"], {\n [cat]: {}\n });\n }\n\n patchMessageContent() {\n if (this.cancelEmoteRender) return;\n this.cancelEmoteRender = modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].monkeyPatch(this.MessageContentComponent.prototype, \"render\", {\n after: ({\n returnValue\n }) => {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].monkeyPatch(returnValue.props, \"children\", {\n silent: true,\n after: ({\n returnValue\n }) => {\n if (this.categories.length == 0) return;\n const markup = returnValue.props.children[1];\n if (!markup.props.children) return;\n const nodes = markup.props.children[1];\n if (!nodes || !nodes.length) return;\n\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (typeof node !== \"string\") continue;\n const words = node.split(/([^\\s]+)([\\s]|$)/g);\n\n for (let c = 0, clen = this.categories.length; c < clen; c++) {\n for (let w = 0, wlen = words.length; w < wlen; w++) {\n const emote = words[w];\n const emoteSplit = emote.split(\":\");\n const emoteName = emoteSplit[0];\n let emoteModifier = emoteSplit[1] ? emoteSplit[1] : \"\";\n let emoteOverride = emoteModifier.slice(0);\n if (emoteName.length < 4 || data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteBlacklist\"].includes(emoteName)) continue;\n if (!data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteModifiers\"].includes(emoteModifier) || !modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"general\", \"modifiers\")) emoteModifier = \"\";\n if (!data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteOverrides\"].includes(emoteOverride)) emoteOverride = \"\";else emoteModifier = emoteOverride;\n let current = this.categories[c];\n\n if (emoteOverride === \"twitch\") {\n if (data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchGlobal[emoteName]) current = \"TwitchGlobal\";else if (data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].TwitchSubscriber[emoteName]) current = \"TwitchSubscriber\";\n } else if (emoteOverride === \"bttv\") {\n if (data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].BTTV[emoteName]) current = \"BTTV\";else if (data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].BTTV2[emoteName]) current = \"BTTV2\";\n } else if (emoteOverride === \"ffz\") {\n if (data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"].FrankerFaceZ[emoteName]) current = \"FrankerFaceZ\";\n }\n\n if (!data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"][current][emoteName] || !modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"categories\", bdEmoteSettingIDs[current])) continue;\n const results = nodes[n].match(new RegExp(`([\\\\s]|^)${modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].escape(emoteModifier ? emoteName + \":\" + emoteModifier : emoteName)}([\\\\s]|$)`));\n if (!results) continue;\n const pre = nodes[n].substring(0, results.index + results[1].length);\n const post = nodes[n].substring(results.index + results[0].length - results[2].length);\n nodes[n] = pre;\n const emoteComponent = modules__WEBPACK_IMPORTED_MODULE_2__[\"DiscordModules\"].React.createElement(_ui_emote__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n name: emoteName,\n url: data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"][current][emoteName],\n modifier: emoteModifier\n });\n nodes.splice(n + 1, 0, post);\n nodes.splice(n + 1, 0, emoteComponent);\n }\n }\n }\n\n const onlyEmotes = nodes.every(r => {\n if (typeof r == \"string\" && r.replace(/\\s*/, \"\") == \"\") return true;else if (r.type && r.type.name == \"BDEmote\") return true;else if (r.props && r.props.children && r.props.children.props && r.props.children.props.emojiName) return true;\n return false;\n });\n if (!onlyEmotes) return;\n\n for (const node of nodes) {\n if (typeof node != \"object\") continue;\n if (node.type.name == \"BDEmote\") node.props.jumboable = true;else if (node.props && node.props.children && node.props.children.props && node.props.children.props.emojiName) node.props.children.props.jumboable = true;\n }\n }\n });\n }\n });\n }\n\n async loadEmoteData(emoteInfo) {\n const _fs = __webpack_require__(/*! fs */ \"fs\");\n\n const emoteFile = \"emote_data.json\";\n const file = data__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].dataPath + emoteFile;\n\n const exists = _fs.existsSync(file);\n\n if (exists && this.isCacheValid()) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Loading emotes from cache.\", {\n type: \"info\"\n });\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Loading emotes from local cache.\");\n const data = await new Promise(resolve => {\n _fs.readFile(file, \"utf8\", (err, data) => {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Emotes loaded from cache.\");\n if (err) data = {};\n resolve(data);\n });\n });\n let isValid = modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].testJSON(data);\n if (isValid) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"], JSON.parse(data));\n\n for (const e in emoteInfo) {\n isValid = Object.keys(data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"][emoteInfo[e].variable]).length > 0;\n }\n\n if (isValid) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Emotes successfully loaded.\", {\n type: \"success\"\n });\n data__WEBPACK_IMPORTED_MODULE_1__[\"State\"].emotesLoaded = true;\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].dispatch(\"emotes-loaded\");\n return;\n }\n\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Cache was corrupt, downloading...\");\n\n _fs.unlinkSync(file);\n }\n\n if (!modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"general\", \"download\")) return;\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Downloading emotes in the background do not reload.\", {\n type: \"info\"\n });\n\n for (const e in emoteInfo) {\n await new Promise(r => setTimeout(r, 1000));\n const data = await this.downloadEmotes(emoteInfo[e]);\n data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"][emoteInfo[e].variable] = data;\n }\n\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"All emotes successfully downloaded.\", {\n type: \"success\"\n });\n\n try {\n _fs.writeFileSync(file, JSON.stringify(data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"]), \"utf8\");\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not save emote data.\", err);\n }\n\n data__WEBPACK_IMPORTED_MODULE_1__[\"State\"].emotesLoaded = true;\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].dispatch(\"emotes-loaded\");\n }\n\n downloadEmotes(emoteMeta) {\n const request = __webpack_require__(/*! request */ \"request\");\n\n const options = {\n url: emoteMeta.url,\n timeout: emoteMeta.timeout ? emoteMeta.timeout : 5000\n };\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", `Downloading: ${emoteMeta.variable} (${emoteMeta.url})`);\n return new Promise((resolve, reject) => {\n request(options, (error, response, body) => {\n if (error) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not download \" + emoteMeta.variable, error);\n\n if (emoteMeta.backup) {\n emoteMeta.url = emoteMeta.backup;\n emoteMeta.backup = null;\n if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser;\n return resolve(this.downloadEmotes(emoteMeta));\n }\n\n return reject({});\n }\n\n let parsedData = {};\n\n try {\n parsedData = JSON.parse(body);\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not download \" + emoteMeta.variable, err);\n\n if (emoteMeta.backup) {\n emoteMeta.url = emoteMeta.backup;\n emoteMeta.backup = null;\n if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser;\n return resolve(this.downloadEmotes(emoteMeta));\n }\n\n return reject({});\n }\n\n if (typeof emoteMeta.parser === \"function\") parsedData = emoteMeta.parser(parsedData);\n\n for (const emote in parsedData) {\n if (emote.length < 4 || data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteBlacklist\"].includes(emote)) {\n delete parsedData[emote];\n continue;\n }\n\n parsedData[emote] = emoteMeta.getEmoteURL(parsedData[emote]);\n }\n\n resolve(parsedData);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Downloaded: \" + emoteMeta.variable);\n });\n });\n }\n\n getBlacklist() {\n return new Promise(resolve => {\n $.getJSON(`https://rauenzi.github.io/BetterDiscordApp/data/emotefilter.json`, function (data) {\n resolve(data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteBlacklist\"].push(...data.blacklist));\n });\n });\n }\n\n isCacheValid() {\n const cacheLength = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"emoteCacheDays\") || modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDays\", 7) || 7;\n const cacheDate = new Date(modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"emoteCacheDate\") || null);\n const currentDate = new Date();\n const daysBetween = Math.round(Math.abs((currentDate.getTime() - cacheDate.getTime()) / (24 * 60 * 60 * 1000)));\n\n if (daysBetween > cacheLength) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDate\", currentDate.toJSON());\n return false;\n }\n\n return true;\n }\n\n clearEmoteData() {\n const _fs = __webpack_require__(/*! fs */ \"fs\");\n\n const emoteFile = \"emote_data.json\";\n const file = data__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].dataPath + emoteFile;\n\n const exists = _fs.existsSync(file);\n\n if (exists) _fs.unlinkSync(file);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDate\", new Date().toJSON());\n\n for (const category in data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"]) Object.assign(data__WEBPACK_IMPORTED_MODULE_1__[\"Emotes\"], {\n [category]: {}\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3Rlcy5qcz82YTA0Il0sIm5hbWVzIjpbImJkRW1vdGVTZXR0aW5nSURzIiwiVHdpdGNoR2xvYmFsIiwiVHdpdGNoU3Vic2NyaWJlciIsIkJUVFYiLCJGcmFua2VyRmFjZVoiLCJCVFRWMiIsIkVtb3RlTW9kdWxlIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImNhdGVnb3JpZXMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwiayIsImlzQ2F0ZWdvcnlFbmFibGVkIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJoYXNPd25Qcm9wZXJ0eSIsImdldCIsImVuYWJsZWQiLCJkaXNhYmxlZCIsImVtcHR5RW1vdGVzIiwiY2FuY2VsRW1vdGVSZW5kZXIiLCJjYXQiLCJFbW90ZXMiLCJhc3NpZ24iLCJwYXRjaE1lc3NhZ2VDb250ZW50IiwiVXRpbGl0aWVzIiwibW9ua2V5UGF0Y2giLCJwcm90b3R5cGUiLCJhZnRlciIsInJldHVyblZhbHVlIiwicHJvcHMiLCJzaWxlbnQiLCJsZW5ndGgiLCJtYXJrdXAiLCJjaGlsZHJlbiIsIm5vZGVzIiwibiIsIm5vZGUiLCJ3b3JkcyIsInNwbGl0IiwiYyIsImNsZW4iLCJ3Iiwid2xlbiIsImVtb3RlIiwiZW1vdGVTcGxpdCIsImVtb3RlTmFtZSIsImVtb3RlTW9kaWZpZXIiLCJlbW90ZU92ZXJyaWRlIiwic2xpY2UiLCJFbW90ZUJsYWNrbGlzdCIsImluY2x1ZGVzIiwiRW1vdGVNb2RpZmllcnMiLCJTZXR0aW5ncyIsIkVtb3RlT3ZlcnJpZGVzIiwiY3VycmVudCIsInJlc3VsdHMiLCJtYXRjaCIsIlJlZ0V4cCIsImVzY2FwZSIsInByZSIsInN1YnN0cmluZyIsImluZGV4IiwicG9zdCIsImVtb3RlQ29tcG9uZW50IiwiRGlzY29yZE1vZHVsZXMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJCREVtb3RlIiwidXJsIiwibW9kaWZpZXIiLCJzcGxpY2UiLCJvbmx5RW1vdGVzIiwiZXZlcnkiLCJyIiwicmVwbGFjZSIsInR5cGUiLCJlbW9qaU5hbWUiLCJqdW1ib2FibGUiLCJsb2FkRW1vdGVEYXRhIiwiZW1vdGVJbmZvIiwiX2ZzIiwicmVxdWlyZSIsImVtb3RlRmlsZSIsImZpbGUiLCJDb25maWciLCJkYXRhUGF0aCIsImV4aXN0cyIsImV4aXN0c1N5bmMiLCJpc0NhY2hlVmFsaWQiLCJUb2FzdHMiLCJzaG93IiwibG9nIiwiZGF0YSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVhZEZpbGUiLCJlcnIiLCJpc1ZhbGlkIiwidGVzdEpTT04iLCJKU09OIiwicGFyc2UiLCJlIiwidmFyaWFibGUiLCJTdGF0ZSIsImVtb3Rlc0xvYWRlZCIsIkV2ZW50cyIsImRpc3BhdGNoIiwidW5saW5rU3luYyIsInNldFRpbWVvdXQiLCJkb3dubG9hZEVtb3RlcyIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiLCJlbW90ZU1ldGEiLCJyZXF1ZXN0Iiwib3B0aW9ucyIsInRpbWVvdXQiLCJyZWplY3QiLCJlcnJvciIsInJlc3BvbnNlIiwiYm9keSIsImJhY2t1cCIsImJhY2t1cFBhcnNlciIsInBhcnNlciIsInBhcnNlZERhdGEiLCJnZXRFbW90ZVVSTCIsImdldEJsYWNrbGlzdCIsIiQiLCJnZXRKU09OIiwicHVzaCIsImJsYWNrbGlzdCIsImNhY2hlTGVuZ3RoIiwiRGF0YVN0b3JlIiwiZ2V0QkREYXRhIiwic2V0QkREYXRhIiwiY2FjaGVEYXRlIiwiRGF0ZSIsImN1cnJlbnREYXRlIiwiZGF5c0JldHdlZW4iLCJNYXRoIiwicm91bmQiLCJhYnMiLCJnZXRUaW1lIiwidG9KU09OIiwiY2xlYXJFbW90ZURhdGEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFN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R0FBTCxDQUFTLENBQUNKLFdBQVcsQ0FBQ0ssT0FBWixLQUF3QlAsU0FBUyxDQUFDTyxPQUFWLEVBQXpCLEtBQWlELEtBQUssRUFBTCxHQUFVLEVBQVYsR0FBZSxJQUFoRSxDQUFULENBQVgsQ0FBcEI7O0FBQ0EsUUFBSUosV0FBVyxHQUFHUCxXQUFsQixFQUErQjtBQUMzQkMsdURBQVMsQ0FBQ0UsU0FBVixDQUFvQixnQkFBcEIsRUFBc0NHLFdBQVcsQ0FBQ00sTUFBWixFQUF0QztBQUNBLGFBQU8sS0FBUDtBQUNIOztBQUNELFdBQU8sSUFBUDtBQUNIOztBQUVEQyxnQkFBYyxHQUFHO0FBQ2IsVUFBTS9ELEdBQUcsR0FBR0MsbUJBQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLFVBQU1DLFNBQVMsR0FBRyxpQkFBbEI7QUFDQSxVQUFNQyxJQUFJLEdBQUdDLDJDQUFNLENBQUNDLFFBQVAsR0FBa0JILFNBQS9COztBQUNBLFVBQU1JLE1BQU0sR0FBR04sR0FBRyxDQUFDTyxVQUFKLENBQWVKLElBQWYsQ0FBZjs7QUFDQSxRQUFJRyxNQUFKLEVBQVlOLEdBQUcsQ0FBQzJCLFVBQUosQ0FBZXhCLElBQWY7QUFDWmdELHFEQUFTLENBQUNFLFNBQVYsQ0FBb0IsZ0JBQXBCLEVBQXVDLElBQUlFLElBQUosRUFBRCxDQUFhTyxNQUFiLEVBQXRDOztBQUNBLFNBQUssTUFBTTdJLFFBQVgsSUFBdUJvQiwyQ0FBdkIsRUFBK0JqQixNQUFNLENBQUNrQixNQUFQLENBQWNELDJDQUFkLEVBQXNCO0FBQUMsT0FBQ3BCLFFBQUQsR0FBWTtBQUFiLEtBQXRCO0FBQ2xDOztBQTlPZ0QsQ0FBdEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9lbW90ZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcblxyXG5pbXBvcnQge0NvbmZpZywgRW1vdGVzLCBFbW90ZUJsYWNrbGlzdCwgRW1vdGVJbmZvLCBFbW90ZU1vZGlmaWVycywgRW1vdGVPdmVycmlkZXMsIFN0YXRlfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1V0aWxpdGllcywgV2VicGFja01vZHVsZXMsIERhdGFTdG9yZSwgRGlzY29yZE1vZHVsZXMsIEV2ZW50cywgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBCREVtb3RlIGZyb20gXCIuLi91aS9lbW90ZVwiO1xyXG5pbXBvcnQge1RvYXN0c30gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBiZEVtb3RlU2V0dGluZ0lEcyA9IHtcclxuICAgIFR3aXRjaEdsb2JhbDogXCJ0d2l0Y2hcIixcclxuICAgIFR3aXRjaFN1YnNjcmliZXI6IFwidHdpdGNoXCIsXHJcbiAgICBCVFRWOiBcImJ0dHZcIixcclxuICAgIEZyYW5rZXJGYWNlWjogXCJmZnpcIixcclxuICAgIEJUVFYyOiBcImJ0dHZcIlxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIEVtb3RlTW9kdWxlIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJFbW90ZXNcIjt9XHJcbiAgICBnZXQgY29sbGVjdGlvbigpIHtyZXR1cm4gXCJzZXR0aW5nc1wiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJnZW5lcmFsXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImVtb3Rlc1wiO31cclxuICAgIGdldCBjYXRlZ29yaWVzKCkgeyByZXR1cm4gT2JqZWN0LmtleXMoYmRFbW90ZVNldHRpbmdJRHMpLmZpbHRlcihrID0+IHRoaXMuaXNDYXRlZ29yeUVuYWJsZWQoYmRFbW90ZVNldHRpbmdJRHNba10pKTsgfVxyXG5cclxuICAgIGdldCBNZXNzYWdlQ29udGVudENvbXBvbmVudCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5kZWZhdWx0UHJvcHMuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlQnV0dG9uc1wiKSk7fVxyXG5cclxuICAgIGlzQ2F0ZWdvcnlFbmFibGVkKGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldChcImVtb3Rlc1wiLCBcImNhdGVnb3JpZXNcIiwgaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChpZCkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5nZXQoXCJlbW90ZXNcIiwgXCJnZW5lcmFsXCIsIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGVkKCkge1xyXG4gICAgICAgIC8vIERpc2FibGUgZW1vdGUgbW9kdWxlIGZvciBub3cgYmVjYXVzZSBpdCdzIGFubm95aW5nIGFuZCBzbG93XHJcbiAgICAgICAgLy8gYXdhaXQgdGhpcy5nZXRCbGFja2xpc3QoKTtcclxuICAgICAgICAvLyBhd2FpdCB0aGlzLmxvYWRFbW90ZURhdGEoRW1vdGVJbmZvKTtcclxuXHJcbiAgICAgICAgLy8gd2hpbGUgKCF0aGlzLk1lc3NhZ2VDb250ZW50Q29tcG9uZW50KSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7XHJcbiAgICAgICAgLy8gdGhpcy5wYXRjaE1lc3NhZ2VDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5lbXB0eUVtb3RlcygpO1xyXG4gICAgICAgIGlmICh0aGlzLmNhbmNlbEVtb3RlUmVuZGVyKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYW5jZWxFbW90ZVJlbmRlcigpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNhbmNlbEVtb3RlUmVuZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGVtcHR5RW1vdGVzKCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY2F0IGluIEVtb3RlcykgT2JqZWN0LmFzc2lnbihFbW90ZXMsIHtbY2F0XToge319KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaE1lc3NhZ2VDb250ZW50KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNhbmNlbEVtb3RlUmVuZGVyKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYW5jZWxFbW90ZVJlbmRlciA9IFV0aWxpdGllcy5tb25rZXlQYXRjaCh0aGlzLk1lc3NhZ2VDb250ZW50Q29tcG9uZW50LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoe3JldHVyblZhbHVlfSkgPT4ge1xyXG4gICAgICAgICAgICBVdGlsaXRpZXMubW9ua2V5UGF0Y2gocmV0dXJuVmFsdWUucHJvcHMsIFwiY2hpbGRyZW5cIiwge3NpbGVudDogdHJ1ZSwgYWZ0ZXI6ICh7cmV0dXJuVmFsdWV9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrdXAgPSByZXR1cm5WYWx1ZS5wcm9wcy5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgICAgIGlmICghbWFya3VwLnByb3BzLmNoaWxkcmVuKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlcyA9IG1hcmt1cC5wcm9wcy5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgICAgIGlmICghbm9kZXMgfHwgIW5vZGVzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBub2Rlcy5sZW5ndGg7IG4rKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tuXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mKG5vZGUpICE9PSBcInN0cmluZ1wiKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JkcyA9IG5vZGUuc3BsaXQoLyhbXlxcc10rKShbXFxzXXwkKS9nKTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjID0gMCwgY2xlbiA9IHRoaXMuY2F0ZWdvcmllcy5sZW5ndGg7IGMgPCBjbGVuOyBjKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgdyA9IDAsIHdsZW4gPSB3b3Jkcy5sZW5ndGg7IHcgPCB3bGVuOyB3KyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlID0gd29yZHNbd107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbW90ZVNwbGl0ID0gZW1vdGUuc3BsaXQoXCI6XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1vdGVOYW1lID0gZW1vdGVTcGxpdFswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbW90ZU1vZGlmaWVyID0gZW1vdGVTcGxpdFsxXSA/IGVtb3RlU3BsaXRbMV0gOiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVtb3RlT3ZlcnJpZGUgPSBlbW90ZU1vZGlmaWVyLnNsaWNlKDApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbW90ZU5hbWUubGVuZ3RoIDwgNCB8fCBFbW90ZUJsYWNrbGlzdC5pbmNsdWRlcyhlbW90ZU5hbWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghRW1vdGVNb2RpZmllcnMuaW5jbHVkZXMoZW1vdGVNb2RpZmllcikgfHwgIVNldHRpbmdzLmdldCh0aGlzLmNhdGVnb3J5LCBcImdlbmVyYWxcIiwgXCJtb2RpZmllcnNcIikpIGVtb3RlTW9kaWZpZXIgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFFbW90ZU92ZXJyaWRlcy5pbmNsdWRlcyhlbW90ZU92ZXJyaWRlKSkgZW1vdGVPdmVycmlkZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGVtb3RlTW9kaWZpZXIgPSBlbW90ZU92ZXJyaWRlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gdGhpcy5jYXRlZ29yaWVzW2NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwidHdpdGNoXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRW1vdGVzLlR3aXRjaEdsb2JhbFtlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJUd2l0Y2hHbG9iYWxcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChFbW90ZXMuVHdpdGNoU3Vic2NyaWJlcltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJUd2l0Y2hTdWJzY3JpYmVyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbW90ZU92ZXJyaWRlID09PSBcImJ0dHZcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChFbW90ZXMuQlRUVltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJCVFRWXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoRW1vdGVzLkJUVFYyW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIkJUVFYyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbW90ZU92ZXJyaWRlID09PSBcImZmelwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEVtb3Rlcy5GcmFua2VyRmFjZVpbZW1vdGVOYW1lXSkgY3VycmVudCA9IFwiRnJhbmtlckZhY2VaXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFFbW90ZXNbY3VycmVudF1bZW1vdGVOYW1lXSB8fCAhU2V0dGluZ3MuZ2V0KHRoaXMuY2F0ZWdvcnksIFwiY2F0ZWdvcmllc1wiLCBiZEVtb3RlU2V0dGluZ0lEc1tjdXJyZW50XSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IG5vZGVzW25dLm1hdGNoKG5ldyBSZWdFeHAoYChbXFxcXHNdfF4pJHtVdGlsaXRpZXMuZXNjYXBlKGVtb3RlTW9kaWZpZXIgPyBlbW90ZU5hbWUgKyBcIjpcIiArIGVtb3RlTW9kaWZpZXIgOiBlbW90ZU5hbWUpfShbXFxcXHNdfCQpYCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRzKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IG5vZGVzW25dLnN1YnN0cmluZygwLCByZXN1bHRzLmluZGV4ICsgcmVzdWx0c1sxXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zdCA9IG5vZGVzW25dLnN1YnN0cmluZyhyZXN1bHRzLmluZGV4ICsgcmVzdWx0c1swXS5sZW5ndGggLSByZXN1bHRzWzJdLmxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlc1tuXSA9IHByZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlQ29tcG9uZW50ID0gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChCREVtb3RlLCB7bmFtZTogZW1vdGVOYW1lLCB1cmw6IEVtb3Rlc1tjdXJyZW50XVtlbW90ZU5hbWVdLCBtb2RpZmllcjogZW1vdGVNb2RpZmllcn0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXMuc3BsaWNlKG4gKyAxLCAwLCBwb3N0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzLnNwbGljZShuICsgMSwgMCwgZW1vdGVDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3Qgb25seUVtb3RlcyA9IG5vZGVzLmV2ZXJ5KHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YocikgPT0gXCJzdHJpbmdcIiAmJiByLnJlcGxhY2UoL1xccyovLCBcIlwiKSA9PSBcIlwiKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyLnR5cGUgJiYgci50eXBlLm5hbWUgPT0gXCJCREVtb3RlXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHIucHJvcHMgJiYgci5wcm9wcy5jaGlsZHJlbiAmJiByLnByb3BzLmNoaWxkcmVuLnByb3BzICYmIHIucHJvcHMuY2hpbGRyZW4ucHJvcHMuZW1vamlOYW1lKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmICghb25seUVtb3RlcykgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yobm9kZSkgIT0gXCJvYmplY3RcIikgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUudHlwZS5uYW1lID09IFwiQkRFbW90ZVwiKSBub2RlLnByb3BzLmp1bWJvYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobm9kZS5wcm9wcyAmJiBub2RlLnByb3BzLmNoaWxkcmVuICYmIG5vZGUucHJvcHMuY2hpbGRyZW4ucHJvcHMgJiYgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcy5lbW9qaU5hbWUpIG5vZGUucHJvcHMuY2hpbGRyZW4ucHJvcHMuanVtYm9hYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBsb2FkRW1vdGVEYXRhKGVtb3RlSW5mbykge1xyXG4gICAgICAgIGNvbnN0IF9mcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuICAgICAgICBjb25zdCBlbW90ZUZpbGUgPSBcImVtb3RlX2RhdGEuanNvblwiO1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBDb25maWcuZGF0YVBhdGggKyBlbW90ZUZpbGU7XHJcbiAgICAgICAgY29uc3QgZXhpc3RzID0gX2ZzLmV4aXN0c1N5bmMoZmlsZSk7XHJcblxyXG4gICAgICAgIGlmIChleGlzdHMgJiYgdGhpcy5pc0NhY2hlVmFsaWQoKSkge1xyXG4gICAgICAgICAgICBUb2FzdHMuc2hvdyhcIkxvYWRpbmcgZW1vdGVzIGZyb20gY2FjaGUuXCIsIHt0eXBlOiBcImluZm9cIn0pO1xyXG4gICAgICAgICAgICBVdGlsaXRpZXMubG9nKFwiRW1vdGVzXCIsIFwiTG9hZGluZyBlbW90ZXMgZnJvbSBsb2NhbCBjYWNoZS5cIik7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBfZnMucmVhZEZpbGUoZmlsZSwgXCJ1dGY4XCIsIChlcnIsIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMubG9nKFwiRW1vdGVzXCIsIFwiRW1vdGVzIGxvYWRlZCBmcm9tIGNhY2hlLlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSBkYXRhID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCBpc1ZhbGlkID0gVXRpbGl0aWVzLnRlc3RKU09OKGRhdGEpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCkgT2JqZWN0LmFzc2lnbihFbW90ZXMsIEpTT04ucGFyc2UoZGF0YSkpO1xyXG5cclxuICAgICAgICAgICAgZm9yIChjb25zdCBlIGluIGVtb3RlSW5mbykge1xyXG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IE9iamVjdC5rZXlzKEVtb3Rlc1tlbW90ZUluZm9bZV0udmFyaWFibGVdKS5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgVG9hc3RzLnNob3coXCJFbW90ZXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC5cIiwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcbiAgICAgICAgICAgICAgICBTdGF0ZS5lbW90ZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgRXZlbnRzLmRpc3BhdGNoKFwiZW1vdGVzLWxvYWRlZFwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgVXRpbGl0aWVzLmxvZyhcIkVtb3Rlc1wiLCBcIkNhY2hlIHdhcyBjb3JydXB0LCBkb3dubG9hZGluZy4uLlwiKTtcclxuICAgICAgICAgICAgX2ZzLnVubGlua1N5bmMoZmlsZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIVNldHRpbmdzLmdldCh0aGlzLmNhdGVnb3J5LCBcImdlbmVyYWxcIiwgXCJkb3dubG9hZFwiKSkgcmV0dXJuO1xyXG4gICAgICAgIFRvYXN0cy5zaG93KFwiRG93bmxvYWRpbmcgZW1vdGVzIGluIHRoZSBiYWNrZ3JvdW5kIGRvIG5vdCByZWxvYWQuXCIsIHt0eXBlOiBcImluZm9cIn0pO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGUgaW4gZW1vdGVJbmZvKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCAxMDAwKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRvd25sb2FkRW1vdGVzKGVtb3RlSW5mb1tlXSk7XHJcbiAgICAgICAgICAgIEVtb3Rlc1tlbW90ZUluZm9bZV0udmFyaWFibGVdID0gZGF0YTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIFRvYXN0cy5zaG93KFwiQWxsIGVtb3RlcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZC5cIiwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcblxyXG4gICAgICAgIHRyeSB7IF9mcy53cml0ZUZpbGVTeW5jKGZpbGUsIEpTT04uc3RyaW5naWZ5KEVtb3RlcyksIFwidXRmOFwiKTsgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHsgVXRpbGl0aWVzLmVycihcIkVtb3Rlc1wiLCBcIkNvdWxkIG5vdCBzYXZlIGVtb3RlIGRhdGEuXCIsIGVycik7IH1cclxuXHJcbiAgICAgICAgU3RhdGUuZW1vdGVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkRW1vdGVzKGVtb3RlTWV0YSkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKFwicmVxdWVzdFwiKTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICB1cmw6IGVtb3RlTWV0YS51cmwsXHJcbiAgICAgICAgICAgIHRpbWVvdXQ6IGVtb3RlTWV0YS50aW1lb3V0ID8gZW1vdGVNZXRhLnRpbWVvdXQgOiA1MDAwXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyhcIkVtb3Rlc1wiLCBgRG93bmxvYWRpbmc6ICR7ZW1vdGVNZXRhLnZhcmlhYmxlfSAoJHtlbW90ZU1ldGEudXJsfSlgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgcmVxdWVzdChvcHRpb25zLCAoZXJyb3IsIHJlc3BvbnNlLCBib2R5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuZXJyKFwiRW1vdGVzXCIsIFwiQ291bGQgbm90IGRvd25sb2FkIFwiICsgZW1vdGVNZXRhLnZhcmlhYmxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTWV0YS5iYWNrdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLnVybCA9IGVtb3RlTWV0YS5iYWNrdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtb3RlTWV0YS5iYWNrdXAgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGVNZXRhLmJhY2t1cFBhcnNlcikgZW1vdGVNZXRhLnBhcnNlciA9IGVtb3RlTWV0YS5iYWNrdXBQYXJzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRoaXMuZG93bmxvYWRFbW90ZXMoZW1vdGVNZXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3Qoe30pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWREYXRhID0ge307XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy5lcnIoXCJFbW90ZXNcIiwgXCJDb3VsZCBub3QgZG93bmxvYWQgXCIgKyBlbW90ZU1ldGEudmFyaWFibGUsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTWV0YS5iYWNrdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLnVybCA9IGVtb3RlTWV0YS5iYWNrdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtb3RlTWV0YS5iYWNrdXAgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGVNZXRhLmJhY2t1cFBhcnNlcikgZW1vdGVNZXRhLnBhcnNlciA9IGVtb3RlTWV0YS5iYWNrdXBQYXJzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRoaXMuZG93bmxvYWRFbW90ZXMoZW1vdGVNZXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3Qoe30pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihlbW90ZU1ldGEucGFyc2VyKSA9PT0gXCJmdW5jdGlvblwiKSBwYXJzZWREYXRhID0gZW1vdGVNZXRhLnBhcnNlcihwYXJzZWREYXRhKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVtb3RlIGluIHBhcnNlZERhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGUubGVuZ3RoIDwgNCB8fCBFbW90ZUJsYWNrbGlzdC5pbmNsdWRlcyhlbW90ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZERhdGFbZW1vdGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkRGF0YVtlbW90ZV0gPSBlbW90ZU1ldGEuZ2V0RW1vdGVVUkwocGFyc2VkRGF0YVtlbW90ZV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShwYXJzZWREYXRhKTtcclxuICAgICAgICAgICAgICAgIFV0aWxpdGllcy5sb2coXCJFbW90ZXNcIiwgXCJEb3dubG9hZGVkOiBcIiArIGVtb3RlTWV0YS52YXJpYWJsZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJsYWNrbGlzdCgpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgICQuZ2V0SlNPTihgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVmaWx0ZXIuanNvbmAsIGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKEVtb3RlQmxhY2tsaXN0LnB1c2goLi4uZGF0YS5ibGFja2xpc3QpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNDYWNoZVZhbGlkKCkge1xyXG4gICAgICAgIGNvbnN0IGNhY2hlTGVuZ3RoID0gRGF0YVN0b3JlLmdldEJERGF0YShcImVtb3RlQ2FjaGVEYXlzXCIpIHx8IERhdGFTdG9yZS5zZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF5c1wiLCA3KSB8fCA3O1xyXG4gICAgICAgIGNvbnN0IGNhY2hlRGF0ZSA9IG5ldyBEYXRlKERhdGFTdG9yZS5nZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF0ZVwiKSB8fCBudWxsKTtcclxuICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF5c0JldHdlZW4gPSBNYXRoLnJvdW5kKE1hdGguYWJzKChjdXJyZW50RGF0ZS5nZXRUaW1lKCkgLSBjYWNoZURhdGUuZ2V0VGltZSgpKSAvICgyNCAqIDYwICogNjAgKiAxMDAwKSkpO1xyXG4gICAgICAgIGlmIChkYXlzQmV0d2VlbiA+IGNhY2hlTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF0ZVwiLCBjdXJyZW50RGF0ZS50b0pTT04oKSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJFbW90ZURhdGEoKSB7XHJcbiAgICAgICAgY29uc3QgX2ZzID0gcmVxdWlyZShcImZzXCIpO1xyXG4gICAgICAgIGNvbnN0IGVtb3RlRmlsZSA9IFwiZW1vdGVfZGF0YS5qc29uXCI7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IENvbmZpZy5kYXRhUGF0aCArIGVtb3RlRmlsZTtcclxuICAgICAgICBjb25zdCBleGlzdHMgPSBfZnMuZXhpc3RzU3luYyhmaWxlKTtcclxuICAgICAgICBpZiAoZXhpc3RzKSBfZnMudW5saW5rU3luYyhmaWxlKTtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiZW1vdGVDYWNoZURhdGVcIiwgKG5ldyBEYXRlKCkpLnRvSlNPTigpKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IGluIEVtb3RlcykgT2JqZWN0LmFzc2lnbihFbW90ZXMsIHtbY2F0ZWdvcnldOiB7fX0pO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/emotes.js\n"); /***/ }), @@ -1241,57 +203,7 @@ const bdEmoteSettingIDs = { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); - -/* harmony default export */ __webpack_exports__["default"] = (new class MinimalMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "MinimalMode"; - } - - get category() { - return "appearance"; - } - - get id() { - return "minimalMode"; - } - - get hideChannelsID() { - return "hideChannels"; - } - - get hideChannels() { - return this.get(this.hideChannelsID); - } - - constructor() { - super(); - this.enableHideChannels = this.enableHideChannels.bind(this); - this.disableHideChannels = this.disableHideChannels.bind(this); - } - - enabled() { - $("body").addClass("bd-minimal"); - if (this.hideChannels) this.enableHideChannels(); - this.hideChannelCancel = this.registerSetting(this.hideChannelsID, this.enableHideChannels, this.disableHideChannels); - } - - disabled() { - $("body").removeClass("bd-minimal"); - if (this.hideChannels) this.disableHideChannels(); - if (this.hideChannelCancel) this.hideChannelCancel(); - } - - enableHideChannels() { - $("body").addClass("bd-minimal-chan"); - } - - disableHideChannels() { - $("body").removeClass("bd-minimal-chan"); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class MinimalMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"MinimalMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"minimalMode\";\n }\n\n get hideChannelsID() {\n return \"hideChannels\";\n }\n\n get hideChannels() {\n return this.get(this.hideChannelsID);\n }\n\n constructor() {\n super();\n this.enableHideChannels = this.enableHideChannels.bind(this);\n this.disableHideChannels = this.disableHideChannels.bind(this);\n }\n\n enabled() {\n $(\"body\").addClass(\"bd-minimal\");\n if (this.hideChannels) this.enableHideChannels();\n this.hideChannelCancel = this.registerSetting(this.hideChannelsID, this.enableHideChannels, this.disableHideChannels);\n }\n\n disabled() {\n $(\"body\").removeClass(\"bd-minimal\");\n if (this.hideChannels) this.disableHideChannels();\n if (this.hideChannelCancel) this.hideChannelCancel();\n }\n\n enableHideChannels() {\n $(\"body\").addClass(\"bd-minimal-chan\");\n }\n\n disableHideChannels() {\n $(\"body\").removeClass(\"bd-minimal-chan\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL21pbmltYWxtb2RlLmpzPzgzMzgiXSwibmFtZXMiOlsiTWluaW1hbE1vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJoaWRlQ2hhbm5lbHNJRCIsImhpZGVDaGFubmVscyIsImdldCIsImNvbnN0cnVjdG9yIiwiZW5hYmxlSGlkZUNoYW5uZWxzIiwiYmluZCIsImRpc2FibGVIaWRlQ2hhbm5lbHMiLCJlbmFibGVkIiwiJCIsImFkZENsYXNzIiwiaGlkZUNoYW5uZWxDYW5jZWwiLCJyZWdpc3RlclNldHRpbmciLCJkaXNhYmxlZCIsInJlbW92ZUNsYXNzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFZSxtRUFBSSxNQUFNQSxXQUFOLFNBQTBCQyx3REFBMUIsQ0FBa0M7QUFDakQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxhQUFQO0FBQXNCOztBQUNsQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ3JDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFDaEMsTUFBSUMsY0FBSixHQUFxQjtBQUFDLFdBQU8sY0FBUDtBQUF1Qjs7QUFDN0MsTUFBSUMsWUFBSixHQUFtQjtBQUFDLFdBQU8sS0FBS0MsR0FBTCxDQUFTLEtBQUtGLGNBQWQsQ0FBUDtBQUFzQzs7QUFFMURHLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEIsS0FBS0Esa0JBQUwsQ0FBd0JDLElBQXhCLENBQTZCLElBQTdCLENBQTFCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkIsS0FBS0EsbUJBQUwsQ0FBeUJELElBQXpCLENBQThCLElBQTlCLENBQTNCO0FBQ0g7O0FBRURFLFNBQU8sR0FBRztBQUNOQyxLQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLFFBQVYsQ0FBbUIsWUFBbkI7QUFDQSxRQUFJLEtBQUtSLFlBQVQsRUFBdUIsS0FBS0csa0JBQUw7QUFDdkIsU0FBS00saUJBQUwsR0FBeUIsS0FBS0MsZUFBTCxDQUFxQixLQUFLWCxjQUExQixFQUEwQyxLQUFLSSxrQkFBL0MsRUFBbUUsS0FBS0UsbUJBQXhFLENBQXpCO0FBQ0g7O0FBRURNLFVBQVEsR0FBRztBQUNQSixLQUFDLENBQUMsTUFBRCxDQUFELENBQVVLLFdBQVYsQ0FBc0IsWUFBdEI7QUFDQSxRQUFJLEtBQUtaLFlBQVQsRUFBdUIsS0FBS0ssbUJBQUw7QUFDdkIsUUFBSSxLQUFLSSxpQkFBVCxFQUE0QixLQUFLQSxpQkFBTDtBQUMvQjs7QUFFRE4sb0JBQWtCLEdBQUc7QUFDakJJLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUMsUUFBVixDQUFtQixpQkFBbkI7QUFDSDs7QUFFREgscUJBQW1CLEdBQUc7QUFDbEJFLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUssV0FBVixDQUFzQixpQkFBdEI7QUFDSDs7QUEvQmdELENBQXRDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvbWluaW1hbG1vZGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgTWluaW1hbE1vZGUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIk1pbmltYWxNb2RlXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFwcGVhcmFuY2VcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwibWluaW1hbE1vZGVcIjt9XHJcbiAgICBnZXQgaGlkZUNoYW5uZWxzSUQoKSB7cmV0dXJuIFwiaGlkZUNoYW5uZWxzXCI7fVxyXG4gICAgZ2V0IGhpZGVDaGFubmVscygpIHtyZXR1cm4gdGhpcy5nZXQodGhpcy5oaWRlQ2hhbm5lbHNJRCk7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMgPSB0aGlzLmVuYWJsZUhpZGVDaGFubmVscy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscyA9IHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVDaGFubmVscykgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMoKTtcclxuICAgICAgICB0aGlzLmhpZGVDaGFubmVsQ2FuY2VsID0gdGhpcy5yZWdpc3RlclNldHRpbmcodGhpcy5oaWRlQ2hhbm5lbHNJRCwgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMsIHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikucmVtb3ZlQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVDaGFubmVscykgdGhpcy5kaXNhYmxlSGlkZUNoYW5uZWxzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwpIHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVIaWRlQ2hhbm5lbHMoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsLWNoYW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUhpZGVDaGFubmVscygpIHtcclxuICAgICAgICAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/minimalmode.js\n"); /***/ }), @@ -1303,91 +215,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); -/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui */ "./src/ui/ui.js"); - - - -/* harmony default export */ __webpack_exports__["default"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "PublicServers"; - } - - get category() { - return "general"; - } - - get id() { - return "publicServers"; - } - - enabled() { - const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__["BDV2"].guildClasses.wrapper.split(" ")[0]; - const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`); - guilds.after(this.button); - } - - disabled() { - $("#bd-pub-li").remove(); - } - - get component() { - return modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__["PublicServers"].Layer, { - rootId: "pubslayerroot", - id: "pubslayer" - }, modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__["PublicServers"].Menu, { - rootId: "pubslayerroot" - })); - } - - get root() { - const _root = document.getElementById("pubslayerroot"); - - if (!_root) { - if (!this.injectRoot()) return null; - return this.root; - } - - return _root; - } - - injectRoot() { - if (!$(".layers, .layers-3iHuyZ").length) return false; - $(".layers, .layers-3iHuyZ").append($("
", { - id: "pubslayerroot" - })); - return true; - } - - render() { - const root = this.root; - - if (!root) { - this.error("FAILED TO LOCATE ROOT: .layers"); - return; - } - - modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].ReactDOM.render(this.component, root); - } - - get button() { - const btn = $("
", { - "class": modules__WEBPACK_IMPORTED_MODULE_1__["BDV2"].guildClasses.listItem, - "id": "bd-pub-li" - }).append($("
", { - "class": "wrapper-25eVIn " + modules__WEBPACK_IMPORTED_MODULE_1__["BDV2"].guildClasses.circleButtonMask, - "text": "public", - "id": "bd-pub-button", - "click": () => { - this.render(); - } - })); - return btn; - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"PublicServers\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"publicServers\";\n }\n\n enabled() {\n const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.wrapper.split(\" \")[0];\n const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n guilds.after(this.button);\n }\n\n disabled() {\n $(\"#bd-pub-li\").remove();\n }\n\n get component() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServers\"].Layer, {\n rootId: \"pubslayerroot\",\n id: \"pubslayer\"\n }, modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServers\"].Menu, {\n rootId: \"pubslayerroot\"\n }));\n }\n\n get root() {\n const _root = document.getElementById(\"pubslayerroot\");\n\n if (!_root) {\n if (!this.injectRoot()) return null;\n return this.root;\n }\n\n return _root;\n }\n\n injectRoot() {\n if (!$(\".layers, .layers-3iHuyZ\").length) return false;\n $(\".layers, .layers-3iHuyZ\").append($(\"
\", {\n id: \"pubslayerroot\"\n }));\n return true;\n }\n\n render() {\n const root = this.root;\n\n if (!root) {\n this.error(\"FAILED TO LOCATE ROOT: .layers\");\n return;\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ReactDOM.render(this.component, root);\n }\n\n get button() {\n const btn = $(\"
\", {\n \"class\": modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.listItem,\n \"id\": \"bd-pub-li\"\n }).append($(\"
\", {\n \"class\": \"wrapper-25eVIn \" + modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.circleButtonMask,\n \"text\": \"public\",\n \"id\": \"bd-pub-button\",\n \"click\": () => {\n this.render();\n }\n }));\n return btn;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanM/MWY2NSJdLCJuYW1lcyI6WyJQdWJsaWNTZXJ2ZXJzIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsIndyYXBwZXIiLCJCRFYyIiwiZ3VpbGRDbGFzc2VzIiwic3BsaXQiLCJndWlsZHMiLCIkIiwiYWZ0ZXIiLCJidXR0b24iLCJkaXNhYmxlZCIsInJlbW92ZSIsImNvbXBvbmVudCIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiUFNDb21wb25lbnRzIiwiTGF5ZXIiLCJyb290SWQiLCJNZW51Iiwicm9vdCIsIl9yb290IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImluamVjdFJvb3QiLCJsZW5ndGgiLCJhcHBlbmQiLCJyZW5kZXIiLCJlcnJvciIsIlJlYWN0RE9NIiwiYnRuIiwibGlzdEl0ZW0iLCJjaXJjbGVCdXR0b25NYXNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxlQUFQO0FBQXdCOztBQUVsQ0MsU0FBTyxHQUFHO0FBQ04sVUFBTUMsT0FBTyxHQUFHQyw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCRixPQUFsQixDQUEwQkcsS0FBMUIsQ0FBZ0MsR0FBaEMsRUFBcUMsQ0FBckMsQ0FBaEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBRSxJQUFHTCxPQUFRLGlDQUFiLENBQWhCO0FBQ0FJLFVBQU0sQ0FBQ0UsS0FBUCxDQUFhLEtBQUtDLE1BQWxCO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQSCxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCSSxNQUFoQjtBQUNIOztBQUVELE1BQUlDLFNBQUosR0FBZ0I7QUFDWixXQUFPQyxzREFBYyxDQUFDQyxLQUFmLENBQXFCQyxhQUFyQixDQUFtQ0MsZ0RBQVksQ0FBQ0MsS0FBaEQsRUFBdUQ7QUFDMURDLFlBQU0sRUFBRSxlQURrRDtBQUUxRGxCLFFBQUUsRUFBRTtBQUZzRCxLQUF2RCxFQUdKYSxzREFBYyxDQUFDQyxLQUFmLENBQXFCQyxhQUFyQixDQUFtQ0MsZ0RBQVksQ0FBQ0csSUFBaEQsRUFBc0Q7QUFBQ0QsWUFBTSxFQUFFO0FBQVQsS0FBdEQsQ0FISSxDQUFQO0FBSUg7O0FBRUQsTUFBSUUsSUFBSixHQUFXO0FBQ1AsVUFBTUMsS0FBSyxHQUFHQyxRQUFRLENBQUNDLGNBQVQsQ0FBd0IsZUFBeEIsQ0FBZDs7QUFDQSxRQUFJLENBQUNGLEtBQUwsRUFBWTtBQUNSLFVBQUksQ0FBQyxLQUFLRyxVQUFMLEVBQUwsRUFBd0IsT0FBTyxJQUFQO0FBQ3hCLGFBQU8sS0FBS0osSUFBWjtBQUNIOztBQUNELFdBQU9DLEtBQVA7QUFDSDs7QUFFREcsWUFBVSxHQUFHO0FBQ1QsUUFBSSxDQUFDakIsQ0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkJrQixNQUFsQyxFQUEwQyxPQUFPLEtBQVA7QUFDMUNsQixLQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2Qm1CLE1BQTdCLENBQW9DbkIsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUM1Q1AsUUFBRSxFQUFFO0FBRHdDLEtBQVgsQ0FBckM7QUFHQSxXQUFPLElBQVA7QUFDSDs7QUFFRDJCLFFBQU0sR0FBRztBQUNMLFVBQU1QLElBQUksR0FBRyxLQUFLQSxJQUFsQjs7QUFDQSxRQUFJLENBQUNBLElBQUwsRUFBVztBQUNQLFdBQUtRLEtBQUwsQ0FBVyxnQ0FBWDtBQUNBO0FBQ0g7O0FBQ0RmLDBEQUFjLENBQUNnQixRQUFmLENBQXdCRixNQUF4QixDQUErQixLQUFLZixTQUFwQyxFQUErQ1EsSUFBL0M7QUFDSDs7QUFFRCxNQUFJWCxNQUFKLEdBQWE7QUFDVCxVQUFNcUIsR0FBRyxHQUFHdkIsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNwQixlQUFTSiw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCMkIsUUFEUDtBQUVwQixZQUFNO0FBRmMsS0FBWCxDQUFELENBR1RMLE1BSFMsQ0FHRm5CLENBQUMsQ0FBQyxRQUFELEVBQVc7QUFDbEIsZUFBUyxvQkFBb0JKLDRDQUFJLENBQUNDLFlBQUwsQ0FBa0I0QixnQkFEN0I7QUFFbEIsY0FBUSxRQUZVO0FBR2xCLFlBQU0sZUFIWTtBQUlsQixlQUFTLE1BQU07QUFBRSxhQUFLTCxNQUFMO0FBQWdCO0FBSmYsS0FBWCxDQUhDLENBQVo7QUFVQSxXQUFPRyxHQUFQO0FBQ0g7O0FBNURrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7QkRWMiwgRGlzY29yZE1vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCB7UHVibGljU2VydmVycyBhcyBQU0NvbXBvbmVudHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlB1YmxpY1NlcnZlcnNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJwdWJsaWNTZXJ2ZXJzXCI7fVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkcyA9ICQoYC4ke3dyYXBwZXJ9IC5zY3JvbGxlci0yRktGUEcgPjpmaXJzdC1jaGlsZGApO1xyXG4gICAgICAgIGd1aWxkcy5hZnRlcih0aGlzLmJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcIiNiZC1wdWItbGlcIikucmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudCgpIHtcclxuICAgICAgICByZXR1cm4gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChQU0NvbXBvbmVudHMuTGF5ZXIsIHtcclxuICAgICAgICAgICAgcm9vdElkOiBcInB1YnNsYXllcnJvb3RcIixcclxuICAgICAgICAgICAgaWQ6IFwicHVic2xheWVyXCJcclxuICAgICAgICB9LCBEaXNjb3JkTW9kdWxlcy5SZWFjdC5jcmVhdGVFbGVtZW50KFBTQ29tcG9uZW50cy5NZW51LCB7cm9vdElkOiBcInB1YnNsYXllcnJvb3RcIn0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdCgpIHtcclxuICAgICAgICBjb25zdCBfcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicHVic2xheWVycm9vdFwiKTtcclxuICAgICAgICBpZiAoIV9yb290KSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pbmplY3RSb290KCkpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gX3Jvb3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaW5qZWN0Um9vdCgpIHtcclxuICAgICAgICBpZiAoISQoXCIubGF5ZXJzLCAubGF5ZXJzLTNpSHV5WlwiKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAkKFwiLmxheWVycywgLmxheWVycy0zaUh1eVpcIikuYXBwZW5kKCQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBpZDogXCJwdWJzbGF5ZXJyb290XCJcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3IoXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllcnNcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgRGlzY29yZE1vZHVsZXMuUmVhY3RET00ucmVuZGVyKHRoaXMuY29tcG9uZW50LCByb290KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnV0dG9uKCkge1xyXG4gICAgICAgIGNvbnN0IGJ0biA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWxpXCJcclxuICAgICAgICB9KS5hcHBlbmQoJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIFwiY2xhc3NcIjogXCJ3cmFwcGVyLTI1ZVZJbiBcIiArIEJEVjIuZ3VpbGRDbGFzc2VzLmNpcmNsZUJ1dHRvbk1hc2ssXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcInB1YmxpY1wiLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWJ1dHRvblwiLFxyXG4gICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHsgdGhpcy5yZW5kZXIoKTsgfVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGJ0bjtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/publicservers.js\n"); /***/ }), @@ -1399,42 +227,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); -/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ "./src/modules/modules.js"); - - -/* harmony default export */ __webpack_exports__["default"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "VoiceDisconnect"; - } - - get category() { - return "general"; - } - - get id() { - return "voiceDisconnect"; - } - - constructor() { - super(); - this.beforeUnload = this.beforeUnload.bind(this); - } - - enabled() { - window.addEventListener("beforeunload", this.beforeUnload); - } - - disabled() { - window.removeEventListener("beforeunload", this.beforeUnload); - } - - beforeUnload() { - modules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].ChannelActions.selectVoiceChannel(null, null); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceDisconnect\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"voiceDisconnect\";\n }\n\n constructor() {\n super();\n this.beforeUnload = this.beforeUnload.bind(this);\n }\n\n enabled() {\n window.addEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n disabled() {\n window.removeEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n beforeUnload() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ChannelActions.selectVoiceChannel(null, null);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcz8yYmVmIl0sIm5hbWVzIjpbIkRhcmtNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiY29uc3RydWN0b3IiLCJiZWZvcmVVbmxvYWQiLCJiaW5kIiwiZW5hYmxlZCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNhYmxlZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJEaXNjb3JkTW9kdWxlcyIsIkNoYW5uZWxBY3Rpb25zIiwic2VsZWN0Vm9pY2VDaGFubmVsIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsUUFBTixTQUF1QkMsd0RBQXZCLENBQStCO0FBQzlDLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8saUJBQVA7QUFBMEI7O0FBQ3RDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFFcENDLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixLQUFLQSxZQUFMLENBQWtCQyxJQUFsQixDQUF1QixJQUF2QixDQUFwQjtBQUNIOztBQUVEQyxTQUFPLEdBQUc7QUFDTkMsVUFBTSxDQUFDQyxnQkFBUCxDQUF3QixjQUF4QixFQUF3QyxLQUFLSixZQUE3QztBQUNIOztBQUVESyxVQUFRLEdBQUc7QUFDUEYsVUFBTSxDQUFDRyxtQkFBUCxDQUEyQixjQUEzQixFQUEyQyxLQUFLTixZQUFoRDtBQUNIOztBQUVEQSxjQUFZLEdBQUc7QUFDWE8sMERBQWMsQ0FBQ0MsY0FBZixDQUE4QkMsa0JBQTlCLENBQWlELElBQWpELEVBQXVELElBQXZEO0FBQ0g7O0FBcEI2QyxDQUFuQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEaXNjb3JkTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVm9pY2VEaXNjb25uZWN0XCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwidm9pY2VEaXNjb25uZWN0XCI7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVVbmxvYWQgPSB0aGlzLmJlZm9yZVVubG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgdGhpcy5iZWZvcmVVbmxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsIHRoaXMuYmVmb3JlVW5sb2FkKTtcclxuICAgIH1cclxuXHJcbiAgICBiZWZvcmVVbmxvYWQoKSB7XHJcbiAgICAgICAgRGlzY29yZE1vZHVsZXMuQ2hhbm5lbEFjdGlvbnMuc2VsZWN0Vm9pY2VDaGFubmVsKG51bGwsIG51bGwpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/voicedisconnect.js\n"); /***/ }), @@ -1446,41 +239,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ "./src/structs/builtin.js"); - -/* harmony default export */ __webpack_exports__["default"] = (new class VoiceMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__["default"] { - get name() { - return "VoiceMode"; - } - - get category() { - return "appearance"; - } - - get id() { - return "voiceMode"; - } - - enabled() { - $(".scroller.guild-channels ul").first().css("display", "none"); - $(".scroller.guild-channels header").first().css("display", "none"); - $(".app.flex-vertical, .app-2rEoOp").first().css("overflow", "hidden"); - $(".chat-3bRxxu").first().css("visibility", "hidden").css("min-width", "0px"); - $(".flex-vertical.channels-wrap").first().css("flex-grow", "100000"); - $(".guild-header .btn.btn-hamburger").first().css("visibility", "hidden"); - } - - disabled() { - $(".scroller.guild-channels ul").first().css("display", ""); - $(".scroller.guild-channels header").first().css("display", ""); - $(".app.flex-vertical, .app-2rEoOp").first().css("overflow", ""); - $(".chat-3bRxxu").first().css("visibility", "").css("min-width", ""); - $(".flex-vertical.channels-wrap").first().css("flex-grow", ""); - $(".guild-header .btn.btn-hamburger").first().css("visibility", ""); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class VoiceMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"voiceMode\";\n }\n\n enabled() {\n $(\".scroller.guild-channels ul\").first().css(\"display\", \"none\");\n $(\".scroller.guild-channels header\").first().css(\"display\", \"none\");\n $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"hidden\");\n $(\".chat-3bRxxu\").first().css(\"visibility\", \"hidden\").css(\"min-width\", \"0px\");\n $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"100000\");\n $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"hidden\");\n }\n\n disabled() {\n $(\".scroller.guild-channels ul\").first().css(\"display\", \"\");\n $(\".scroller.guild-channels header\").first().css(\"display\", \"\");\n $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"\");\n $(\".chat-3bRxxu\").first().css(\"visibility\", \"\").css(\"min-width\", \"\");\n $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"\");\n $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlbW9kZS5qcz80M2E3Il0sIm5hbWVzIjpbIlZvaWNlTW9kZSIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCIkIiwiZmlyc3QiLCJjc3MiLCJkaXNhYmxlZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsU0FBTixTQUF3QkMsd0RBQXhCLENBQWdDO0FBQy9DLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sV0FBUDtBQUFvQjs7QUFDaEMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBRTlCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLDZCQUFELENBQUQsQ0FBaUNDLEtBQWpDLEdBQXlDQyxHQUF6QyxDQUE2QyxTQUE3QyxFQUF3RCxNQUF4RDtBQUNBRixLQUFDLENBQUMsaUNBQUQsQ0FBRCxDQUFxQ0MsS0FBckMsR0FBNkNDLEdBQTdDLENBQWlELFNBQWpELEVBQTRELE1BQTVEO0FBQ0FGLEtBQUMsQ0FBQyxpQ0FBRCxDQUFELENBQXFDQyxLQUFyQyxHQUE2Q0MsR0FBN0MsQ0FBaUQsVUFBakQsRUFBNkQsUUFBN0Q7QUFDQUYsS0FBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQkMsS0FBbEIsR0FBMEJDLEdBQTFCLENBQThCLFlBQTlCLEVBQTRDLFFBQTVDLEVBQXNEQSxHQUF0RCxDQUEwRCxXQUExRCxFQUF1RSxLQUF2RTtBQUNBRixLQUFDLENBQUMsOEJBQUQsQ0FBRCxDQUFrQ0MsS0FBbEMsR0FBMENDLEdBQTFDLENBQThDLFdBQTlDLEVBQTJELFFBQTNEO0FBQ0FGLEtBQUMsQ0FBQyxrQ0FBRCxDQUFELENBQXNDQyxLQUF0QyxHQUE4Q0MsR0FBOUMsQ0FBa0QsWUFBbEQsRUFBZ0UsUUFBaEU7QUFDSDs7QUFFREMsVUFBUSxHQUFHO0FBQ1BILEtBQUMsQ0FBQyw2QkFBRCxDQUFELENBQWlDQyxLQUFqQyxHQUF5Q0MsR0FBekMsQ0FBNkMsU0FBN0MsRUFBd0QsRUFBeEQ7QUFDQUYsS0FBQyxDQUFDLGlDQUFELENBQUQsQ0FBcUNDLEtBQXJDLEdBQTZDQyxHQUE3QyxDQUFpRCxTQUFqRCxFQUE0RCxFQUE1RDtBQUNBRixLQUFDLENBQUMsaUNBQUQsQ0FBRCxDQUFxQ0MsS0FBckMsR0FBNkNDLEdBQTdDLENBQWlELFVBQWpELEVBQTZELEVBQTdEO0FBQ0FGLEtBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JDLEtBQWxCLEdBQTBCQyxHQUExQixDQUE4QixZQUE5QixFQUE0QyxFQUE1QyxFQUFnREEsR0FBaEQsQ0FBb0QsV0FBcEQsRUFBaUUsRUFBakU7QUFDQUYsS0FBQyxDQUFDLDhCQUFELENBQUQsQ0FBa0NDLEtBQWxDLEdBQTBDQyxHQUExQyxDQUE4QyxXQUE5QyxFQUEyRCxFQUEzRDtBQUNBRixLQUFDLENBQUMsa0NBQUQsQ0FBRCxDQUFzQ0MsS0FBdEMsR0FBOENDLEdBQTlDLENBQWtELFlBQWxELEVBQWdFLEVBQWhFO0FBQ0g7O0FBckI4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3ZvaWNlbW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBWb2ljZU1vZGUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlZvaWNlTW9kZVwiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJhcHBlYXJhbmNlXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcInZvaWNlTW9kZVwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoXCIuc2Nyb2xsZXIuZ3VpbGQtY2hhbm5lbHMgdWxcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwibm9uZVwiKTtcclxuICAgICAgICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIGhlYWRlclwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpO1xyXG4gICAgICAgICQoXCIuYXBwLmZsZXgtdmVydGljYWwsIC5hcHAtMnJFb09wXCIpLmZpcnN0KCkuY3NzKFwib3ZlcmZsb3dcIiwgXCJoaWRkZW5cIik7XHJcbiAgICAgICAgJChcIi5jaGF0LTNiUnh4dVwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIikuY3NzKFwibWluLXdpZHRoXCIsIFwiMHB4XCIpO1xyXG4gICAgICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiMTAwMDAwXCIpO1xyXG4gICAgICAgICQoXCIuZ3VpbGQtaGVhZGVyIC5idG4uYnRuLWhhbWJ1cmdlclwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyB1bFwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJcIik7XHJcbiAgICAgICAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyBoZWFkZXJcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuYXBwLmZsZXgtdmVydGljYWwsIC5hcHAtMnJFb09wXCIpLmZpcnN0KCkuY3NzKFwib3ZlcmZsb3dcIiwgXCJcIik7XHJcbiAgICAgICAgJChcIi5jaGF0LTNiUnh4dVwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJcIikuY3NzKFwibWluLXdpZHRoXCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuZ3VpbGQtaGVhZGVyIC5idG4uYnRuLWhhbWJ1cmdlclwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJcIik7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/voicemode.js\n"); /***/ }), @@ -1492,87 +251,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - local: false, - localServer: "//localhost:8080", - minified: true, - version: "0.3.0", - branch: "master", - repo: "rauenzi", - minSupportedVersion: "0.3.0", - bbdVersion: "0.2.17" -}); - -/***/ }), - -/***/ "./src/data/cookies/plugincookie.js": -/*!******************************************!*\ - !*** ./src/data/cookies/plugincookie.js ***! - \******************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({}); - -/***/ }), - -/***/ "./src/data/cookies/settingscookie.js": -/*!********************************************!*\ - !*** ./src/data/cookies/settingscookie.js ***! - \********************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - "bda-gs-1": true, - "bda-gs-2": false, - "bda-gs-3": false, - "bda-gs-4": false, - "bda-gs-5": true, - "bda-gs-6": false, - "bda-gs-7": false, - "bda-gs-8": false, - "bda-es-0": true, - "bda-es-1": true, - "bda-es-2": true, - "bda-es-4": false, - "bda-es-6": true, - "bda-es-7": true, - "bda-gs-b": false, - "bda-es-8": true, - "bda-dc-0": false, - "bda-css-0": false, - "bda-css-1": false, - "bda-es-9": true, - "fork-dm-1": false, - "fork-ps-1": true, - "fork-ps-2": true, - "fork-ps-3": true, - "fork-ps-4": true, - "fork-ps-5": true, - "fork-es-2": false, - "fork-es-3": true, - "fork-wp-1": false, - "fork-wp-2": false -}); - -/***/ }), - -/***/ "./src/data/cookies/themecookie.js": -/*!*****************************************!*\ - !*** ./src/data/cookies/themecookie.js ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n local: false,\n localServer: \"//localhost:8080\",\n minified: true,\n version: \"0.3.0\",\n branch: \"master\",\n repo: \"rauenzi\",\n minSupportedVersion: \"0.3.0\",\n bbdVersion: \"0.2.17\"\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvY29uZmlnLmpzPzRiYWEiXSwibmFtZXMiOlsibG9jYWwiLCJsb2NhbFNlcnZlciIsIm1pbmlmaWVkIiwidmVyc2lvbiIsImJyYW5jaCIsInJlcG8iLCJtaW5TdXBwb3J0ZWRWZXJzaW9uIiwiYmJkVmVyc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZTtBQUNYQSxPQUFLLEVBQUUsS0FESTtBQUVYQyxhQUFXLEVBQUUsa0JBRkY7QUFHWEMsVUFBUSxFQUFFLElBSEM7QUFJWEMsU0FBTyxFQUFFLE9BSkU7QUFLWEMsUUFBTSxFQUFFLFFBTEc7QUFNWEMsTUFBSSxFQUFFLFNBTks7QUFPWEMscUJBQW1CLEVBQUUsT0FQVjtBQVFYQyxZQUFVLEVBQUU7QUFSRCxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvY29uZmlnLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgbG9jYWw6IGZhbHNlLFxyXG4gICAgbG9jYWxTZXJ2ZXI6IFwiLy9sb2NhbGhvc3Q6ODA4MFwiLFxyXG4gICAgbWluaWZpZWQ6IHRydWUsXHJcbiAgICB2ZXJzaW9uOiBcIjAuMy4wXCIsXHJcbiAgICBicmFuY2g6IFwibWFzdGVyXCIsXHJcbiAgICByZXBvOiBcInJhdWVuemlcIixcclxuICAgIG1pblN1cHBvcnRlZFZlcnNpb246IFwiMC4zLjBcIixcclxuICAgIGJiZFZlcnNpb246IFwiMC4yLjE3XCJcclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/config.js\n"); /***/ }), @@ -1580,72 +259,11 @@ __webpack_require__.r(__webpack_exports__); /*!**************************!*\ !*** ./src/data/data.js ***! \**************************/ -/*! exports provided: State, SettingsInfo, SettingsCookie, Config, PluginCookie, ThemeCookie, Themes, Plugins, Emotes, EmoteBlacklist, EmoteInfo, EmoteModifiers, EmoteOverrides, SettingsConfig, SettingsState */ +/*! exports provided: State, Config, Emotes, EmoteBlacklist, EmoteInfo, EmoteModifiers, EmoteOverrides, SettingsConfig, SettingsState */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ "./src/data/state.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "State", function() { return _state__WEBPACK_IMPORTED_MODULE_0__["default"]; }); - -/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings */ "./src/data/settings.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SettingsInfo", function() { return _settings__WEBPACK_IMPORTED_MODULE_1__["default"]; }); - -/* harmony import */ var _cookies_settingscookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cookies/settingscookie */ "./src/data/cookies/settingscookie.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SettingsCookie", function() { return _cookies_settingscookie__WEBPACK_IMPORTED_MODULE_2__["default"]; }); - -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ "./src/data/config.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Config", function() { return _config__WEBPACK_IMPORTED_MODULE_3__["default"]; }); - -/* harmony import */ var _cookies_plugincookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cookies/plugincookie */ "./src/data/cookies/plugincookie.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PluginCookie", function() { return _cookies_plugincookie__WEBPACK_IMPORTED_MODULE_4__["default"]; }); - -/* harmony import */ var _cookies_themecookie__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cookies/themecookie */ "./src/data/cookies/themecookie.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeCookie", function() { return _cookies_themecookie__WEBPACK_IMPORTED_MODULE_5__["default"]; }); - -/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./themes */ "./src/data/themes.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Themes", function() { return _themes__WEBPACK_IMPORTED_MODULE_6__["default"]; }); - -/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins */ "./src/data/plugins.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Plugins", function() { return _plugins__WEBPACK_IMPORTED_MODULE_7__["default"]; }); - -/* harmony import */ var _emotes_emotes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./emotes/emotes */ "./src/data/emotes/emotes.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Emotes", function() { return _emotes_emotes__WEBPACK_IMPORTED_MODULE_8__["default"]; }); - -/* harmony import */ var _emotes_blacklist__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./emotes/blacklist */ "./src/data/emotes/blacklist.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteBlacklist", function() { return _emotes_blacklist__WEBPACK_IMPORTED_MODULE_9__["default"]; }); - -/* harmony import */ var _emotes_info__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./emotes/info */ "./src/data/emotes/info.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteInfo", function() { return _emotes_info__WEBPACK_IMPORTED_MODULE_10__["default"]; }); - -/* harmony import */ var _emotes_modifiers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emotes/modifiers */ "./src/data/emotes/modifiers.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteModifiers", function() { return _emotes_modifiers__WEBPACK_IMPORTED_MODULE_11__["default"]; }); - -/* harmony import */ var _emotes_overrides__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./emotes/overrides */ "./src/data/emotes/overrides.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmoteOverrides", function() { return _emotes_overrides__WEBPACK_IMPORTED_MODULE_12__["default"]; }); - -/* harmony import */ var _settings_config__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./settings/config */ "./src/data/settings/config.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SettingsConfig", function() { return _settings_config__WEBPACK_IMPORTED_MODULE_13__["default"]; }); - -/* harmony import */ var _settings_state__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./settings/state */ "./src/data/settings/state.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SettingsState", function() { return _settings_state__WEBPACK_IMPORTED_MODULE_14__["default"]; }); - - - - - - - - - - - - - - - - - +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ \"./src/data/state.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"State\", function() { return _state__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./config */ \"./src/data/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return _config__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _emotes_emotes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes/emotes */ \"./src/data/emotes/emotes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Emotes\", function() { return _emotes_emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _emotes_blacklist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emotes/blacklist */ \"./src/data/emotes/blacklist.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteBlacklist\", function() { return _emotes_blacklist__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _emotes_info__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emotes/info */ \"./src/data/emotes/info.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteInfo\", function() { return _emotes_info__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _emotes_modifiers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./emotes/modifiers */ \"./src/data/emotes/modifiers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteModifiers\", function() { return _emotes_modifiers__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _emotes_overrides__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./emotes/overrides */ \"./src/data/emotes/overrides.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteOverrides\", function() { return _emotes_overrides__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _settings_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings/config */ \"./src/data/settings/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsConfig\", function() { return _settings_config__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _settings_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./settings/state */ \"./src/data/settings/state.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsState\", function() { return _settings_state__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n // import SettingsInfo from \"./settings\";\n// import SettingsCookie from \"./cookies/settingscookie\";\n\n // import PluginCookie from \"./cookies/plugincookie\";\n// import ThemeCookie from \"./cookies/themecookie\";\n// import Themes from \"./themes\";\n// import Plugins from \"./plugins\";\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZGF0YS5qcz9kNWM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7QUFDQTs7Q0FFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQSIsImZpbGUiOiIuL3NyYy9kYXRhL2RhdGEuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RhdGUgZnJvbSBcIi4vc3RhdGVcIjtcclxuLy8gaW1wb3J0IFNldHRpbmdzSW5mbyBmcm9tIFwiLi9zZXR0aW5nc1wiO1xyXG4vLyBpbXBvcnQgU2V0dGluZ3NDb29raWUgZnJvbSBcIi4vY29va2llcy9zZXR0aW5nc2Nvb2tpZVwiO1xyXG5pbXBvcnQgQ29uZmlnIGZyb20gXCIuL2NvbmZpZ1wiO1xyXG4vLyBpbXBvcnQgUGx1Z2luQ29va2llIGZyb20gXCIuL2Nvb2tpZXMvcGx1Z2luY29va2llXCI7XHJcbi8vIGltcG9ydCBUaGVtZUNvb2tpZSBmcm9tIFwiLi9jb29raWVzL3RoZW1lY29va2llXCI7XHJcbi8vIGltcG9ydCBUaGVtZXMgZnJvbSBcIi4vdGhlbWVzXCI7XHJcbi8vIGltcG9ydCBQbHVnaW5zIGZyb20gXCIuL3BsdWdpbnNcIjtcclxuaW1wb3J0IEVtb3RlcyBmcm9tIFwiLi9lbW90ZXMvZW1vdGVzXCI7XHJcbmltcG9ydCBFbW90ZUJsYWNrbGlzdCBmcm9tIFwiLi9lbW90ZXMvYmxhY2tsaXN0XCI7XHJcbmltcG9ydCBFbW90ZUluZm8gZnJvbSBcIi4vZW1vdGVzL2luZm9cIjtcclxuaW1wb3J0IEVtb3RlTW9kaWZpZXJzIGZyb20gXCIuL2Vtb3Rlcy9tb2RpZmllcnNcIjtcclxuaW1wb3J0IEVtb3RlT3ZlcnJpZGVzIGZyb20gXCIuL2Vtb3Rlcy9vdmVycmlkZXNcIjtcclxuXHJcbmltcG9ydCBTZXR0aW5nc0NvbmZpZyBmcm9tIFwiLi9zZXR0aW5ncy9jb25maWdcIjtcclxuaW1wb3J0IFNldHRpbmdzU3RhdGUgZnJvbSBcIi4vc2V0dGluZ3Mvc3RhdGVcIjtcclxuXHJcbmV4cG9ydCB7U3RhdGUsIENvbmZpZywgLypTZXR0aW5nc0luZm8sIFNldHRpbmdzQ29va2llLCBQbHVnaW5Db29raWUsIFRoZW1lQ29va2llLCBUaGVtZXMsIFBsdWdpbnMsKi8gRW1vdGVzLCBFbW90ZUJsYWNrbGlzdCwgRW1vdGVJbmZvLCBFbW90ZU1vZGlmaWVycywgRW1vdGVPdmVycmlkZXMsIFNldHRpbmdzQ29uZmlnLCBTZXR0aW5nc1N0YXRlfTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/data.js\n"); /***/ }), @@ -1657,8 +275,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ([]); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL2JsYWNrbGlzdC5qcz8wNzQwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQWUsaUVBQWYiLCJmaWxlIjoiLi9zcmMvZGF0YS9lbW90ZXMvYmxhY2tsaXN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgW107Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/emotes/blacklist.js\n"); /***/ }), @@ -1670,14 +287,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - TwitchGlobal: {}, - TwitchSubscriber: {}, - BTTV: {}, - FrankerFaceZ: {}, - BTTV2: {} -}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n TwitchGlobal: {},\n TwitchSubscriber: {},\n BTTV: {},\n FrankerFaceZ: {},\n BTTV2: {}\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL2Vtb3Rlcy5qcz81MjU4Il0sIm5hbWVzIjpbIlR3aXRjaEdsb2JhbCIsIlR3aXRjaFN1YnNjcmliZXIiLCJCVFRWIiwiRnJhbmtlckZhY2VaIiwiQlRUVjIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQWU7QUFDWEEsY0FBWSxFQUFFLEVBREg7QUFFWEMsa0JBQWdCLEVBQUUsRUFGUDtBQUdYQyxNQUFJLEVBQUUsRUFISztBQUlYQyxjQUFZLEVBQUUsRUFKSDtBQUtYQyxPQUFLLEVBQUU7QUFMSSxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvZW1vdGVzL2Vtb3Rlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIFR3aXRjaEdsb2JhbDoge30sXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiB7fSxcclxuICAgIEJUVFY6IHt9LFxyXG4gICAgRnJhbmtlckZhY2VaOiB7fSxcclxuICAgIEJUVFYyOiB7fVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/emotes/emotes.js\n"); /***/ }), @@ -1689,58 +299,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - TwitchGlobal: { - url: "https://twitchemotes.com/api_cache/v3/global.json", - backup: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_global.json`, - variable: "TwitchGlobal", - getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e.id}/1.0`, - getOldData: (url, name) => { - return { - id: url.match(/\/([0-9]+)\//)[1], - code: name, - emoticon_set: 0, - description: null - }; - } - }, - TwitchSubscriber: { - url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json`, - variable: "TwitchSubscriber", - getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e}/1.0`, - getOldData: url => url.match(/\/([0-9]+)\//)[1] - }, - FrankerFaceZ: { - url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_ffz.json`, - variable: "FrankerFaceZ", - getEmoteURL: e => `https://cdn.frankerfacez.com/emoticon/${e}/1`, - getOldData: url => url.match(/\/([0-9]+)\//)[1] - }, - BTTV: { - url: "https://api.betterttv.net/emotes", - variable: "BTTV", - parser: data => { - const emotes = {}; - - for (let e = 0, len = data.emotes.length; e < len; e++) { - const emote = data.emotes[e]; - emotes[emote.regex] = emote.url; - } - - return emotes; - }, - getEmoteURL: e => `${e}`, - getOldData: url => url - }, - BTTV2: { - url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv.json`, - variable: "BTTV2", - oldVariable: "emotesBTTV2", - getEmoteURL: e => `https://cdn.betterttv.net/emote/${e}/1x`, - getOldData: url => url.match(/emote\/(.+)\//)[1] - } -}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n TwitchGlobal: {\n url: \"https://twitchemotes.com/api_cache/v3/global.json\",\n backup: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_global.json`,\n variable: \"TwitchGlobal\",\n getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e.id}/1.0`,\n getOldData: (url, name) => {\n return {\n id: url.match(/\\/([0-9]+)\\//)[1],\n code: name,\n emoticon_set: 0,\n description: null\n };\n }\n },\n TwitchSubscriber: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json`,\n variable: \"TwitchSubscriber\",\n getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e}/1.0`,\n getOldData: url => url.match(/\\/([0-9]+)\\//)[1]\n },\n FrankerFaceZ: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_ffz.json`,\n variable: \"FrankerFaceZ\",\n getEmoteURL: e => `https://cdn.frankerfacez.com/emoticon/${e}/1`,\n getOldData: url => url.match(/\\/([0-9]+)\\//)[1]\n },\n BTTV: {\n url: \"https://api.betterttv.net/emotes\",\n variable: \"BTTV\",\n parser: data => {\n const emotes = {};\n\n for (let e = 0, len = data.emotes.length; e < len; e++) {\n const emote = data.emotes[e];\n emotes[emote.regex] = emote.url;\n }\n\n return emotes;\n },\n getEmoteURL: e => `${e}`,\n getOldData: url => url\n },\n BTTV2: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv.json`,\n variable: \"BTTV2\",\n oldVariable: \"emotesBTTV2\",\n getEmoteURL: e => `https://cdn.betterttv.net/emote/${e}/1x`,\n getOldData: url => url.match(/emote\\/(.+)\\//)[1]\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL2luZm8uanM/OWY4ZSJdLCJuYW1lcyI6WyJUd2l0Y2hHbG9iYWwiLCJ1cmwiLCJiYWNrdXAiLCJ2YXJpYWJsZSIsImdldEVtb3RlVVJMIiwiZSIsImlkIiwiZ2V0T2xkRGF0YSIsIm5hbWUiLCJtYXRjaCIsImNvZGUiLCJlbW90aWNvbl9zZXQiLCJkZXNjcmlwdGlvbiIsIlR3aXRjaFN1YnNjcmliZXIiLCJGcmFua2VyRmFjZVoiLCJCVFRWIiwicGFyc2VyIiwiZGF0YSIsImVtb3RlcyIsImxlbiIsImxlbmd0aCIsImVtb3RlIiwicmVnZXgiLCJCVFRWMiIsIm9sZFZhcmlhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlO0FBQ1hBLGNBQVksRUFBRTtBQUNWQyxPQUFHLEVBQUUsbURBREs7QUFFVkMsVUFBTSxFQUFHLDhFQUZDO0FBR1ZDLFlBQVEsRUFBRSxjQUhBO0FBSVZDLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLDZDQUE0Q0EsQ0FBQyxDQUFDQyxFQUFHLE1BSjVEO0FBS1ZDLGNBQVUsRUFBRSxDQUFDTixHQUFELEVBQU1PLElBQU4sS0FBZTtBQUFFLGFBQU87QUFBQ0YsVUFBRSxFQUFFTCxHQUFHLENBQUNRLEtBQUosQ0FBVSxjQUFWLEVBQTBCLENBQTFCLENBQUw7QUFBbUNDLFlBQUksRUFBRUYsSUFBekM7QUFBK0NHLG9CQUFZLEVBQUUsQ0FBN0Q7QUFBZ0VDLG1CQUFXLEVBQUU7QUFBN0UsT0FBUDtBQUE0RjtBQUwvRyxHQURIO0FBUVhDLGtCQUFnQixFQUFFO0FBQ2RaLE9BQUcsRUFBRyxrRkFEUTtBQUVkRSxZQUFRLEVBQUUsa0JBRkk7QUFHZEMsZUFBVyxFQUFHQyxDQUFELElBQVEsNkNBQTRDQSxDQUFFLE1BSHJEO0FBSWRFLGNBQVUsRUFBR04sR0FBRCxJQUFTQSxHQUFHLENBQUNRLEtBQUosQ0FBVSxjQUFWLEVBQTBCLENBQTFCO0FBSlAsR0FSUDtBQWNYSyxjQUFZLEVBQUU7QUFDVmIsT0FBRyxFQUFHLG9FQURJO0FBRVZFLFlBQVEsRUFBRSxjQUZBO0FBR1ZDLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLHlDQUF3Q0EsQ0FBRSxJQUhyRDtBQUlWRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0EsR0FBRyxDQUFDUSxLQUFKLENBQVUsY0FBVixFQUEwQixDQUExQjtBQUpYLEdBZEg7QUFvQlhNLE1BQUksRUFBRTtBQUNGZCxPQUFHLEVBQUUsa0NBREg7QUFFRkUsWUFBUSxFQUFFLE1BRlI7QUFHRmEsVUFBTSxFQUFHQyxJQUFELElBQVU7QUFDZCxZQUFNQyxNQUFNLEdBQUcsRUFBZjs7QUFDQSxXQUFLLElBQUliLENBQUMsR0FBRyxDQUFSLEVBQVdjLEdBQUcsR0FBR0YsSUFBSSxDQUFDQyxNQUFMLENBQVlFLE1BQWxDLEVBQTBDZixDQUFDLEdBQUdjLEdBQTlDLEVBQW1EZCxDQUFDLEVBQXBELEVBQXdEO0FBQ3BELGNBQU1nQixLQUFLLEdBQUdKLElBQUksQ0FBQ0MsTUFBTCxDQUFZYixDQUFaLENBQWQ7QUFDQWEsY0FBTSxDQUFDRyxLQUFLLENBQUNDLEtBQVAsQ0FBTixHQUFzQkQsS0FBSyxDQUFDcEIsR0FBNUI7QUFDSDs7QUFDRCxhQUFPaUIsTUFBUDtBQUNILEtBVkM7QUFXRmQsZUFBVyxFQUFHQyxDQUFELElBQVEsR0FBRUEsQ0FBRSxFQVh2QjtBQVlGRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0E7QUFabkIsR0FwQks7QUFrQ1hzQixPQUFLLEVBQUU7QUFDSHRCLE9BQUcsRUFBRyxxRUFESDtBQUVIRSxZQUFRLEVBQUUsT0FGUDtBQUdIcUIsZUFBVyxFQUFFLGFBSFY7QUFJSHBCLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLG1DQUFrQ0EsQ0FBRSxLQUp0RDtBQUtIRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0EsR0FBRyxDQUFDUSxLQUFKLENBQVUsZUFBVixFQUEyQixDQUEzQjtBQUxsQjtBQWxDSSxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvZW1vdGVzL2luZm8uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBUd2l0Y2hHbG9iYWw6IHtcclxuICAgICAgICB1cmw6IFwiaHR0cHM6Ly90d2l0Y2hlbW90ZXMuY29tL2FwaV9jYWNoZS92My9nbG9iYWwuanNvblwiLFxyXG4gICAgICAgIGJhY2t1cDogYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV90d2l0Y2hfZ2xvYmFsLmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIlR3aXRjaEdsb2JhbFwiLFxyXG4gICAgICAgIGdldEVtb3RlVVJMOiAoZSkgPT4gYGh0dHBzOi8vc3RhdGljLWNkbi5qdHZudy5uZXQvZW1vdGljb25zL3YxLyR7ZS5pZH0vMS4wYCxcclxuICAgICAgICBnZXRPbGREYXRhOiAodXJsLCBuYW1lKSA9PiB7IHJldHVybiB7aWQ6IHVybC5tYXRjaCgvXFwvKFswLTldKylcXC8vKVsxXSwgY29kZTogbmFtZSwgZW1vdGljb25fc2V0OiAwLCBkZXNjcmlwdGlvbjogbnVsbH07IH1cclxuICAgIH0sXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiB7XHJcbiAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX3R3aXRjaF9zdWJzY3JpYmVyLmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIlR3aXRjaFN1YnNjcmliZXJcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL3N0YXRpYy1jZG4uanR2bncubmV0L2Vtb3RpY29ucy92MS8ke2V9LzEuMGAsXHJcbiAgICAgICAgZ2V0T2xkRGF0YTogKHVybCkgPT4gdXJsLm1hdGNoKC9cXC8oWzAtOV0rKVxcLy8pWzFdXHJcbiAgICB9LFxyXG4gICAgRnJhbmtlckZhY2VaOiB7XHJcbiAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX2Zmei5qc29uYCxcclxuICAgICAgICB2YXJpYWJsZTogXCJGcmFua2VyRmFjZVpcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5mcmFua2VyZmFjZXouY29tL2Vtb3RpY29uLyR7ZX0vMWAsXHJcbiAgICAgICAgZ2V0T2xkRGF0YTogKHVybCkgPT4gdXJsLm1hdGNoKC9cXC8oWzAtOV0rKVxcLy8pWzFdXHJcbiAgICB9LFxyXG4gICAgQlRUVjoge1xyXG4gICAgICAgIHVybDogXCJodHRwczovL2FwaS5iZXR0ZXJ0dHYubmV0L2Vtb3Rlc1wiLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIkJUVFZcIixcclxuICAgICAgICBwYXJzZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlcyA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGxldCBlID0gMCwgbGVuID0gZGF0YS5lbW90ZXMubGVuZ3RoOyBlIDwgbGVuOyBlKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlID0gZGF0YS5lbW90ZXNbZV07XHJcbiAgICAgICAgICAgICAgICBlbW90ZXNbZW1vdGUucmVnZXhdID0gZW1vdGUudXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBlbW90ZXM7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGAke2V9YCxcclxuICAgICAgICBnZXRPbGREYXRhOiAodXJsKSA9PiB1cmxcclxuICAgIH0sXHJcbiAgICBCVFRWMjoge1xyXG4gICAgICAgIHVybDogYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV9idHR2Lmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIkJUVFYyXCIsXHJcbiAgICAgICAgb2xkVmFyaWFibGU6IFwiZW1vdGVzQlRUVjJcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5iZXR0ZXJ0dHYubmV0L2Vtb3RlLyR7ZX0vMXhgLFxyXG4gICAgICAgIGdldE9sZERhdGE6ICh1cmwpID0+IHVybC5tYXRjaCgvZW1vdGVcXC8oLispXFwvLylbMV1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/emotes/info.js\n"); /***/ }), @@ -1752,8 +311,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = (["flip", "spin", "pulse", "spin2", "spin3", "1spin", "2spin", "3spin", "tr", "bl", "br", "shake", "shake2", "shake3", "flap"]); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([\"flip\", \"spin\", \"pulse\", \"spin2\", \"spin3\", \"1spin\", \"2spin\", \"3spin\", \"tr\", \"bl\", \"br\", \"shake\", \"shake2\", \"shake3\", \"flap\"]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL21vZGlmaWVycy5qcz84YThmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQWUsZ0VBQUMsTUFBRCxFQUFTLE1BQVQsRUFBaUIsT0FBakIsRUFBMEIsT0FBMUIsRUFBbUMsT0FBbkMsRUFBNEMsT0FBNUMsRUFBcUQsT0FBckQsRUFBOEQsT0FBOUQsRUFBdUUsSUFBdkUsRUFBNkUsSUFBN0UsRUFBbUYsSUFBbkYsRUFBeUYsT0FBekYsRUFBa0csUUFBbEcsRUFBNEcsUUFBNUcsRUFBc0gsTUFBdEgsQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL2Vtb3Rlcy9tb2RpZmllcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXCJmbGlwXCIsIFwic3BpblwiLCBcInB1bHNlXCIsIFwic3BpbjJcIiwgXCJzcGluM1wiLCBcIjFzcGluXCIsIFwiMnNwaW5cIiwgXCIzc3BpblwiLCBcInRyXCIsIFwiYmxcIiwgXCJiclwiLCBcInNoYWtlXCIsIFwic2hha2UyXCIsIFwic2hha2UzXCIsIFwiZmxhcFwiXTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/emotes/modifiers.js\n"); /***/ }), @@ -1765,276 +323,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = (["twitch", "bttv", "ffz"]); - -/***/ }), - -/***/ "./src/data/plugins.js": -/*!*****************************!*\ - !*** ./src/data/plugins.js ***! - \*****************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({}); - -/***/ }), - -/***/ "./src/data/settings.js": -/*!******************************!*\ - !*** ./src/data/settings.js ***! - \******************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - "Custom css live update": { - id: "bda-css-0", - info: "", - implemented: true, - hidden: true, - cat: "core" - }, - "Custom css auto udpate": { - id: "bda-css-1", - info: "", - implemented: true, - hidden: true, - cat: "core" - }, - "BetterDiscord Blue": { - id: "bda-gs-b", - info: "Replace Discord blue with BD Blue", - implemented: false, - hidden: false, - cat: "core" - }, - - /* Core */ - - /* ====== */ - "Public Servers": { - id: "bda-gs-1", - info: "Display public servers button", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Minimal Mode": { - id: "bda-gs-2", - info: "Hide elements and reduce the size of elements.", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Voice Mode": { - id: "bda-gs-4", - info: "Only show voice chat", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Hide Channels": { - id: "bda-gs-3", - info: "Hide channels in minimal mode", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Dark Mode": { - id: "bda-gs-5", - info: "Make certain elements dark by default(wip)", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Voice Disconnect": { - id: "bda-dc-0", - info: "Disconnect from voice server when closing Discord", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "24 Hour Timestamps": { - id: "bda-gs-6", - info: "Replace 12hr timestamps with proper ones", - implemented: true, - hidden: false, - cat: "core", - category: "modules" - }, - "Coloured Text": { - id: "bda-gs-7", - info: "Make text colour the same as role colour", - implemented: true, - hidden: false, - 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: true, - hidden: false, - cat: "core", - category: "modules" - }, - - /* Content */ - "Content Error Modal": { - id: "fork-ps-1", - info: "Shows a modal with plugin/theme errors", - implemented: true, - hidden: false, - cat: "core", - category: "content manager" - }, - "Show Toasts": { - id: "fork-ps-2", - info: "Shows a small notification for important information", - implemented: true, - hidden: false, - 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: true, - hidden: false, - cat: "core", - category: "content manager" - }, - "Automatic Loading": { - id: "fork-ps-5", - info: "Automatically loads, reloads, and unloads plugins and themes", - implemented: true, - hidden: false, - cat: "core", - category: "content manager" - }, - - /* Developer */ - "Developer Mode": { - id: "bda-gs-8", - info: "Developer Mode", - implemented: true, - hidden: false, - 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: true, - hidden: false, - cat: "core", - category: "developer settings" - }, - - /* Window Prefs */ - "Enable Transparency": { - id: "fork-wp-1", - info: "Enables the main window to be see-through (requires restart)", - implemented: true, - hidden: false, - cat: "core", - category: "window preferences" - }, - "Window Frame": { - id: "fork-wp-2", - info: "Adds the native os window frame to the main window", - implemented: false, - hidden: true, - cat: "core", - category: "window preferences" - }, - - /* Emotes */ - - /* ====== */ - "Download Emotes": { - id: "fork-es-3", - info: "Download emotes when the cache is expired", - implemented: true, - hidden: false, - cat: "emote" - }, - "Twitch Emotes": { - id: "bda-es-7", - info: "Show Twitch emotes", - implemented: true, - hidden: false, - cat: "emote" - }, - "FrankerFaceZ Emotes": { - id: "bda-es-1", - info: "Show FrankerFaceZ Emotes", - implemented: true, - hidden: false, - cat: "emote" - }, - "BetterTTV Emotes": { - id: "bda-es-2", - info: "Show BetterTTV Emotes", - implemented: true, - hidden: false, - cat: "emote" - }, - "Emote Menu": { - id: "bda-es-0", - info: "Show Twitch/Favourite emotes in emote menu", - implemented: true, - hidden: false, - cat: "emote" - }, - "Emoji Menu": { - id: "bda-es-9", - info: "Show Discord emoji menu", - implemented: true, - hidden: false, - cat: "emote" - }, - "Emote Auto Capitalization": { - id: "bda-es-4", - info: "Autocapitalize emote commands", - implemented: true, - hidden: false, - cat: "emote" - }, - "Show Names": { - id: "bda-es-6", - info: "Show emote names on hover", - implemented: true, - hidden: false, - cat: "emote" - }, - "Show emote modifiers": { - id: "bda-es-8", - info: "Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)", - implemented: true, - hidden: false, - cat: "emote" - }, - "Animate On Hover": { - id: "fork-es-2", - info: "Only animate the emote modifiers on hover", - implemented: true, - hidden: false, - cat: "emote" - } -}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([\"twitch\", \"bttv\", \"ffz\"]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL292ZXJyaWRlcy5qcz9lYjkyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQWUsZ0VBQUMsUUFBRCxFQUFXLE1BQVgsRUFBbUIsS0FBbkIsQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL2Vtb3Rlcy9vdmVycmlkZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXCJ0d2l0Y2hcIiwgXCJidHR2XCIsIFwiZmZ6XCJdOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/emotes/overrides.js\n"); /***/ }), @@ -2046,235 +335,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ([{ - type: "collection", - id: "settings", - name: "Settings", - settings: [{ - type: "category", - id: "general", - name: "General", - collapsible: true, - settings: [{ - type: "switch", - id: "emotes", - name: "Emote System", - note: "Enables BD's emote system", - value: true - }, { - type: "switch", - id: "publicServers", - name: "Public Servers", - note: "Display public servers button", - value: true - }, { - type: "switch", - id: "voiceDisconnect", - name: "Voice Disconnect", - note: "Disconnect from voice server when closing Discord", - value: false - }, { - type: "switch", - id: "twentyFourHour", - name: "24 Hour Timestamps", - note: "Hides channels when in minimal mode", - value: false - }, { - type: "switch", - id: "classNormalizer", - name: "Normalize Classes", - note: "Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)", - value: true - }, { - type: "switch", - id: "showToasts", - name: "Show Toasts", - note: "Shows a small notification for important information", - value: true - }] - }, { - type: "category", - id: "appearance", - name: "Appearance", - collapsible: true, - settings: [{ - type: "switch", - id: "voiceMode", - name: "Voice Mode", - note: "Hides everything that isn't voice chat", - value: false - }, { - type: "switch", - id: "minimalMode", - name: "Minimal Mode", - note: "Hide elements and reduce the size of elements", - value: false - }, { - type: "switch", - id: "hideChannels", - name: "Hide Channels", - note: "Hides channels when in minimal mode", - value: false, - enableWith: "minimalMode" - }, { - type: "switch", - id: "darkMode", - name: "Dark Mode", - note: "Make certain elements dark by default", - value: true - }, { - type: "switch", - id: "coloredText", - name: "Colored Text", - note: "Make text colour the same as role color", - value: false - }] - }, { - type: "category", - id: "content", - name: "Content Manager", - collapsible: true, - settings: [{ - type: "switch", - id: "contentErrors", - name: "Show Content Errors", - note: "Shows a modal with plugin/theme errors", - value: true - }, { - type: "switch", - id: "autoScroll", - name: "Scroll To Settings", - note: "Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)", - value: true - }, { - type: "switch", - id: "autoReload", - name: "Automatic Loading", - note: "Automatically loads, reloads, and unloads plugins and themes", - value: true - }] - }, { - type: "category", - id: "developer", - name: "Developer Settings", - collapsible: true, - shown: false, - settings: [{ - type: "switch", - id: "developerMode", - name: "Developer Mode", - note: "Allows activating debugger when pressing F8", - value: false - }, { - type: "switch", - id: "copySelector", - name: "Copy Selector", - note: "Adds a \"Copy Selector\" option to context menus when developer mode is active", - value: false, - enableWith: "developerMode" - }] - }, { - type: "category", - id: "window", - name: "Window Preferences", - collapsible: true, - shown: false, - settings: [{ - type: "switch", - id: "transparency", - name: "Enable Transparency", - note: "Enables the main window to be see-through (requires restart)", - value: false - }, { - type: "switch", - id: "frame", - name: "Window Frame", - note: "Adds the native os window frame to the main window", - value: false, - hidden: true - }] - }] -}, { - type: "collection", - id: "emotes", - name: "Emotes", - enableWith: "settings.general.emotes", - settings: [{ - type: "category", - id: "general", - name: "General", - collapsible: true, - settings: [{ - type: "switch", - id: "download", - name: "Download Emotes", - note: "Download emotes once a week to stay up to date", - value: true - }, { - type: "switch", - id: "emoteMenu", - name: "Emote Menu", - note: "Show Twitch/Favourite emotes in emote menu", - value: true - }, { - type: "switch", - id: "hideEmojiMenu", - name: "Hide Emoji Menu", - note: "Hides Discord's emoji menu when using emote menu", - value: false, - enableWith: "emoteMenu" - }, { - type: "switch", - id: "autoCaps", - name: "Emote Autocapitalization", - note: "Autocapitalize emote commands", - value: false - }, { - type: "switch", - id: "showNames", - name: "Show Names", - note: "Show emote names on hover", - value: true - }, { - type: "switch", - id: "modifiers", - name: "Show Emote Modifiers", - note: "Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)", - value: true - }, { - type: "switch", - id: "animateOnHover", - name: "Animate On Hover", - note: "Only animate the emote modifiers on hover", - value: false - }] - }, { - type: "category", - id: "categories", - name: "Categories", - collapsible: true, - settings: [{ - type: "switch", - id: "twitch", - name: "Twitch", - note: "Show Twitch global & subscriber emotes", - value: true - }, { - type: "switch", - id: "ffz", - name: "FrankerFaceZ", - note: "Show emotes from FFZ", - value: true - }, { - type: "switch", - id: "bttv", - name: "BetterTTV", - note: "Show emotes from BTTV", - value: true - }] - }] -}]); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n type: \"collection\",\n id: \"settings\",\n name: \"Settings\",\n settings: [{\n type: \"category\",\n id: \"general\",\n name: \"General\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"emotes\",\n name: \"Emote System\",\n note: \"Enables BD's emote system\",\n value: true\n }, {\n type: \"switch\",\n id: \"publicServers\",\n name: \"Public Servers\",\n note: \"Display public servers button\",\n value: true\n }, {\n type: \"switch\",\n id: \"voiceDisconnect\",\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\",\n value: false\n }, {\n type: \"switch\",\n id: \"twentyFourHour\",\n name: \"24 Hour Timestamps\",\n note: \"Hides channels when in minimal mode\",\n value: false\n }, {\n type: \"switch\",\n id: \"classNormalizer\",\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\",\n value: true\n }, {\n type: \"switch\",\n id: \"showToasts\",\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\",\n value: true\n }]\n }, {\n type: \"category\",\n id: \"appearance\",\n name: \"Appearance\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"voiceMode\",\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\",\n value: false\n }, {\n type: \"switch\",\n id: \"minimalMode\",\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\",\n value: false\n }, {\n type: \"switch\",\n id: \"hideChannels\",\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\",\n value: false,\n enableWith: \"minimalMode\"\n }, {\n type: \"switch\",\n id: \"darkMode\",\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\",\n value: true\n }, {\n type: \"switch\",\n id: \"coloredText\",\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\",\n value: false\n }]\n }, {\n type: \"category\",\n id: \"content\",\n name: \"Content Manager\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"contentErrors\",\n name: \"Show Content Errors\",\n note: \"Shows a modal with plugin/theme errors\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoScroll\",\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoReload\",\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\",\n value: true\n }]\n }, {\n type: \"category\",\n id: \"developer\",\n name: \"Developer Settings\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"developerMode\",\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\",\n value: false\n }, {\n type: \"switch\",\n id: \"copySelector\",\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\",\n value: false,\n enableWith: \"developerMode\"\n }]\n }, {\n type: \"category\",\n id: \"window\",\n name: \"Window Preferences\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"transparency\",\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\",\n value: false\n }, {\n type: \"switch\",\n id: \"frame\",\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\",\n value: false,\n hidden: true\n }]\n }]\n}, {\n type: \"collection\",\n id: \"emotes\",\n name: \"Emotes\",\n enableWith: \"settings.general.emotes\",\n settings: [{\n type: \"category\",\n id: \"general\",\n name: \"General\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"download\",\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\",\n value: true\n }, {\n type: \"switch\",\n id: \"emoteMenu\",\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\",\n value: true\n }, {\n type: \"switch\",\n id: \"hideEmojiMenu\",\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\",\n value: false,\n enableWith: \"emoteMenu\"\n }, {\n type: \"switch\",\n id: \"autoCaps\",\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\",\n value: false\n }, {\n type: \"switch\",\n id: \"showNames\",\n name: \"Show Names\",\n note: \"Show emote names on hover\",\n value: true\n }, {\n type: \"switch\",\n id: \"modifiers\",\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\",\n value: true\n }, {\n type: \"switch\",\n id: \"animateOnHover\",\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\",\n value: false\n }]\n }, {\n type: \"category\",\n id: \"categories\",\n name: \"Categories\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"twitch\",\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\",\n value: true\n }, {\n type: \"switch\",\n id: \"ffz\",\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\",\n value: true\n }, {\n type: \"switch\",\n id: \"bttv\",\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\",\n value: true\n }]\n }]\n}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc2V0dGluZ3MvY29uZmlnLmpzP2ZmOGUiXSwibmFtZXMiOlsidHlwZSIsImlkIiwibmFtZSIsInNldHRpbmdzIiwiY29sbGFwc2libGUiLCJub3RlIiwidmFsdWUiLCJlbmFibGVXaXRoIiwic2hvd24iLCJoaWRkZW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQWUsZ0VBQ1g7QUFDSUEsTUFBSSxFQUFFLFlBRFY7QUFFSUMsSUFBRSxFQUFFLFVBRlI7QUFHSUMsTUFBSSxFQUFFLFVBSFY7QUFJSUMsVUFBUSxFQUFFLENBQ047QUFDSUgsUUFBSSxFQUFFLFVBRFY7QUFFSUMsTUFBRSxFQUFFLFNBRlI7QUFHSUMsUUFBSSxFQUFFLFNBSFY7QUFJSUUsZUFBVyxFQUFFLElBSmpCO0FBS0lELFlBQVEsRUFBRSxDQUNOO0FBQ0lILFVBQUksRUFBRSxRQURWO0FBRUlDLFFBQUUsRUFBRSxRQUZSO0FBR0lDLFVBQUksRUFBRSxjQUhWO0FBSUlHLFVBQUksRUFBRSwyQkFKVjtBQUtJQyxXQUFLLEVBQUU7QUFMWCxLQURNLEVBUU47QUFDSU4sVUFBSSxFQUFFLFFBRFY7QUFFSUMsUUFBRSxFQUFFLGVBRlI7QUFHSUMsVUFBSSxFQUFFLGdCQUhWO0FBSUlHLFVBQUksRUFBRSwrQkFKVjtBQUtJQyxXQUFLLEVBQUU7QUFMWCxLQVJNLEVBZU47QUFDSU4sVUFBSSxFQUFFLFFBRFY7QUFFSUMsUUFBRSxFQUFFLGlCQUZSO0FBR0lDLFVBQUksRUFBRSxrQkFIVjtBQUlJRyxVQUFJLEVBQUUsbURBSlY7QUFLSUMsV0FBSyxFQUFFO0FBTFgsS0FmTSxFQXNCTjtBQUNJTixVQUFJLEVBQUUsUUFEVjtBQUVJQyxRQUFFLEVBQUUsZ0JBRlI7QUFHSUMsVUFBSSxFQUFFLG9CQUhWO0FBSUlHLFVBQUksRUFBRSxxQ0FKVjtBQUtJQyxXQUFLLEVBQUU7QUFMWCxLQXRCTSxFQTZCTjtBQUNJTixVQUFJLEVBQUUsUUFEVjtBQUVJQyxRQUFFLEVB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RUFBRTtBQUxYLEtBUk0sRUFlTjtBQUNJTixVQUFJLEVBQUUsUUFEVjtBQUVJQyxRQUFFLEVBQUUsTUFGUjtBQUdJQyxVQUFJLEVBQUUsV0FIVjtBQUlJRyxVQUFJLEVBQUUsdUJBSlY7QUFLSUMsV0FBSyxFQUFFO0FBTFgsS0FmTTtBQUxkLEdBM0RNO0FBTGQsQ0FuTFcsQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3NldHRpbmdzL2NvbmZpZy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFtcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNvbGxlY3Rpb25cIixcclxuICAgICAgICBpZDogXCJzZXR0aW5nc1wiLFxyXG4gICAgICAgIG5hbWU6IFwiU2V0dGluZ3NcIixcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJnZW5lcmFsXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIFN5c3RlbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgQkQncyBlbW90ZSBzeXN0ZW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwicHVibGljU2VydmVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlB1YmxpYyBTZXJ2ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzcGxheSBwdWJsaWMgc2VydmVycyBidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwidm9pY2VEaXNjb25uZWN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgRGlzY29ubmVjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkRpc2Nvbm5lY3QgZnJvbSB2b2ljZSBzZXJ2ZXIgd2hlbiBjbG9zaW5nIERpc2NvcmRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInR3ZW50eUZvdXJIb3VyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiMjQgSG91ciBUaW1lc3RhbXBzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgY2hhbm5lbHMgd2hlbiBpbiBtaW5pbWFsIG1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjbGFzc05vcm1hbGl6ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJOb3JtYWxpemUgQ2xhc3Nlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgc3RhYmxlIGNsYXNzZXMgdG8gZWxlbWVudHMgdG8gaGVscCB0aGVtZXMuIChlLmcuIGFkZHMgLmRhLWNoYW5uZWxzIHRvIC5jaGFubmVscy1JZTJsNkEpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNob3dUb2FzdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3dzIGEgc21hbGwgbm90aWZpY2F0aW9uIGZvciBpbXBvcnRhbnQgaW5mb3JtYXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImFwcGVhcmFuY2VcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQXBwZWFyYW5jZVwiLFxyXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwidm9pY2VNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGV2ZXJ5dGhpbmcgdGhhdCBpc24ndCB2b2ljZSBjaGF0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJtaW5pbWFsTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1pbmltYWwgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGUgZWxlbWVudHMgYW5kIHJlZHVjZSB0aGUgc2l6ZSBvZiBlbGVtZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiaGlkZUNoYW5uZWxzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSGlkZSBDaGFubmVsc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGNoYW5uZWxzIHdoZW4gaW4gbWluaW1hbCBtb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlV2l0aDogXCJtaW5pbWFsTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImRhcmtNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGFyayBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTWFrZSBjZXJ0YWluIGVsZW1lbnRzIGRhcmsgYnkgZGVmYXVsdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb2xvcmVkVGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNvbG9yZWQgVGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk1ha2UgdGV4dCBjb2xvdXIgdGhlIHNhbWUgYXMgcm9sZSBjb2xvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImNvbnRlbnRcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29udGVudCBNYW5hZ2VyXCIsXHJcbiAgICAgICAgICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb250ZW50RXJyb3JzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBDb250ZW50IEVycm9yc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3dzIGEgbW9kYWwgd2l0aCBwbHVnaW4vdGhlbWUgZXJyb3JzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImF1dG9TY3JvbGxcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTY3JvbGwgVG8gU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvLXNjcm9sbHMgdG8gYSBwbHVnaW4ncyBzZXR0aW5ncyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCAob25seSBpZiBvdXQgb2YgdmlldylcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiYXV0b1JlbG9hZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkF1dG9tYXRpYyBMb2FkaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b21hdGljYWxseSBsb2FkcywgcmVsb2FkcywgYW5kIHVubG9hZHMgcGx1Z2lucyBhbmQgdGhlbWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJkZXZlbG9wZXJcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIFNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNob3duOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJkZXZlbG9wZXJNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbGxvd3MgYWN0aXZhdGluZyBkZWJ1Z2dlciB3aGVuIHByZXNzaW5nIEY4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJjb3B5U2VsZWN0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDb3B5IFNlbGVjdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyBhIFxcXCJDb3B5IFNlbGVjdG9yXFxcIiBvcHRpb24gdG8gY29udGV4dCBtZW51cyB3aGVuIGRldmVsb3BlciBtb2RlIGlzIGFjdGl2ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZVdpdGg6IFwiZGV2ZWxvcGVyTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJ3aW5kb3dcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiV2luZG93IFByZWZlcmVuY2VzXCIsXHJcbiAgICAgICAgICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNob3duOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJ0cmFuc3BhcmVuY3lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbmFibGUgVHJhbnNwYXJlbmN5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlcyB0aGUgbWFpbiB3aW5kb3cgdG8gYmUgc2VlLXRocm91Z2ggKHJlcXVpcmVzIHJlc3RhcnQpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJmcmFtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIldpbmRvdyBGcmFtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgdGhlIG5hdGl2ZSBvcyB3aW5kb3cgZnJhbWUgdG8gdGhlIG1haW4gd2luZG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNvbGxlY3Rpb25cIixcclxuICAgICAgICBpZDogXCJlbW90ZXNcIixcclxuICAgICAgICBuYW1lOiBcIkVtb3Rlc1wiLFxyXG4gICAgICAgIGVuYWJsZVdpdGg6IFwic2V0dGluZ3MuZ2VuZXJhbC5lbW90ZXNcIixcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJnZW5lcmFsXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImRvd25sb2FkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRG93bmxvYWQgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRG93bmxvYWQgZW1vdGVzIG9uY2UgYSB3ZWVrIHRvIHN0YXkgdXAgdG8gZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJlbW90ZU1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2gvRmF2b3VyaXRlIGVtb3RlcyBpbiBlbW90ZSBtZW51XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImhpZGVFbW9qaU1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJIaWRlIEVtb2ppIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBEaXNjb3JkJ3MgZW1vamkgbWVudSB3aGVuIHVzaW5nIGVtb3RlIG1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVXaXRoOiBcImVtb3RlTWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImF1dG9DYXBzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgQXV0b2NhcGl0YWxpemF0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b2NhcGl0YWxpemUgZW1vdGUgY29tbWFuZHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNob3dOYW1lc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgTmFtZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlIG5hbWVzIG9uIGhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcIm1vZGlmaWVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgRW1vdGUgTW9kaWZpZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiYW5pbWF0ZU9uSG92ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBbmltYXRlIE9uIEhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiT25seSBhbmltYXRlIHRoZSBlbW90ZSBtb2RpZmllcnMgb24gaG92ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJjYXRlZ29yaWVzXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkNhdGVnb3JpZXNcIixcclxuICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInR3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlR3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgVHdpdGNoIGdsb2JhbCAmIHN1YnNjcmliZXIgZW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImZmelwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZyYW5rZXJGYWNlWlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gRkZaXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImJ0dHZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlcyBmcm9tIEJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9XHJcbl07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/settings/config.js\n"); /***/ }), @@ -2286,8 +347,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc2V0dGluZ3Mvc3RhdGUuanM/NGUxNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFlLGlFQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvc2V0dGluZ3Mvc3RhdGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7fTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/settings/state.js\n"); /***/ }), @@ -2299,23 +359,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({ - emotesLoaded: false -}); - -/***/ }), - -/***/ "./src/data/themes.js": -/*!****************************!*\ - !*** ./src/data/themes.js ***! - \****************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ({}); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n emotesLoaded: false\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RhdGUuanM/NGJlYiJdLCJuYW1lcyI6WyJlbW90ZXNMb2FkZWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQWU7QUFDWEEsY0FBWSxFQUFFO0FBREgsQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3N0YXRlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgZW1vdGVzTG9hZGVkOiBmYWxzZVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/state.js\n"); /***/ }), @@ -2327,91 +371,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CoreWrapper; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "patchModuleLoad", function() { return patchModuleLoad; }); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var _localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localstorage */ "./src/localstorage.js"); -/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/core */ "./src/modules/core.js"); -/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginapi */ "./src/modules/pluginapi.js"); -/* harmony import */ var _modules_pluginmanager2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/pluginmanager2 */ "./src/modules/pluginmanager2.js"); -/* harmony import */ var _modules_thememanager2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/thememanager2 */ "./src/modules/thememanager2.js"); -/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/oldstorage */ "./src/modules/oldstorage.js"); -/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/emitter */ "./src/modules/emitter.js"); - - - - - - - - // Perform some setup - -Object(_localstorage__WEBPACK_IMPORTED_MODULE_1__["default"])(); -const loadingIcon = document.createElement("div"); -loadingIcon.className = "bd-loaderv2"; -loadingIcon.title = "BandagedBD is loading..."; -document.body.appendChild(loadingIcon); // window.Core = Core; - -window.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__["default"]; -window.settings = data__WEBPACK_IMPORTED_MODULE_0__["SettingsInfo"]; -window.settingsCookie = data__WEBPACK_IMPORTED_MODULE_0__["SettingsCookie"]; -window.pluginCookie = data__WEBPACK_IMPORTED_MODULE_0__["PluginCookie"]; -window.themeCookie = data__WEBPACK_IMPORTED_MODULE_0__["ThemeCookie"]; -window.pluginModule = _modules_pluginmanager2__WEBPACK_IMPORTED_MODULE_4__["default"]; -window.themeModule = _modules_thememanager2__WEBPACK_IMPORTED_MODULE_5__["default"]; -window.bdthemes = data__WEBPACK_IMPORTED_MODULE_0__["Themes"]; -window.bdplugins = data__WEBPACK_IMPORTED_MODULE_0__["Plugins"]; -window.bdEmotes = data__WEBPACK_IMPORTED_MODULE_0__["Emotes"]; -window.bemotes = data__WEBPACK_IMPORTED_MODULE_0__["EmoteBlacklist"]; -window.bdPluginStorage = _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__["bdPluginStorage"]; -window.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_7__["default"]; -window.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__["Config"]; -class CoreWrapper { - constructor(config) { - _modules_core__WEBPACK_IMPORTED_MODULE_2__["default"].setConfig(config); - } - - init() { - _modules_core__WEBPACK_IMPORTED_MODULE_2__["default"].init(); - } - -} -function patchModuleLoad() { - const namespace = "betterdiscord"; - const prefix = `${namespace}/`; - - const Module = __webpack_require__(/*! module */ "module"); - - const load = Module._load; // const resolveFilename = Module._resolveFilename; - - Module._load = function (request) { - if (request === namespace || request.startsWith(prefix)) { - const requested = request.substr(prefix.length); - if (requested == "api") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__["default"]; - } - - return load.apply(this, arguments); - }; // Module._resolveFilename = function (request, parent, isMain) { - // if (request === "betterdiscord" || request.startsWith("betterdiscord/")) { - // const contentPath = PluginManager.getPluginPathByModule(parent); - // if (contentPath) return request; - // } - // return resolveFilename.apply(this, arguments); - // }; - - - return function () { - Module._load = load; - }; -} // export function getPluginByModule(module) { -// return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep)); -// } -// export function getPluginPathByModule(module) { -// return Object.keys(this.pluginApiInstances).find(contentPath => module.filename === contentPath || module.filename.startsWith(contentPath + path.sep)); -// } -// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule; -// var bdConfig = null; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CoreWrapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"patchModuleLoad\", function() { return patchModuleLoad; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localstorage */ \"./src/localstorage.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n\n\n\n\n\n\n\n // Perform some setup\n\nObject(_localstorage__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\nconst loadingIcon = document.createElement(\"div\");\nloadingIcon.className = \"bd-loaderv2\";\nloadingIcon.title = \"BandagedBD is loading...\";\ndocument.body.appendChild(loadingIcon); // window.Core = Core;\n\nwindow.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; // window.bdthemes = Themes;\n// window.bdplugins = Plugins;\n\nwindow.bdEmotes = data__WEBPACK_IMPORTED_MODULE_0__[\"Emotes\"];\nwindow.bemotes = data__WEBPACK_IMPORTED_MODULE_0__[\"EmoteBlacklist\"];\nwindow.bdPluginStorage = _modules_oldstorage__WEBPACK_IMPORTED_MODULE_6__[\"bdPluginStorage\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init();\n }\n\n}\nfunction patchModuleLoad() {\n const namespace = \"betterdiscord\";\n const prefix = `${namespace}/`;\n\n const Module = __webpack_require__(/*! module */ \"module\");\n\n const load = Module._load; // const resolveFilename = Module._resolveFilename;\n\n Module._load = function (request) {\n if (request === namespace || request.startsWith(prefix)) {\n const requested = request.substr(prefix.length);\n if (requested == \"api\") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n }\n\n return load.apply(this, arguments);\n }; // Module._resolveFilename = function (request, parent, isMain) {\n // if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n // const contentPath = PluginManager.getPluginPathByModule(parent);\n // if (contentPath) return request;\n // }\n // return resolveFilename.apply(this, arguments);\n // };\n\n\n return function () {\n Module._load = load;\n };\n} // export function getPluginByModule(module) {\n// return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep));\n// }\n// export function getPluginPathByModule(module) {\n// return Object.keys(this.pluginApiInstances).find(contentPath => module.filename === contentPath || module.filename.startsWith(contentPath + path.sep));\n// }\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsicHJveHlMb2NhbFN0b3JhZ2UiLCJsb2FkaW5nSWNvbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlIiwiYm9keSIsImFwcGVuZENoaWxkIiwid2luZG93IiwiQmRBcGkiLCJwbHVnaW5Nb2R1bGUiLCJQbHVnaW5NYW5hZ2VyIiwidGhlbWVNb2R1bGUiLCJUaGVtZU1hbmFnZXIiLCJiZEVtb3RlcyIsIkVtb3RlcyIsImJlbW90ZXMiLCJFbW90ZUJsYWNrbGlzdCIsImJkUGx1Z2luU3RvcmFnZSIsIkJERXZlbnRzIiwiRXZlbnRzIiwiYmRDb25maWciLCJDb25maWciLCJDb3JlV3JhcHBlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiQ29yZSIsInNldENvbmZpZyIsImluaXQiLCJwYXRjaE1vZHVsZUxvYWQiLCJuYW1lc3BhY2UiLCJwcmVmaXgiLCJNb2R1bGUiLCJyZXF1aXJlIiwibG9hZCIsIl9sb2FkIiwicmVxdWVzdCIsInN0YXJ0c1dpdGgiLCJyZXF1ZXN0ZWQiLCJzdWJzdHIiLCJsZW5ndGgiLCJhcHBseSIsImFyZ3VtZW50cyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0NBR0E7O0FBQ0FBLDZEQUFpQjtBQUNqQixNQUFNQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixLQUF2QixDQUFwQjtBQUNBRixXQUFXLENBQUNHLFNBQVosR0FBd0IsYUFBeEI7QUFDQUgsV0FBVyxDQUFDSSxLQUFaLEdBQW9CLDBCQUFwQjtBQUNBSCxRQUFRLENBQUNJLElBQVQsQ0FBY0MsV0FBZCxDQUEwQk4sV0FBMUIsRSxDQUVBOztBQUNBTyxNQUFNLENBQUNDLEtBQVAsR0FBZUEsMERBQWYsQyxDQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBRCxNQUFNLENBQUNFLFlBQVAsR0FBc0JDLDhEQUF0QjtBQUNBSCxNQUFNLENBQUNJLFdBQVAsR0FBcUJDLDZEQUFyQixDLENBQ0E7QUFDQTs7QUFDQUwsTUFBTSxDQUFDTSxRQUFQLEdBQWtCQywyQ0FBbEI7QUFDQVAsTUFBTSxDQUFDUSxPQUFQLEdBQWlCQyxtREFBakI7QUFDQVQsTUFBTSxDQUFDVSxlQUFQLEdBQXlCQSxtRUFBekI7QUFHQVYsTUFBTSxDQUFDVyxRQUFQLEdBQWtCQyx3REFBbEI7QUFDQVosTUFBTSxDQUFDYSxRQUFQLEdBQWtCQywyQ0FBbEI7QUFFZSxNQUFNQyxXQUFOLENBQWtCO0FBQzdCQyxhQUFXLENBQUNDLE1BQUQsRUFBUztBQUNoQkMseURBQUksQ0FBQ0MsU0FBTCxDQUFlRixNQUFmO0FBQ0g7O0FBRURHLE1BQUksR0FBRztBQUNIRix5REFBSSxDQUFDRSxJQUFMO0FBQ0g7O0FBUDRCO0FBVTFCLFNBQVNDLGVBQVQsR0FBMkI7QUFDOUIsUUFBTUMsU0FBUyxHQUFHLGVBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFJLEdBQUVELFNBQVUsR0FBNUI7O0FBQ0EsUUFBTUUsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLHNCQUFELENBQXRCOztBQUNBLFFBQU1DLElBQUksR0FBR0YsTUFBTSxDQUFDRyxLQUFwQixDQUo4QixDQUs5Qjs7QUFFQUgsUUFBTSxDQUFDRyxLQUFQLEdBQWUsVUFBVUMsT0FBVixFQUFtQjtBQUM5QixRQUFJQSxPQUFPLEtBQUtOLFNBQVosSUFBeUJNLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk4sTUFBbkIsQ0FBN0IsRUFBeUQ7QUFDckQsWUFBTU8sU0FBUyxHQUFHRixPQUFPLENBQUNHLE1BQVIsQ0FBZVIsTUFBTSxDQUFDUyxNQUF0QixDQUFsQjtBQUNBLFVBQUlGLFNBQVMsSUFBSSxLQUFqQixFQUF3QixPQUFPN0IsMERBQVA7QUFDM0I7O0FBRUQsV0FBT3lCLElBQUksQ0FBQ08sS0FBTCxDQUFXLElBQVgsRUFBaUJDLFNBQWpCLENBQVA7QUFDSCxHQVBELENBUDhCLENBZ0I5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7O0FBRUEsU0FBTyxZQUFXO0FBQ2RWLFVBQU0sQ0FBQ0csS0FBUCxHQUFlRCxJQUFmO0FBQ0gsR0FGRDtBQUdILEMsQ0FFRDtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWcsIC8qU2V0dGluZ3NDb29raWUsIFNldHRpbmdzSW5mbywgUGx1Z2luQ29va2llLCBUaGVtZUNvb2tpZSwgUGx1Z2lucywgVGhlbWVzLCovIEVtb3RlcywgRW1vdGVCbGFja2xpc3R9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBwcm94eUxvY2FsU3RvcmFnZSBmcm9tIFwiLi9sb2NhbHN0b3JhZ2VcIjtcclxuaW1wb3J0IENvcmUgZnJvbSBcIi4vbW9kdWxlcy9jb3JlXCI7XHJcbmltcG9ydCBCZEFwaSBmcm9tIFwiLi9tb2R1bGVzL3BsdWdpbmFwaVwiO1xyXG5pbXBvcnQgUGx1Z2luTWFuYWdlciBmcm9tIFwiLi9tb2R1bGVzL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi9tb2R1bGVzL3RoZW1lbWFuYWdlclwiO1xyXG5pbXBvcnQge2JkUGx1Z2luU3RvcmFnZX0gZnJvbSBcIi4vbW9kdWxlcy9vbGRzdG9yYWdlXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vbW9kdWxlcy9lbWl0dGVyXCI7XHJcblxyXG4vLyBQZXJmb3JtIHNvbWUgc2V0dXBcclxucHJveHlMb2NhbFN0b3JhZ2UoKTtcclxuY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5sb2FkaW5nSWNvbi5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XHJcbmxvYWRpbmdJY29uLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcclxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkaW5nSWNvbik7XHJcblxyXG4vLyB3aW5kb3cuQ29yZSA9IENvcmU7XHJcbndpbmRvdy5CZEFwaSA9IEJkQXBpO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3MgPSBTZXR0aW5nc0luZm87XHJcbi8vIHdpbmRvdy5zZXR0aW5nc0Nvb2tpZSA9IFNldHRpbmdzQ29va2llO1xyXG4vLyB3aW5kb3cucGx1Z2luQ29va2llID0gUGx1Z2luQ29va2llO1xyXG4vLyB3aW5kb3cudGhlbWVDb29raWUgPSBUaGVtZUNvb2tpZTtcclxud2luZG93LnBsdWdpbk1vZHVsZSA9IFBsdWdpbk1hbmFnZXI7XHJcbndpbmRvdy50aGVtZU1vZHVsZSA9IFRoZW1lTWFuYWdlcjtcclxuLy8gd2luZG93LmJkdGhlbWVzID0gVGhlbWVzO1xyXG4vLyB3aW5kb3cuYmRwbHVnaW5zID0gUGx1Z2lucztcclxud2luZG93LmJkRW1vdGVzID0gRW1vdGVzO1xyXG53aW5kb3cuYmVtb3RlcyA9IEVtb3RlQmxhY2tsaXN0O1xyXG53aW5kb3cuYmRQbHVnaW5TdG9yYWdlID0gYmRQbHVnaW5TdG9yYWdlO1xyXG5cclxuXHJcbndpbmRvdy5CREV2ZW50cyA9IEV2ZW50cztcclxud2luZG93LmJkQ29uZmlnID0gQ29uZmlnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29yZVdyYXBwZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnKSB7XHJcbiAgICAgICAgQ29yZS5zZXRDb25maWcoY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIENvcmUuaW5pdCgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xyXG4gICAgY29uc3QgbmFtZXNwYWNlID0gXCJiZXR0ZXJkaXNjb3JkXCI7XHJcbiAgICBjb25zdCBwcmVmaXggPSBgJHtuYW1lc3BhY2V9L2A7XHJcbiAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xyXG4gICAgY29uc3QgbG9hZCA9IE1vZHVsZS5fbG9hZDtcclxuICAgIC8vIGNvbnN0IHJlc29sdmVGaWxlbmFtZSA9IE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lO1xyXG5cclxuICAgIE1vZHVsZS5fbG9hZCA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QgPT09IG5hbWVzcGFjZSB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgocHJlZml4KSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcclxuICAgICAgICAgICAgaWYgKHJlcXVlc3RlZCA9PSBcImFwaVwiKSByZXR1cm4gQmRBcGk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbG9hZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xyXG4gICAgLy8gICAgIGlmIChyZXF1ZXN0ID09PSBcImJldHRlcmRpc2NvcmRcIiB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgoXCJiZXR0ZXJkaXNjb3JkL1wiKSkge1xyXG4gICAgLy8gICAgICAgICBjb25zdCBjb250ZW50UGF0aCA9IFBsdWdpbk1hbmFnZXIuZ2V0UGx1Z2luUGF0aEJ5TW9kdWxlKHBhcmVudCk7XHJcbiAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICByZXR1cm4gcmVzb2x2ZUZpbGVuYW1lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAvLyB9O1xyXG5cclxuICAgIHJldHVybiBmdW5jdGlvbigpIHtcclxuICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbkJ5TW9kdWxlKG1vZHVsZSkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMubG9jYWxDb250ZW50LmZpbmQocGx1Z2luID0+IG1vZHVsZS5maWxlbmFtZSA9PT0gcGx1Z2luLmNvbnRlbnRQYXRoIHx8IG1vZHVsZS5maWxlbmFtZS5zdGFydHNXaXRoKHBsdWdpbi5jb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBmdW5jdGlvbiBnZXRQbHVnaW5QYXRoQnlNb2R1bGUobW9kdWxlKSB7XHJcbi8vICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wbHVnaW5BcGlJbnN0YW5jZXMpLmZpbmQoY29udGVudFBhdGggPT4gbW9kdWxlLmZpbGVuYW1lID09PSBjb250ZW50UGF0aCB8fCBtb2R1bGUuZmlsZW5hbWUuc3RhcnRzV2l0aChjb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xyXG4vLyB2YXIgYmRDb25maWcgPSBudWxsOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.js\n"); /***/ }), @@ -2423,56 +383,7 @@ function patchModuleLoad() { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* Localstorage fix */ -/* harmony default export */ __webpack_exports__["default"] = (function () { - const fs = __webpack_require__(/*! fs */ "fs"); - - const platform = process.platform; - const dataPath = (platform === "win32" ? process.env.APPDATA : platform === "darwin" ? process.env.HOME + "/Library/Preferences" : process.env.HOME + "/.config") + "/BetterDiscord/"; - const localStorageFile = "localStorage.json"; - let data = {}; - - if (fs.existsSync(`${dataPath}${localStorageFile}`)) { - try { - data = JSON.parse(fs.readFileSync(`${dataPath}${localStorageFile}`)); - } catch (err) { - console.log(err); - } - } else if (fs.existsSync(localStorageFile)) { - try { - data = JSON.parse(fs.readFileSync(localStorageFile)); - } catch (err) { - console.log(err); - } - } - - const storage = data; - - storage.setItem = function (i, v) { - storage[i] = v; - this.save(); - }; - - storage.getItem = function (i) { - return storage[i] || null; - }; - - storage.save = function () { - fs.writeFileSync(`${dataPath}${localStorageFile}`, JSON.stringify(this), null, 4); - }; - - const lsProxy = new Proxy(storage, { - set: function (target, name, val) { - storage[name] = val; - storage.save(); - }, - get: function (target, name) { - return storage[name] || null; - } - }); - window.localStorage = lsProxy; -}); +eval("__webpack_require__.r(__webpack_exports__);\n/* Localstorage fix */\n/* harmony default export */ __webpack_exports__[\"default\"] = (function () {\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const platform = process.platform;\n const dataPath = (platform === \"win32\" ? process.env.APPDATA : platform === \"darwin\" ? process.env.HOME + \"/Library/Preferences\" : process.env.HOME + \"/.config\") + \"/BetterDiscord/\";\n const localStorageFile = \"localStorage.json\";\n let data = {};\n\n if (fs.existsSync(`${dataPath}${localStorageFile}`)) {\n try {\n data = JSON.parse(fs.readFileSync(`${dataPath}${localStorageFile}`));\n } catch (err) {\n console.log(err);\n }\n } else if (fs.existsSync(localStorageFile)) {\n try {\n data = JSON.parse(fs.readFileSync(localStorageFile));\n } catch (err) {\n console.log(err);\n }\n }\n\n const storage = data;\n\n storage.setItem = function (i, v) {\n storage[i] = v;\n this.save();\n };\n\n storage.getItem = function (i) {\n return storage[i] || null;\n };\n\n storage.save = function () {\n fs.writeFileSync(`${dataPath}${localStorageFile}`, JSON.stringify(this), null, 4);\n };\n\n const lsProxy = new Proxy(storage, {\n set: function (target, name, val) {\n storage[name] = val;\n storage.save();\n },\n get: function (target, name) {\n return storage[name] || null;\n }\n });\n window.localStorage = lsProxy;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2xvY2Fsc3RvcmFnZS5qcz81OTFlIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsInBsYXRmb3JtIiwicHJvY2VzcyIsImRhdGFQYXRoIiwiZW52IiwiQVBQREFUQSIsIkhPTUUiLCJsb2NhbFN0b3JhZ2VGaWxlIiwiZGF0YSIsImV4aXN0c1N5bmMiLCJKU09OIiwicGFyc2UiLCJyZWFkRmlsZVN5bmMiLCJlcnIiLCJjb25zb2xlIiwibG9nIiwic3RvcmFnZSIsInNldEl0ZW0iLCJpIiwidiIsInNhdmUiLCJnZXRJdGVtIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsImxzUHJveHkiLCJQcm94eSIsInNldCIsInRhcmdldCIsIm5hbWUiLCJ2YWwiLCJnZXQiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDZSwyRUFBVztBQUV0QixRQUFNQSxFQUFFLEdBQUdDLG1CQUFPLENBQUMsY0FBRCxDQUFsQjs7QUFDQSxRQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0QsUUFBekI7QUFDQSxRQUFNRSxRQUFRLEdBQUcsQ0FBQ0YsUUFBUSxLQUFLLE9BQWIsR0FBdUJDLE9BQU8sQ0FBQ0UsR0FBUixDQUFZQyxPQUFuQyxHQUE2Q0osUUFBUSxLQUFLLFFBQWIsR0FBd0JDLE9BQU8sQ0FBQ0UsR0FBUixDQUFZRSxJQUFaLEdBQW1CLHNCQUEzQyxHQUFvRUosT0FBTyxDQUFDRSxHQUFSLENBQVlFLElBQVosR0FBbUIsVUFBckksSUFBbUosaUJBQXBLO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUcsbUJBQXpCO0FBRUEsTUFBSUMsSUFBSSxHQUFHLEVBQVg7O0FBQ0EsTUFBSVQsRUFBRSxDQUFDVSxVQUFILENBQWUsR0FBRU4sUUFBUyxHQUFFSSxnQkFBaUIsRUFBN0MsQ0FBSixFQUFxRDtBQUNqRCxRQUFJO0FBQ0FDLFVBQUksR0FBR0UsSUFBSSxDQUFDQyxLQUFMLENBQVdaLEVBQUUsQ0FBQ2EsWUFBSCxDQUFpQixHQUFFVCxRQUFTLEdBQUVJLGdCQUFpQixFQUEvQyxDQUFYLENBQVA7QUFDSCxLQUZELENBR0EsT0FBT00sR0FBUCxFQUFZO0FBQ1JDLGFBQU8sQ0FBQ0MsR0FBUixDQUFZRixHQUFaO0FBQ0g7QUFDSixHQVBELE1BUUssSUFBSWQsRUFBRSxDQUFDVSxVQUFILENBQWNGLGdCQUFkLENBQUosRUFBcUM7QUFDdEMsUUFBSTtBQUNBQyxVQUFJLEdBQUdFLElBQUksQ0FBQ0MsS0FBTCxDQUFXWixFQUFFLENBQUNhLFlBQUgsQ0FBZ0JMLGdCQUFoQixDQUFYLENBQVA7QUFDSCxLQUZELENBR0EsT0FBT00sR0FBUCxFQUFZO0FBQ1JDLGFBQU8sQ0FBQ0MsR0FBUixDQUFZRixHQUFaO0FBQ0g7QUFDSjs7QUFFRCxRQUFNRyxPQUFPLEdBQUdSLElBQWhCOztBQUNBUSxTQUFPLENBQUNDLE9BQVIsR0FBa0IsVUFBU0MsQ0FBVCxFQUFZQyxDQUFaLEVBQWU7QUFDN0JILFdBQU8sQ0FBQ0UsQ0FBRCxDQUFQLEdBQWFDLENBQWI7QUFDQSxTQUFLQyxJQUFMO0FBQ0gsR0FIRDs7QUFJQUosU0FBTyxDQUFDSyxPQUFSLEdBQWtCLFVBQVNILENBQVQsRUFBWTtBQUMxQixXQUFPRixPQUFPLENBQUNFLENBQUQsQ0FBUCxJQUFjLElBQXJCO0FBQ0gsR0FGRDs7QUFHQUYsU0FBTyxDQUFDSSxJQUFSLEdBQWUsWUFBVztBQUN0QnJCLE1BQUUsQ0FBQ3VCLGFBQUgsQ0FBa0IsR0FBRW5CLFFBQVMsR0FBRUksZ0JBQWlCLEVBQWhELEVBQW1ERyxJQUFJLENBQUNhLFNBQUwsQ0FBZSxJQUFmLENBQW5ELEVBQXlFLElBQXpFLEVBQStFLENBQS9FO0FBQ0gsR0FGRDs7QUFJQSxRQUFNQyxPQUFPLEdBQUcsSUFBSUMsS0FBSixDQUFVVCxPQUFWLEVBQW1CO0FBQy9CVSxPQUFHLEVBQUUsVUFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLEdBQXZCLEVBQTRCO0FBQzdCYixhQUFPLENBQUNZLElBQUQsQ0FBUCxHQUFnQkMsR0FBaEI7QUFDQWIsYUFBTyxDQUFDSSxJQUFSO0FBQ0gsS0FKOEI7QUFLL0JVLE9BQUcsRUFBRSxVQUFTSCxNQUFULEVBQWlCQyxJQUFqQixFQUF1QjtBQUN4QixhQUFPWixPQUFPLENBQUNZLElBQUQsQ0FBUCxJQUFpQixJQUF4QjtBQUNIO0FBUDhCLEdBQW5CLENBQWhCO0FBVUFHLFFBQU0sQ0FBQ0MsWUFBUCxHQUFzQlIsT0FBdEI7QUFFSCxDIiwiZmlsZSI6Ii4vc3JjL2xvY2Fsc3RvcmFnZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIExvY2Fsc3RvcmFnZSBmaXggKi9cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICBjb25zdCBwbGF0Zm9ybSA9IHByb2Nlc3MucGxhdGZvcm07XHJcbiAgICBjb25zdCBkYXRhUGF0aCA9IChwbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gcHJvY2Vzcy5lbnYuQVBQREFUQSA6IHBsYXRmb3JtID09PSBcImRhcndpblwiID8gcHJvY2Vzcy5lbnYuSE9NRSArIFwiL0xpYnJhcnkvUHJlZmVyZW5jZXNcIiA6IHByb2Nlc3MuZW52LkhPTUUgKyBcIi8uY29uZmlnXCIpICsgXCIvQmV0dGVyRGlzY29yZC9cIjtcclxuICAgIGNvbnN0IGxvY2FsU3RvcmFnZUZpbGUgPSBcImxvY2FsU3RvcmFnZS5qc29uXCI7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGlmIChmcy5leGlzdHNTeW5jKGAke2RhdGFQYXRofSR7bG9jYWxTdG9yYWdlRmlsZX1gKSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhgJHtkYXRhUGF0aH0ke2xvY2FsU3RvcmFnZUZpbGV9YCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZnMuZXhpc3RzU3luYyhsb2NhbFN0b3JhZ2VGaWxlKSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhsb2NhbFN0b3JhZ2VGaWxlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3RvcmFnZSA9IGRhdGE7XHJcbiAgICBzdG9yYWdlLnNldEl0ZW0gPSBmdW5jdGlvbihpLCB2KSB7XHJcbiAgICAgICAgc3RvcmFnZVtpXSA9IHY7XHJcbiAgICAgICAgdGhpcy5zYXZlKCk7XHJcbiAgICB9O1xyXG4gICAgc3RvcmFnZS5nZXRJdGVtID0gZnVuY3Rpb24oaSkge1xyXG4gICAgICAgIHJldHVybiBzdG9yYWdlW2ldIHx8IG51bGw7XHJcbiAgICB9O1xyXG4gICAgc3RvcmFnZS5zYXZlID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhgJHtkYXRhUGF0aH0ke2xvY2FsU3RvcmFnZUZpbGV9YCwgSlNPTi5zdHJpbmdpZnkodGhpcyksIG51bGwsIDQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBsc1Byb3h5ID0gbmV3IFByb3h5KHN0b3JhZ2UsIHtcclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSwgdmFsKSB7XHJcbiAgICAgICAgICAgIHN0b3JhZ2VbbmFtZV0gPSB2YWw7XHJcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2F2ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIG5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0b3JhZ2VbbmFtZV0gfHwgbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlID0gbHNQcm94eTtcclxuXHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/localstorage.js\n"); /***/ }), @@ -2484,151 +395,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackmodules */ "./src/modules/webpackmodules.js"); -/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluginapi */ "./src/modules/pluginapi.js"); -/* harmony import */ var _ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/icons/bdlogo */ "./src/ui/icons/bdlogo.js"); - - - -/* harmony default export */ __webpack_exports__["default"] = (new class V2 { - constructor() { - this.editorDetached = false; - } - - initialize() { - _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].suppressErrors(this.patchSocial.bind(this), "BD Social Patch")(); - _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].suppressErrors(this.patchGuildPills.bind(this), "BD Guild Pills Patch")(); - _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].suppressErrors(this.patchGuildListItems.bind(this), "BD Guild List Items Patch")(); - _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].suppressErrors(this.patchGuildSeparator.bind(this), "BD Guild Separator Patch")(); - } - - get messageClasses() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("message", "containerCozy"); - } - - get guildClasses() { - const guildsWrapper = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("wrapper", "unreadMentionsBar"); - const guilds = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("guildsError", "selected"); - const pill = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("blobContainer"); - return Object.assign({}, guildsWrapper, guilds, pill); - } - - get MessageContentComponent() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty("disableButtons")); - } - - get TimeFormatter() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("dateFormat"); - } - - get TooltipWrapper() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByDisplayName("TooltipDeprecated"); - } - - get NativeModule() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getByProps("setBadge"); - } - - get Tooltips() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getModule(m => m.hide && m.show && !m.search && !m.submit && !m.search && !m.activateRagingDemon && !m.dismiss); - } - - get KeyGenerator() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__["default"].getModule(m => m.toString && /"binary"/.test(m.toString())); - } - - patchSocial() { - if (this.socialPatch) return; - const TabBar = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].findModule(m => m.displayName == "TabBar"); - const Anchor = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].findModule(m => m.displayName == "Anchor"); - if (!TabBar || !Anchor) return; - this.socialPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].monkeyPatch(TabBar.prototype, "render", { - after: data => { - const children = data.returnValue.props.children; - if (!children || !children.length) return; - if (children[children.length - 2].type.displayName !== "Separator") return; - if (!children[children.length - 1].type.toString().includes("socialLinks")) return; - const original = children[children.length - 1].type; - - const newOne = function () { - const returnVal = original(...arguments); - returnVal.props.children.push(_pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].React.createElement(Anchor, { - className: "bd-social-link", - href: "https://github.com/rauenzi/BetterDiscordApp", - rel: "author", - title: "BandagedBD", - target: "_blank" - }, _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].React.createElement(_ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__["default"], { - size: "16px", - className: "bd-social-logo" - }))); - return returnVal; - }; - - children[children.length - 1].type = newOne; - } - }); - } - - patchGuildListItems() { - if (this.guildListItemsPatch) return; - const listItemClass = this.guildClasses.listItem.split(" ")[0]; - const blobClass = this.guildClasses.blobContainer.split(" ")[0]; - const reactInstance = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].getInternalInstance(document.querySelector(`.${listItemClass} .${blobClass}`).parentElement); - const GuildComponent = reactInstance.return.type; - if (!GuildComponent) return; - this.guildListItemsPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].monkeyPatch(GuildComponent.prototype, "render", { - after: data => { - const returnValue = data.returnValue; - const guildData = data.thisObject.props; - returnValue.props.className += " bd-guild"; - if (guildData.unread) returnValue.props.className += " bd-unread"; - if (guildData.selected) returnValue.props.className += " bd-selected"; - if (guildData.audio) returnValue.props.className += " bd-audio"; - if (guildData.video) returnValue.props.className += " bd-video"; - if (guildData.badge) returnValue.props.className += " bd-badge"; - if (guildData.animatable) returnValue.props.className += " bd-animatable"; - return returnValue; - } - }); - } - - patchGuildPills() { - if (this.guildPillPatch) return; - const guildPill = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].findModule(m => m.default && m.default.toString && m.default.toString().includes("translate3d")); - if (!guildPill) return; - this.guildPillPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].monkeyPatch(guildPill, "default", { - after: data => { - const props = data.methodArguments[0]; - if (props.unread) data.returnValue.props.className += " bd-unread"; - if (props.selected) data.returnValue.props.className += " bd-selected"; - if (props.hovered) data.returnValue.props.className += " bd-hovered"; - return data.returnValue; - } - }); - } - - patchGuildSeparator() { - if (this.guildSeparatorPatch) return; - const Guilds = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].findModuleByDisplayName("Guilds"); - const guildComponents = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].findModuleByProps("renderListItem"); - if (!guildComponents || !Guilds) return; - - const GuildSeparator = function () { - const returnValue = guildComponents.Separator(...arguments); - returnValue.props.className += " bd-guild-separator"; - return returnValue; - }; - - this.guildSeparatorPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__["default"].monkeyPatch(Guilds.prototype, "render", { - after: data => { - data.returnValue.props.children[1].props.children[3].type = GuildSeparator; - } - }); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/icons/bdlogo */ \"./src/ui/icons/bdlogo.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2 {\n constructor() {\n this.editorDetached = false;\n }\n\n initialize() {\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchSocial.bind(this), \"BD Social Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildPills.bind(this), \"BD Guild Pills Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildListItems.bind(this), \"BD Guild List Items Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildSeparator.bind(this), \"BD Guild Separator Patch\")();\n }\n\n get messageClasses() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"message\", \"containerCozy\");\n }\n\n get guildClasses() {\n const guildsWrapper = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"wrapper\", \"unreadMentionsBar\");\n const guilds = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"guildsError\", \"selected\");\n const pill = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"blobContainer\");\n return Object.assign({}, guildsWrapper, guilds, pill);\n }\n\n get MessageContentComponent() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n }\n\n get TimeFormatter() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"dateFormat\");\n }\n\n get TooltipWrapper() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByDisplayName(\"TooltipDeprecated\");\n }\n\n get NativeModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"setBadge\");\n }\n\n get Tooltips() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.hide && m.show && !m.search && !m.submit && !m.search && !m.activateRagingDemon && !m.dismiss);\n }\n\n get KeyGenerator() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.toString && /\"binary\"/.test(m.toString()));\n }\n\n patchSocial() {\n if (this.socialPatch) return;\n const TabBar = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.displayName == \"TabBar\");\n const Anchor = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.displayName == \"Anchor\");\n if (!TabBar || !Anchor) return;\n this.socialPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(TabBar.prototype, \"render\", {\n after: data => {\n const children = data.returnValue.props.children;\n if (!children || !children.length) return;\n if (children[children.length - 2].type.displayName !== \"Separator\") return;\n if (!children[children.length - 1].type.toString().includes(\"socialLinks\")) return;\n const original = children[children.length - 1].type;\n\n const newOne = function () {\n const returnVal = original(...arguments);\n returnVal.props.children.push(_pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(Anchor, {\n className: \"bd-social-link\",\n href: \"https://github.com/rauenzi/BetterDiscordApp\",\n rel: \"author\",\n title: \"BandagedBD\",\n target: \"_blank\"\n }, _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(_ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"16px\",\n className: \"bd-social-logo\"\n })));\n return returnVal;\n };\n\n children[children.length - 1].type = newOne;\n }\n });\n }\n\n patchGuildListItems() {\n if (this.guildListItemsPatch) return;\n const listItemClass = this.guildClasses.listItem.split(\" \")[0];\n const blobClass = this.guildClasses.blobContainer.split(\" \")[0];\n const reactInstance = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getInternalInstance(document.querySelector(`.${listItemClass} .${blobClass}`).parentElement);\n const GuildComponent = reactInstance.return.type;\n if (!GuildComponent) return;\n this.guildListItemsPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(GuildComponent.prototype, \"render\", {\n after: data => {\n const returnValue = data.returnValue;\n const guildData = data.thisObject.props;\n returnValue.props.className += \" bd-guild\";\n if (guildData.unread) returnValue.props.className += \" bd-unread\";\n if (guildData.selected) returnValue.props.className += \" bd-selected\";\n if (guildData.audio) returnValue.props.className += \" bd-audio\";\n if (guildData.video) returnValue.props.className += \" bd-video\";\n if (guildData.badge) returnValue.props.className += \" bd-badge\";\n if (guildData.animatable) returnValue.props.className += \" bd-animatable\";\n return returnValue;\n }\n });\n }\n\n patchGuildPills() {\n if (this.guildPillPatch) return;\n const guildPill = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.default && m.default.toString && m.default.toString().includes(\"translate3d\"));\n if (!guildPill) return;\n this.guildPillPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(guildPill, \"default\", {\n after: data => {\n const props = data.methodArguments[0];\n if (props.unread) data.returnValue.props.className += \" bd-unread\";\n if (props.selected) data.returnValue.props.className += \" bd-selected\";\n if (props.hovered) data.returnValue.props.className += \" bd-hovered\";\n return data.returnValue;\n }\n });\n }\n\n patchGuildSeparator() {\n if (this.guildSeparatorPatch) return;\n const Guilds = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModuleByDisplayName(\"Guilds\");\n const guildComponents = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModuleByProps(\"renderListItem\");\n if (!guildComponents || !Guilds) return;\n\n const GuildSeparator = function () {\n const returnValue = guildComponents.Separator(...arguments);\n returnValue.props.className += \" bd-guild-separator\";\n return returnValue;\n };\n\n this.guildSeparatorPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(Guilds.prototype, \"render\", {\n after: data => {\n data.returnValue.props.children[1].props.children[3].type = GuildSeparator;\n }\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvYmR2Mi5qcz9mZmJlIl0sIm5hbWVzIjpbIlYyIiwiY29uc3RydWN0b3IiLCJlZGl0b3JEZXRhY2hlZCIsImluaXRpYWxpemUiLCJCZEFwaSIsInN1cHByZXNzRXJyb3JzIiwicGF0Y2hTb2NpYWwiLCJiaW5kIiwicGF0Y2hHdWlsZFBpbGxzIiwicGF0Y2hHdWlsZExpc3RJdGVtcyIsInBhdGNoR3VpbGRTZXBhcmF0b3IiLCJtZXNzYWdlQ2xhc3NlcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsImd1aWxkQ2xhc3NlcyIsImd1aWxkc1dyYXBwZXIiLCJndWlsZHMiLCJwaWxsIiwiT2JqZWN0IiwiYXNzaWduIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJnZXRNb2R1bGUiLCJtIiwiZGVmYXVsdFByb3BzIiwiaGFzT3duUHJvcGVydHkiLCJUaW1lRm9ybWF0dGVyIiwiVG9vbHRpcFdyYXBwZXIiLCJnZXRCeURpc3BsYXlOYW1lIiwiTmF0aXZlTW9kdWxlIiwiVG9vbHRpcHMiLCJoaWRlIiwic2hvdyIsInNlYXJjaCIsInN1Ym1pdCIsImFjdGl2YXRlUmFnaW5nRGVtb24iLCJkaXNtaXNzIiwiS2V5R2VuZXJhdG9yIiwidG9TdHJpbmciLCJ0ZXN0Iiwic29jaWFsUGF0Y2giLCJUYWJCYXIiLCJmaW5kTW9kdWxlIiwiZGlzcGxheU5hbWUiLCJBbmNob3IiLCJtb25rZXlQYXRjaCIsInByb3RvdHlwZSIsImFmdGVyIiwiZGF0YSIsImNoaWxkcmVuIiwicmV0dXJuVmFsdWUiLCJwcm9wcyIsImxlbmd0aCIsInR5cGUiLCJpbmNsdWRlcyIsIm9yaWdpbmFsIiwibmV3T25lIiwicmV0dXJuVmFsIiwiYXJndW1lbnRzIiwicHVzaCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImhyZWYiLCJyZWwiLCJ0aXRsZSIsInRhcmdldCIsIkJETG9nbyIsInNpemUiLCJndWlsZExpc3RJdGVtc1BhdGNoIiwibGlzdEl0ZW1DbGFzcyIsImxpc3RJdGVtIiwic3BsaXQiLCJibG9iQ2xhc3MiLCJibG9iQ29udGFpbmVyIiwicmVhY3RJbnN0YW5jZSIsImdldEludGVybmFsSW5zdGFuY2UiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJwYXJlbnRFbGVtZW50IiwiR3VpbGRDb21wb25lbnQiLCJyZXR1cm4iLCJndWlsZERhdGEiLCJ0aGlzT2JqZWN0IiwidW5yZWFkIiwic2VsZWN0ZWQiLCJhdWRpbyIsInZpZGVvIiwiYmFkZ2UiLCJhbmltYXRhYmxlIiwiZ3VpbGRQaWxsUGF0Y2giLCJndWlsZFBpbGwiLCJkZWZhdWx0IiwibWV0aG9kQXJndW1lbnRzIiwiaG92ZXJlZCIsImd1aWxkU2VwYXJhdG9yUGF0Y2giLCJHdWlsZHMiLCJmaW5kTW9kdWxlQnlEaXNwbGF5TmFtZSIsImd1aWxkQ29tcG9uZW50cyIsImZpbmRNb2R1bGVCeVByb3BzIiwiR3VpbGRTZXBhcmF0b3IiLCJTZXBhcmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsRUFBTixDQUFTO0FBRXhCQyxhQUFXLEdBQUc7QUFDVixTQUFLQyxjQUFMLEdBQXNCLEtBQXRCO0FBQ0g7O0FBRURDLFlBQVUsR0FBRztBQUNUQyxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtDLFdBQUwsQ0FBaUJDLElBQWpCLENBQXNCLElBQXRCLENBQXJCLEVBQWtELGlCQUFsRDtBQUNBSCxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtHLGVBQUwsQ0FBcUJELElBQXJCLENBQTBCLElBQTFCLENBQXJCLEVBQXNELHNCQUF0RDtBQUNBSCxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtJLG1CQUFMLENBQXlCRixJQUF6QixDQUE4QixJQUE5QixDQUFyQixFQUEwRCwyQkFBMUQ7QUFDQUgsc0RBQUssQ0FBQ0MsY0FBTixDQUFxQixLQUFLSyxtQkFBTCxDQUF5QkgsSUFB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QUFDbkIsZUFBT2QsSUFBSSxDQUFDRSxXQUFaO0FBQ0g7QUFONkQsS0FBeEMsQ0FBdEI7QUFPSDs7QUFFRHZDLHFCQUFtQixHQUFHO0FBQ2xCLFFBQUksS0FBS29GLG1CQUFULEVBQThCO0FBQzlCLFVBQU1DLE1BQU0sR0FBRzNGLGtEQUFLLENBQUM0Rix1QkFBTixDQUE4QixRQUE5QixDQUFmO0FBQ0EsVUFBTUMsZUFBZSxHQUFHN0Ysa0RBQUssQ0FBQzhGLGlCQUFOLENBQXdCLGdCQUF4QixDQUF4QjtBQUNBLFFBQUksQ0FBQ0QsZUFBRCxJQUFvQixDQUFDRixNQUF6QixFQUFpQzs7QUFDakMsVUFBTUksY0FBYyxHQUFHLFlBQVc7QUFDOUIsWUFBTWxELFdBQVcsR0FBR2dELGVBQWUsQ0FBQ0csU0FBaEIsQ0FBMEIsR0FBRzNDLFNBQTdCLENBQXBCO0FBQ0FSLGlCQUFXLENBQUNDLEtBQVosQ0FBa0JXLFNBQWxCLElBQStCLHFCQUEvQjtBQUNBLGFBQU9aLFdBQVA7QUFDSCxLQUpEOztBQUtBLFNBQUs2QyxtQkFBTCxHQUEyQjFGLGtEQUFLLENBQUN3QyxXQUFOLENBQWtCbUQsTUFBTSxDQUFDbEQsU0FBekIsRUFBb0MsUUFBcEMsRUFBOEM7QUFBQ0MsV0FBSyxFQUFHQyxJQUFELElBQVU7QUFDdkZBLFlBQUksQ0FBQ0UsV0FBTCxDQUFpQkMsS0FBakIsQ0FBdUJGLFFBQXZCLENBQWdDLENBQWhDLEVBQW1DRSxLQUFuQyxDQUF5Q0YsUUFBekMsQ0FBa0QsQ0FBbEQsRUFBcURJLElBQXJELEdBQTREK0MsY0FBNUQ7QUFDSDtBQUZ3RSxLQUE5QyxDQUEzQjtBQUdIOztBQWpHdUIsQ0FBYixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvYmR2Mi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJwYWNrTW9kdWxlcyBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vcGx1Z2luYXBpXCI7XHJcbmltcG9ydCBCRExvZ28gZnJvbSBcIi4uL3VpL2ljb25zL2JkbG9nb1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFYyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmVkaXRvckRldGFjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBCZEFwaS5zdXBwcmVzc0Vycm9ycyh0aGlzLnBhdGNoU29jaWFsLmJpbmQodGhpcyksIFwiQkQgU29jaWFsIFBhdGNoXCIpKCk7XHJcbiAgICAgICAgQmRBcGkuc3VwcHJlc3NFcnJvcnModGhpcy5wYXRjaEd1aWxkUGlsbHMuYmluZCh0aGlzKSwgXCJCRCBHdWlsZCBQaWxscyBQYXRjaFwiKSgpO1xyXG4gICAgICAgIEJkQXBpLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZExpc3RJdGVtcy5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIExpc3QgSXRlbXMgUGF0Y2hcIikoKTtcclxuICAgICAgICBCZEFwaS5zdXBwcmVzc0Vycm9ycyh0aGlzLnBhdGNoR3VpbGRTZXBhcmF0b3IuYmluZCh0aGlzKSwgXCJCRCBHdWlsZCBTZXBhcmF0b3IgUGF0Y2hcIikoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWVzc2FnZUNsYXNzZXMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJtZXNzYWdlXCIsIFwiY29udGFpbmVyQ296eVwiKTt9XHJcbiAgICBnZXQgZ3VpbGRDbGFzc2VzKCkge1xyXG5cdFx0Y29uc3QgZ3VpbGRzV3JhcHBlciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ3cmFwcGVyXCIsIFwidW5yZWFkTWVudGlvbnNCYXJcIik7XHJcbiAgICAgICAgY29uc3QgZ3VpbGRzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImd1aWxkc0Vycm9yXCIsIFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgY29uc3QgcGlsbCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJibG9iQ29udGFpbmVyXCIpO1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBndWlsZHNXcmFwcGVyLCBndWlsZHMsIHBpbGwpO1xyXG5cdH1cclxuXHJcbiAgICBnZXQgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uZGVmYXVsdFByb3BzICYmIG0uZGVmYXVsdFByb3BzLmhhc093blByb3BlcnR5KFwiZGlzYWJsZUJ1dHRvbnNcIikpO31cclxuICAgIGdldCBUaW1lRm9ybWF0dGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGF0ZUZvcm1hdFwiKTt9XHJcbiAgICBnZXQgVG9vbHRpcFdyYXBwZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwRGVwcmVjYXRlZFwiKTt9XHJcbiAgICBnZXQgTmF0aXZlTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic2V0QmFkZ2VcIik7fVxyXG4gICAgZ2V0IFRvb2x0aXBzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLmhpZGUgJiYgbS5zaG93ICYmICFtLnNlYXJjaCAmJiAhbS5zdWJtaXQgJiYgIW0uc2VhcmNoICYmICFtLmFjdGl2YXRlUmFnaW5nRGVtb24gJiYgIW0uZGlzbWlzcyk7fVxyXG4gICAgZ2V0IEtleUdlbmVyYXRvcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS50b1N0cmluZyAmJiAvXCJiaW5hcnlcIi8udGVzdChtLnRvU3RyaW5nKCkpKTt9XHJcblxyXG4gICAgcGF0Y2hTb2NpYWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc29jaWFsUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBUYWJCYXIgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIlRhYkJhclwiKTtcclxuICAgICAgICBjb25zdCBBbmNob3IgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIkFuY2hvclwiKTtcclxuICAgICAgICBpZiAoIVRhYkJhciB8fCAhQW5jaG9yKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zb2NpYWxQYXRjaCA9IEJkQXBpLm1vbmtleVBhdGNoKFRhYkJhci5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDJdLnR5cGUuZGlzcGxheU5hbWUgIT09IFwiU2VwYXJhdG9yXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKCFjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXS50eXBlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJzb2NpYWxMaW5rc1wiKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld09uZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0dXJuVmFsID0gb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgIHJldHVyblZhbC5wcm9wcy5jaGlsZHJlbi5wdXNoKEJkQXBpLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5jaG9yLCB7Y2xhc3NOYW1lOiBcImJkLXNvY2lhbC1saW5rXCIsIGhyZWY6IFwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcFwiLCByZWw6IFwiYXV0aG9yXCIsIHRpdGxlOiBcIkJhbmRhZ2VkQkRcIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgICAgICBCZEFwaS5SZWFjdC5jcmVhdGVFbGVtZW50KEJETG9nbywge3NpemU6IFwiMTZweFwiLCBjbGFzc05hbWU6IFwiYmQtc29jaWFsLWxvZ29cIn0pXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGUgPSBuZXdPbmU7XHJcbiAgICAgICAgfX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoR3VpbGRMaXN0SXRlbXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VpbGRMaXN0SXRlbXNQYXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGxpc3RJdGVtQ2xhc3MgPSB0aGlzLmd1aWxkQ2xhc3Nlcy5saXN0SXRlbS5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3QgYmxvYkNsYXNzID0gdGhpcy5ndWlsZENsYXNzZXMuYmxvYkNvbnRhaW5lci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3QgcmVhY3RJbnN0YW5jZSA9IEJkQXBpLmdldEludGVybmFsSW5zdGFuY2UoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7bGlzdEl0ZW1DbGFzc30gLiR7YmxvYkNsYXNzfWApLnBhcmVudEVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IEd1aWxkQ29tcG9uZW50ID0gcmVhY3RJbnN0YW5jZS5yZXR1cm4udHlwZTtcclxuICAgICAgICBpZiAoIUd1aWxkQ29tcG9uZW50KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ndWlsZExpc3RJdGVtc1BhdGNoID0gQmRBcGkubW9ua2V5UGF0Y2goR3VpbGRDb21wb25lbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gZGF0YS5yZXR1cm5WYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZ3VpbGREYXRhID0gZGF0YS50aGlzT2JqZWN0LnByb3BzO1xyXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtZ3VpbGRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS51bnJlYWQpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC11bnJlYWRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5zZWxlY3RlZCkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYXVkaW8pIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1hdWRpb1wiO1xyXG4gICAgICAgICAgICBpZiAoZ3VpbGREYXRhLnZpZGVvKSByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtdmlkZW9cIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5iYWRnZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWJhZGdlXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYW5pbWF0YWJsZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWFuaW1hdGFibGVcIjtcclxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaEd1aWxkUGlsbHMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VpbGRQaWxsUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBndWlsZFBpbGwgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kZWZhdWx0ICYmIG0uZGVmYXVsdC50b1N0cmluZyAmJiBtLmRlZmF1bHQudG9TdHJpbmcoKS5pbmNsdWRlcyhcInRyYW5zbGF0ZTNkXCIpKTtcclxuICAgICAgICBpZiAoIWd1aWxkUGlsbCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuZ3VpbGRQaWxsUGF0Y2ggPSBCZEFwaS5tb25rZXlQYXRjaChndWlsZFBpbGwsIFwiZGVmYXVsdFwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZGF0YS5tZXRob2RBcmd1bWVudHNbMF07XHJcbiAgICAgICAgICAgIGlmIChwcm9wcy51bnJlYWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXVucmVhZFwiO1xyXG4gICAgICAgICAgICBpZiAocHJvcHMuc2VsZWN0ZWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5ob3ZlcmVkKSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1ob3ZlcmVkXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJldHVyblZhbHVlO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaEd1aWxkU2VwYXJhdG9yKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZHMgPSBCZEFwaS5maW5kTW9kdWxlQnlEaXNwbGF5TmFtZShcIkd1aWxkc1wiKTtcclxuICAgICAgICBjb25zdCBndWlsZENvbXBvbmVudHMgPSBCZEFwaS5maW5kTW9kdWxlQnlQcm9wcyhcInJlbmRlckxpc3RJdGVtXCIpO1xyXG4gICAgICAgIGlmICghZ3VpbGRDb21wb25lbnRzIHx8ICFHdWlsZHMpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZFNlcGFyYXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGd1aWxkQ29tcG9uZW50cy5TZXBhcmF0b3IoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWd1aWxkLXNlcGFyYXRvclwiO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2ggPSBCZEFwaS5tb25rZXlQYXRjaChHdWlsZHMucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW5bMV0ucHJvcHMuY2hpbGRyZW5bM10udHlwZSA9IEd1aWxkU2VwYXJhdG9yO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/bdv2.js\n"); /***/ }), @@ -2640,555 +407,7 @@ __webpack_require__.r(__webpack_exports__); /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pluginmanager */ "./src/modules/pluginmanager.js"); -/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./thememanager */ "./src/modules/thememanager.js"); - - - - - -const path = __webpack_require__(/*! path */ "path"); - -const fs = __webpack_require__(/*! fs */ "fs"); - -const Module = __webpack_require__(/*! module */ "module").Module; - -Module.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ "electron").remote.app.getAppPath(), "node_modules")); - -class MetaError extends Error { - constructor(message) { - super(message); - this.name = "MetaError"; - } - -} - -const originalJSRequire = Module._extensions[".js"]; -const originalCSSRequire = Module._extensions[".css"] ? Module._extensions[".css"] : () => { - return null; -}; -/* harmony default export */ __webpack_exports__["default"] = (new class ContentManager { - constructor() { - this.timeCache = {}; - this.watchers = {}; - Module._extensions[".js"] = this.getContentRequire("plugin"); - Module._extensions[".css"] = this.getContentRequire("theme"); - } - - get pluginsFolder() { - return this._pluginsFolder || (this._pluginsFolder = fs.realpathSync(path.resolve(data__WEBPACK_IMPORTED_MODULE_0__["Config"].dataPath + "plugins/"))); - } - - get themesFolder() { - return this._themesFolder || (this._themesFolder = fs.realpathSync(path.resolve(data__WEBPACK_IMPORTED_MODULE_0__["Config"].dataPath + "themes/"))); - } - - watchContent(contentType) { - if (this.watchers[contentType]) return; - const isPlugin = contentType === "plugin"; - const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder; - const fileEnding = isPlugin ? ".plugin.js" : ".theme.css"; - this.watchers[contentType] = fs.watch(baseFolder, { - persistent: false - }, async (eventType, filename) => { - if (!eventType || !filename || !filename.endsWith(fileEnding)) return; - await new Promise(r => setTimeout(r, 50)); - - try { - fs.statSync(path.resolve(baseFolder, filename)); - } catch (err) { - if (err.code !== "ENOENT") return; - delete this.timeCache[filename]; - if (isPlugin) return _pluginmanager__WEBPACK_IMPORTED_MODULE_2__["default"].unloadPlugin(filename); - return _thememanager__WEBPACK_IMPORTED_MODULE_3__["default"].unloadTheme(filename); - } - - if (!fs.statSync(path.resolve(baseFolder, filename)).isFile()) return; - const stats = fs.statSync(path.resolve(baseFolder, filename)); - if (!stats || !stats.mtime || !stats.mtime.getTime()) return; - if (typeof stats.mtime.getTime() !== "number") return; - if (this.timeCache[filename] == stats.mtime.getTime()) return; - this.timeCache[filename] = stats.mtime.getTime(); - - if (eventType == "rename") { - if (isPlugin) _pluginmanager__WEBPACK_IMPORTED_MODULE_2__["default"].loadPlugin(filename);else _thememanager__WEBPACK_IMPORTED_MODULE_3__["default"].loadTheme(filename); - } - - if (eventType == "change") { - if (isPlugin) _pluginmanager__WEBPACK_IMPORTED_MODULE_2__["default"].reloadPlugin(filename);else _thememanager__WEBPACK_IMPORTED_MODULE_3__["default"].reloadTheme(filename); - } - }); - } - - unwatchContent(contentType) { - if (!this.watchers[contentType]) return; - this.watchers[contentType].close(); - delete this.watchers[contentType]; - } - - extractMeta(content) { - const meta = content.split("\n")[0]; - const rawMeta = meta.substring(meta.lastIndexOf("//META") + 6, meta.lastIndexOf("*//")); - if (meta.indexOf("META") < 0) throw new MetaError("META was not found."); - if (!_utilities__WEBPACK_IMPORTED_MODULE_1__["default"].testJSON(rawMeta)) throw new MetaError("META could not be parsed."); - const parsed = JSON.parse(rawMeta); - if (!parsed.name) throw new MetaError("META missing name data."); - return parsed; - } - - getContentRequire(type) { - const isPlugin = type === "plugin"; - const self = this; - const originalRequire = isPlugin ? originalJSRequire : originalCSSRequire; - return function (module, filename) { - const baseFolder = isPlugin ? self.pluginsFolder : self.themesFolder; - const possiblePath = path.resolve(baseFolder, path.basename(filename)); - if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments); - let content = fs.readFileSync(filename, "utf8"); - content = _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].stripBOM(content); - const meta = self.extractMeta(content); - meta.filename = path.basename(filename); - - if (!isPlugin) { - meta.css = content.split("\n").slice(1).join("\n"); - content = `module.exports = ${JSON.stringify(meta)};`; - } - - if (isPlugin) { - content += `\nmodule.exports = ${JSON.stringify(meta)};\nmodule.exports.type = ${meta.name};`; - } - - module._compile(content, filename); - }; - } - - makePlaceholderPlugin(data) { - return { - plugin: { - start: () => {}, - getName: () => { - return data.name || data.filename; - }, - getAuthor: () => { - return "???"; - }, - getDescription: () => { - return data.message ? data.message : "This plugin was unable to be loaded. Check the author's page for updates."; - }, - getVersion: () => { - return "???"; - } - }, - name: data.name || data.filename, - filename: data.filename, - source: data.source ? data.source : "", - website: data.website ? data.website : "" - }; - } - - loadContent(filename, type) { - if (typeof filename === "undefined" || typeof type === "undefined") return; - const isPlugin = type === "plugin"; - const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder; - - try { - require(path.resolve(baseFolder, filename)); - } catch (error) { - return { - name: filename, - file: filename, - message: "Could not be compiled.", - error: { - message: error.message, - stack: error.stack - } - }; - } - - const content = require(path.resolve(baseFolder, filename)); - - if (isPlugin) { - if (!content.type) return; - - try { - content.plugin = new content.type(); - delete data__WEBPACK_IMPORTED_MODULE_0__["Plugins"][content.plugin.getName()]; - data__WEBPACK_IMPORTED_MODULE_0__["Plugins"][content.plugin.getName()] = content; - } catch (error) { - return { - name: filename, - file: filename, - message: "Could not be constructed.", - error: { - message: error.message, - stack: error.stack - } - }; - } - } else { - delete data__WEBPACK_IMPORTED_MODULE_0__["Themes"][content.name]; - data__WEBPACK_IMPORTED_MODULE_0__["Themes"][content.name] = content; - } - } - - unloadContent(filename, type) { - if (typeof filename === "undefined" || typeof type === "undefined") return; - const isPlugin = type === "plugin"; - const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder; - - try { - delete require.cache[require.resolve(path.resolve(baseFolder, filename))]; - } catch (err) { - return { - name: filename, - file: filename, - message: "Could not be unloaded.", - error: { - message: err.message, - stack: err.stack - } - }; - } - } - - isLoaded(filename, type) { - const isPlugin = type === "plugin"; - const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder; - - try { - require.cache[require.resolve(path.resolve(baseFolder, filename))]; - } catch (err) { - return false; - } - - return true; - } - - reloadContent(filename, type) { - const cantUnload = this.unloadContent(filename, type); - if (cantUnload) return cantUnload; - return this.loadContent(filename, type); - } - - loadNewContent(type) { - const isPlugin = type === "plugin"; - const fileEnding = isPlugin ? ".plugin.js" : ".theme.css"; - const basedir = isPlugin ? this.pluginsFolder : this.themesFolder; - const files = fs.readdirSync(basedir); - const contentList = Object.values(isPlugin ? data__WEBPACK_IMPORTED_MODULE_0__["Plugins"] : data__WEBPACK_IMPORTED_MODULE_0__["Themes"]); - const removed = contentList.filter(t => !files.includes(t.filename)).map(c => isPlugin ? c.plugin.getName() : c.name); - const added = files.filter(f => !contentList.find(t => t.filename == f) && f.endsWith(fileEnding) && fs.statSync(path.resolve(basedir, f)).isFile()); - return { - added, - removed - }; - } - - loadAllContent(type) { - const isPlugin = type === "plugin"; - const fileEnding = isPlugin ? ".plugin.js" : ".theme.css"; - const basedir = isPlugin ? this.pluginsFolder : this.themesFolder; - const errors = []; - const files = fs.readdirSync(basedir); - - for (const filename of files) { - if (!fs.statSync(path.resolve(basedir, filename)).isFile() || !filename.endsWith(fileEnding)) continue; - const error = this.loadContent(filename, type); - if (error) errors.push(error); - } - - return errors; - } - - loadPlugins() { - return this.loadAllContent("plugin"); - } - - loadThemes() { - return this.loadAllContent("theme"); - } - -}()); - -/***/ }), - -/***/ "./src/modules/contentmanager2.js": -/*!****************************************!*\ - !*** ./src/modules/contentmanager2.js ***! - \****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ContentManager; }); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsmanager */ "./src/modules/settingsmanager.js"); -/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ "./src/modules/emitter.js"); -/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ "./src/modules/datastore.js"); -/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ "./src/structs/contenterror.js"); -/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/metaerror */ "./src/structs/metaerror.js"); - - - - - - - -const path = __webpack_require__(/*! path */ "path"); - -const fs = __webpack_require__(/*! fs */ "fs"); - -const Module = __webpack_require__(/*! module */ "module").Module; - -Module.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ "electron").remote.app.getAppPath(), "node_modules")); -const splitRegex = /[^\S\r\n]*?\n[^\S\r\n]*?\*[^\S\r\n]?/; -const escapedAtRegex = /^\\@/; -class ContentManager { - get name() { - return ""; - } - - get moduleExtension() { - return ""; - } - - get extension() { - return ""; - } - - get contentFolder() { - return ""; - } - - get prefix() { - return "content"; - } - - get collection() { - return "settings"; - } - - get category() { - return "content"; - } - - get id() { - return "autoReload"; - } - - emit(event, ...args) { - return _emitter__WEBPACK_IMPORTED_MODULE_2__["default"].emit(`${this.prefix}-${event}`, ...args); - } - - constructor() { - this.timeCache = {}; - this.contentList = []; - this.state = {}; - this.originalRequire = Module._extensions[this.moduleExtension]; - Module._extensions[this.moduleExtension] = this.getContentRequire(); - _settingsmanager__WEBPACK_IMPORTED_MODULE_1__["default"].on(this.collection, this.category, this.id, enabled => { - if (enabled) this.watchContent();else this.unwatchContent(); - }); - } - - loadState() { - const saved = _datastore__WEBPACK_IMPORTED_MODULE_3__["default"].getData(`${this.prefix}s`); - if (!saved) return; - Object.assign(this.state, saved); - } - - saveState() { - _datastore__WEBPACK_IMPORTED_MODULE_3__["default"].setData(`${this.prefix}s`, this.state); - } - - watchContent() { - if (this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].err(this.name, "Already watching content."); - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].log(this.name, "Starting to watch content."); - this.watcher = fs.watch(this.contentFolder, { - persistent: false - }, async (eventType, filename) => { - if (!eventType || !filename || !filename.endsWith(this.extension)) return; - await new Promise(r => setTimeout(r, 50)); - - try { - fs.statSync(path.resolve(this.contentFolder, filename)); - } catch (err) { - if (err.code !== "ENOENT") return; - delete this.timeCache[filename]; - this.unloadContent(filename, true); - } - - if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile()) return; - const stats = fs.statSync(path.resolve(this.contentFolder, filename)); - if (!stats || !stats.mtime || !stats.mtime.getTime()) return; - if (typeof stats.mtime.getTime() !== "number") return; - if (this.timeCache[filename] == stats.mtime.getTime()) return; - this.timeCache[filename] = stats.mtime.getTime(); - if (eventType == "rename") this.loadContent(filename, true); - if (eventType == "change") this.reloadContent(filename, true); - }); - } - - unwatchContent() { - if (!this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].err(this.name, "Was not watching content."); - this.watcher.close(); - delete this.watcher; - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].log(this.name, "No longer watching content."); - } - - extractMeta(content) { - const firstLine = content.split("\n")[0]; - const hasOldMeta = firstLine.includes("//META"); - if (hasOldMeta) return this.parseOldMeta(content); - const hasNewMeta = firstLine.includes("/**"); - if (hasNewMeta) return this.parseNewMeta(content); - throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__["default"]("META was not found."); - } - - parseOldMeta(content) { - const meta = content.split("\n")[0]; - const rawMeta = meta.substring(meta.lastIndexOf("//META") + 6, meta.lastIndexOf("*//")); - if (meta.indexOf("META") < 0) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__["default"]("META was not found."); - if (!_utilities__WEBPACK_IMPORTED_MODULE_0__["default"].testJSON(rawMeta)) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__["default"]("META could not be parsed."); - const parsed = JSON.parse(rawMeta); - if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__["default"]("META missing name data."); - return parsed; - } - - parseNewMeta(content) { - const block = content.split("/**", 2)[1].split("*/", 1)[0]; - const stripped = block.replace(/^\s*\*\s?/mg, ""); - const out = {}; - let field = ""; - let accum = ""; - stripped.split("\n").forEach(line => { - const fieldCandidate = line.split(/\s/g, 1)[0]; - - if (fieldCandidate.length > 1 && fieldCandidate.charAt(0) === "@") { - out[field] = accum.trim(); - field = fieldCandidate.substr(1); - accum = line.substr(fieldCandidate.length); - } else { - accum += " " + line.trim().replace("\\n", "\n").replace(/^\\@/, "@"); - } - }); - out[field] = accum.trim(); - delete out[""]; - return out; - } - - parseNewMeta2(content) { - const block = content.split("/**", 2)[1].split("*/", 1)[0]; - const out = {}; - let field = ""; - let accum = ""; - - for (const line of block.split(splitRegex)) { - if (line.length === 0) continue; - - if (line.charAt(0) === "@" && line.charAt(1) !== " ") { - out[field] = accum; - const l = line.indexOf(" "); - field = line.substr(1, l - 1); - accum = line.substr(l + 1); - } else { - accum += " " + line.replace("\\n", "\n").replace(escapedAtRegex, "@"); - } - } - - out[field] = accum.trim(); - delete out[""]; - return out; - } - - getContentRequire() { - const self = this; // const baseFolder = this.contentFolder; - - const originalRequire = this.originalRequire; - return function (module, filename) { - const possiblePath = path.resolve(self.contentFolder, path.basename(filename)); - if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments); - let content = fs.readFileSync(filename, "utf8"); - content = _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].stripBOM(content); - const meta = self.extractMeta(content); - meta.id = meta.name; - meta.filename = path.basename(filename); - content = self.getContentModification(module, content, meta); - - module._compile(content, filename); - }; - } // Subclasses should use the return (if not ContentError) and push to this.contentList - - - loadContent(filename) { - if (typeof filename === "undefined") return; - - try { - require(path.resolve(this.contentFolder, filename)); - } catch (error) { - return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__["default"](filename, filename, "Could not be compiled.", { - message: error.message, - stack: error.stack - }); - } - - return require(path.resolve(this.contentFolder, filename)); - } // Subclasses should overload this and modify the content as needed to require() the file - - - getContentModification(module, content) { - return content; - } - - unloadContent(idOrFileOrContent) { - const content = typeof idOrFileOrContent == "string" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent; - if (!content) return false; - delete require.cache[require.resolve(path.resolve(this.contentFolder, content.filename))]; - this.contentList.splice(this.contentList.indexOf(content), 1); - return true; - } - - isLoaded(idOrFile) { - const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile); - if (!content) return false; - return true; - } - - reloadContent(filename, fromWatcher) { - const didUnload = this.unloadContent(filename, fromWatcher); - if (!didUnload) return didUnload; - return this.loadContent(filename, fromWatcher); - } - - loadNewContent() { - const files = fs.readdirSync(this.contentFolder); - const removed = this.contentList.filter(t => !files.includes(t.filename)).map(c => c.id); - const added = files.filter(f => !this.contentList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.contentFolder, f)).isFile()); - return { - added, - removed - }; - } - - loadAllContent() { - const errors = []; - const files = fs.readdirSync(this.contentFolder); - - for (const filename of files) { - if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue; - const content = this.loadContent(filename); - if (content instanceof _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__["default"]) errors.push(content); - } - - if (_settingsmanager__WEBPACK_IMPORTED_MODULE_1__["default"].get(this.collection, this.category, this.id)) this.watchContent(); - return errors; - } - -} +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentManager; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/metaerror */ \"./src/structs/metaerror.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\nconst splitRegex = /[^\\S\\r\\n]*?\\n[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\nclass ContentManager {\n get name() {\n return \"\";\n }\n\n get moduleExtension() {\n return \"\";\n }\n\n get extension() {\n return \"\";\n }\n\n get contentFolder() {\n return \"\";\n }\n\n get prefix() {\n return \"content\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"content\";\n }\n\n get id() {\n return \"autoReload\";\n }\n\n emit(event, ...args) {\n return _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emit(`${this.prefix}-${event}`, ...args);\n }\n\n constructor() {\n this.timeCache = {};\n this.contentList = [];\n this.state = {};\n this.originalRequire = Module._extensions[this.moduleExtension];\n Module._extensions[this.moduleExtension] = this.getContentRequire();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(this.collection, this.category, this.id, enabled => {\n if (enabled) this.watchContent();else this.unwatchContent();\n });\n } // Subclasses should overload this and modify the content object as needed to fully load it\n\n\n initializeContent() {\n return;\n } // Subclasses should overload this and modify the content as needed to require() the file\n\n\n getContentModification(module, content) {\n return content;\n }\n\n startContent() {\n return;\n }\n\n stopContent() {\n return;\n }\n\n loadState() {\n const saved = _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getData(`${this.prefix}s`);\n console.log(saved);\n if (!saved) return;\n Object.assign(this.state, saved);\n }\n\n saveState() {\n _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setData(`${this.prefix}s`, this.state);\n }\n\n watchContent() {\n if (this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Already watching content.\");\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"Starting to watch content.\");\n this.watcher = fs.watch(this.contentFolder, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename || !filename.endsWith(this.extension)) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(path.resolve(this.contentFolder, filename));\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete this.timeCache[filename];\n this.unloadContent(filename, true);\n }\n\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile()) return;\n const stats = fs.statSync(path.resolve(this.contentFolder, filename));\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (this.timeCache[filename] == stats.mtime.getTime()) return;\n this.timeCache[filename] = stats.mtime.getTime();\n if (eventType == \"rename\") this.loadContent(filename, true);\n if (eventType == \"change\") this.reloadContent(filename, true);\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"No longer watching content.\");\n }\n\n extractMeta(content) {\n const firstLine = content.split(\"\\n\")[0];\n const hasOldMeta = firstLine.includes(\"//META\");\n if (hasOldMeta) return this.parseOldMeta(content);\n const hasNewMeta = firstLine.includes(\"/**\");\n if (hasNewMeta) return this.parseNewMeta(content);\n throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META was not found.\");\n }\n\n parseOldMeta(content) {\n const meta = content.split(\"\\n\")[0];\n const metaData = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n if (!_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(metaData)) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META could not be parsed.\");\n const parsed = JSON.parse(metaData);\n if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META missing name data.\");\n return parsed;\n }\n\n parseNewMeta(content) {\n const block = content.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n const out = {};\n let field = \"\";\n let accum = \"\";\n\n for (const line of block.split(splitRegex)) {\n if (line.length === 0) continue;\n\n if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n out[field] = accum;\n const l = line.indexOf(\" \");\n field = line.substr(1, l - 1);\n accum = line.substr(l + 1);\n } else {\n accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n }\n }\n\n out[field] = accum.trim();\n delete out[\"\"];\n return out;\n }\n\n getContentRequire() {\n const self = this; // const baseFolder = this.contentFolder;\n\n const originalRequire = this.originalRequire;\n return function (module, filename) {\n const possiblePath = path.resolve(self.contentFolder, path.basename(filename));\n if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n let content = fs.readFileSync(filename, \"utf8\");\n content = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stripBOM(content);\n const meta = self.extractMeta(content);\n meta.id = meta.name;\n meta.filename = path.basename(filename);\n content = self.getContentModification(module, content, meta);\n\n module._compile(content, filename);\n };\n } // Subclasses should use the return (if not ContentError) and push to this.contentList\n\n\n loadContent(filename, shouldToast = true) {\n if (typeof filename === \"undefined\") return;\n\n try {\n require(path.resolve(this.contentFolder, filename));\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](filename, filename, \"Could not be compiled.\", {\n message: error.message,\n stack: error.stack\n });\n }\n\n const content = require(path.resolve(this.contentFolder, filename));\n\n console.log(content);\n if (this.contentList.find(c => c.id == content.id)) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, filename, `There is already a plugin with name ${content.name}`);\n const error = this.initializeContent(content);\n if (error) return error;\n this.contentList.push(content);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} v${content.version} was loaded.`);\n this.emit(\"loaded\", content.id);\n if (!this.state[content.id]) return this.state[content.id] = false;\n return this.startContent(content);\n }\n\n unloadContent(idOrFileOrContent, shouldToast = true) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n if (!content) return false;\n if (this.state[content.id]) this.disableContent(content);\n delete require.cache[require.resolve(path.resolve(this.contentFolder, content.filename))];\n this.contentList.splice(this.contentList.indexOf(content), 1);\n this.emit(\"unloaded\", content.id);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} was unloaded.`);\n return true;\n }\n\n reloadContent(filename) {\n const didUnload = this.unloadContent(filename);\n if (!didUnload) return didUnload;\n return this.loadContent(filename);\n }\n\n isLoaded(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return true;\n }\n\n isEnabled(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return this.state[content.id];\n }\n\n enableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (this.state[content.id]) return;\n this.state[content.id] = true;\n this.startContent(content);\n this.saveState();\n }\n\n disableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (!this.state[content.id]) return;\n this.state[content.id] = false;\n this.stopContent(content);\n this.saveState();\n }\n\n toggleContent(id) {\n if (this.state[id]) this.disableContent(id);else this.enableContent(id);\n }\n\n loadNewContent() {\n const files = fs.readdirSync(this.contentFolder);\n const removed = this.contentList.filter(t => !files.includes(t.filename)).map(c => c.id);\n const added = files.filter(f => !this.contentList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.contentFolder, f)).isFile());\n return {\n added,\n removed\n };\n }\n\n updateList() {\n const results = this.loadNewContent();\n\n for (const filename of results.added) this.loadContent(filename);\n\n for (const name of results.removed) this.unloadContent(name);\n }\n\n loadAllContent() {\n this.loadState();\n const errors = [];\n const files = fs.readdirSync(this.contentFolder);\n\n for (const filename of files) {\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue;\n const content = this.loadContent(filename, false);\n if (content instanceof _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) errors.push(content);\n }\n\n this.saveState();\n if (_settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(this.collection, this.category, this.id)) this.watchContent();\n return errors;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29udGVudG1hbmFnZXIuanM/OTA0MyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwiTW9kdWxlIiwiZ2xvYmFsUGF0aHMiLCJwdXNoIiwicmVzb2x2ZSIsInJlbW90ZSIsImFwcCIsImdldEFwcFBhdGgiLCJzcGxpdFJlZ2V4IiwiZXNjYXBlZEF0UmVnZXgiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicHJlZml4IiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJlbWl0IiwiZXZlbnQiLCJhcmdzIiwiRXZlbnRzIiwiY29uc3RydWN0b3IiLCJ0aW1lQ2FjaGUiLCJjb250ZW50TGlzdCIsInN0YXRlIiwib3JpZ2luYWxSZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJnZXRDb250ZW50UmVxdWlyZSIsIlNldHRpbmdzIiwib24iLCJlbmFibGVkIiwid2F0Y2hDb250ZW50IiwidW53YXRjaENvbnRlbnQiLCJpbml0aWFsaXplQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50Iiwic3RhcnRDb250ZW50Iiwic3RvcENvbnRlbnQiLCJsb2FkU3RhdGUiLCJzYXZlZCIsIkRhdGFTdG9yZSIsImdldERhdGEiLCJjb25zb2xlIiwibG9nIiwiT2JqZWN0IiwiYXNzaWduIiwic2F2ZVN0YXRlIiwic2V0RGF0YSIsIndhdGNoZXIiLCJVdGlsaXRpZXMiLCJlcnIiLCJ3YXRjaCIsInBlcnNpc3RlbnQiLCJldmVudFR5cGUiLCJmaWxlbmFtZSIsImVuZHNXaXRoIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0Iiwic3RhdFN5bmMiLCJjb2RlIiwidW5sb2FkQ29udGVudCIsImlzRmlsZSIsInN0YXRzIiwibXRpbWUiLCJnZXRUaW1lIiwibG9hZENvbnRlbnQiLCJyZWxvYWRDb250ZW50IiwiY2xvc2UiLCJleHRyYWN0TWV0YSIsImZpcnN0TGluZSIsInNwbGl0IiwiaGFzT2xkTWV0YSIsImluY2x1ZGVzIiwicGFyc2VPbGRNZXRhIiwiaGFzTmV3TWV0YSIsInBhcnNlTmV3TWV0YSIsIk1ldGFFcnJvciIsIm1ldGEiLCJtZXRhRGF0YSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwidGVzdEpTT04iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJibG9jayIsIm91dCIsImZpZWxkIiwiYWNjdW0iLCJsaW5lIiwibGVuZ3RoIiwiY2hhckF0IiwibCIsImluZGV4T2YiLCJzdWJzdHIiLCJyZXBsYWNlIiwidHJpbSIsInNlbGYiLCJwb3NzaWJsZVBhdGgiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJyZWFscGF0aFN5bmMiLCJSZWZsZWN0IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZWFkRmlsZVN5bmMiLCJzdHJpcEJPTSIsIl9jb21waWxlIiwic2hvdWxkVG9hc3QiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsImVycm9yIiwiQ29udGVudEVycm9yIiwibWVzc2FnZSIsInN0YWNrIiwiZmluZCIsImMiLCJUb2FzdHMiLCJzdWNjZXNzIiwidmVyc2lvbiIsImlkT3JGaWxlT3JDb250ZW50IiwiZGlzYWJsZUNvbnRlbnQiLCJjYWNoZSIsInNwbGljZSIsImRpZFVubG9hZCIsImlzTG9hZGVkIiwiaWRPckZpbGUiLCJpc0VuYWJsZWQiLCJlbmFibGVDb250ZW50IiwiaWRPckNvbnRlbnQiLCJwIiwidG9nZ2xlQ29udGVudCIsImxvYWROZXdDb250ZW50IiwiZmlsZXMiLCJyZWFkZGlyU3luYyIsInJlbW92ZWQiLCJmaWx0ZXIiLCJ0IiwibWFwIiwiYWRkZWQiLCJmIiwidXBkYXRlTGlzdCIsInJlc3VsdHMiLCJsb2FkQWxsQ29udGVudCIsImVycm9ycyIsImdldCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFD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S1csU0FBTDtBQUNBLFFBQUluQix3REFBUSxDQUFDc0gsR0FBVCxDQUFhLEtBQUtwSSxVQUFsQixFQUE4QixLQUFLQyxRQUFuQyxFQUE2QyxLQUFLQyxFQUFsRCxDQUFKLEVBQTJELEtBQUtlLFlBQUw7QUFDM0QsV0FBT2tILE1BQVA7QUFDSDs7QUFyTytCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvY29udGVudG1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vZW1pdHRlclwiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgQ29udGVudEVycm9yIGZyb20gXCIuLi9zdHJ1Y3RzL2NvbnRlbnRlcnJvclwiO1xyXG5pbXBvcnQgTWV0YUVycm9yIGZyb20gXCIuLi9zdHJ1Y3RzL21ldGFlcnJvclwiO1xyXG5pbXBvcnQge1RvYXN0c30gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpLk1vZHVsZTtcclxuTW9kdWxlLmdsb2JhbFBhdGhzLnB1c2gocGF0aC5yZXNvbHZlKHJlcXVpcmUoXCJlbGVjdHJvblwiKS5yZW1vdGUuYXBwLmdldEFwcFBhdGgoKSwgXCJub2RlX21vZHVsZXNcIikpO1xyXG5cclxuY29uc3Qgc3BsaXRSZWdleCA9IC9bXlxcU1xcclxcbl0qP1xcblteXFxTXFxyXFxuXSo/XFwqW15cXFNcXHJcXG5dPy87XHJcbmNvbnN0IGVzY2FwZWRBdFJlZ2V4ID0gL15cXFxcQC87XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZW50TWFuYWdlciB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IG1vZHVsZUV4dGVuc2lvbigpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgZXh0ZW5zaW9uKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBjb250ZW50Rm9sZGVyKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBwcmVmaXgoKSB7cmV0dXJuIFwiY29udGVudFwiO31cclxuICAgIGdldCBjb2xsZWN0aW9uKCkge3JldHVybiBcInNldHRpbmdzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImNvbnRlbnRcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiYXV0b1JlbG9hZFwiO31cclxuICAgIGVtaXQoZXZlbnQsIC4uLmFyZ3MpIHtyZXR1cm4gRXZlbnRzLmVtaXQoYCR7dGhpcy5wcmVmaXh9LSR7ZXZlbnR9YCwgLi4uYXJncyk7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMudGltZUNhY2hlID0ge307XHJcbiAgICAgICAgdGhpcy5jb250ZW50TGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7fTtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsUmVxdWlyZSA9IE1vZHVsZS5fZXh0ZW5zaW9uc1t0aGlzLm1vZHVsZUV4dGVuc2lvbl07XHJcbiAgICAgICAgTW9kdWxlLl9leHRlbnNpb25zW3RoaXMubW9kdWxlRXh0ZW5zaW9uXSA9IHRoaXMuZ2V0Q29udGVudFJlcXVpcmUoKTtcclxuICAgICAgICBTZXR0aW5ncy5vbih0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQsIChlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSB0aGlzLndhdGNoQ29udGVudCgpO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMudW53YXRjaENvbnRlbnQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBvdmVybG9hZCB0aGlzIGFuZCBtb2RpZnkgdGhlIGNvbnRlbnQgb2JqZWN0IGFzIG5lZWRlZCB0byBmdWxseSBsb2FkIGl0XHJcbiAgICBpbml0aWFsaXplQ29udGVudCgpIHtyZXR1cm47fVxyXG5cclxuICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJsb2FkIHRoaXMgYW5kIG1vZGlmeSB0aGUgY29udGVudCBhcyBuZWVkZWQgdG8gcmVxdWlyZSgpIHRoZSBmaWxlXHJcbiAgICBnZXRDb250ZW50TW9kaWZpY2F0aW9uKG1vZHVsZSwgY29udGVudCkge3JldHVybiBjb250ZW50O31cclxuXHJcbiAgICBzdGFydENvbnRlbnQoKSB7cmV0dXJuO31cclxuICAgIHN0b3BDb250ZW50KCkge3JldHVybjt9XHJcblxyXG4gICAgbG9hZFN0YXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHNhdmVkID0gRGF0YVN0b3JlLmdldERhdGEoYCR7dGhpcy5wcmVmaXh9c2ApO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHNhdmVkKTtcclxuICAgICAgICBpZiAoIXNhdmVkKSByZXR1cm47XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLCBzYXZlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZVN0YXRlKCkge1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXREYXRhKGAke3RoaXMucHJlZml4fXNgLCB0aGlzLnN0YXRlKTtcclxuICAgIH1cclxuXHJcbiAgICB3YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2F0Y2hlcikgcmV0dXJuIFV0aWxpdGllcy5lcnIodGhpcy5uYW1lLCBcIkFscmVhZHkgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyh0aGlzLm5hbWUsIFwiU3RhcnRpbmcgdG8gd2F0Y2ggY29udGVudC5cIik7XHJcbiAgICAgICAgdGhpcy53YXRjaGVyID0gZnMud2F0Y2godGhpcy5jb250ZW50Rm9sZGVyLCB7cGVyc2lzdGVudDogZmFsc2V9LCBhc3luYyAoZXZlbnRUeXBlLCBmaWxlbmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWV2ZW50VHlwZSB8fCAhZmlsZW5hbWUgfHwgIWZpbGVuYW1lLmVuZHNXaXRoKHRoaXMuZXh0ZW5zaW9uKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgNTApKTtcclxuICAgICAgICAgICAgdHJ5IHtmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpO31cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9PSBcIkVOT0VOVFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bmxvYWRDb250ZW50KGZpbGVuYW1lLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSkuaXNGaWxlKCkpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIXN0YXRzIHx8ICFzdGF0cy5tdGltZSB8fCAhc3RhdHMubXRpbWUuZ2V0VGltZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Yoc3RhdHMubXRpbWUuZ2V0VGltZSgpKSAhPT0gXCJudW1iZXJcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdID09IHN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWVDYWNoZVtmaWxlbmFtZV0gPSBzdGF0cy5tdGltZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gXCJyZW5hbWVcIikgdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gXCJjaGFuZ2VcIikgdGhpcy5yZWxvYWRDb250ZW50KGZpbGVuYW1lLCB0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1bndhdGNoQ29udGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMud2F0Y2hlcikgcmV0dXJuIFV0aWxpdGllcy5lcnIodGhpcy5uYW1lLCBcIldhcyBub3Qgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICAgICAgdGhpcy53YXRjaGVyLmNsb3NlKCk7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMud2F0Y2hlcjtcclxuICAgICAgICBVdGlsaXRpZXMubG9nKHRoaXMubmFtZSwgXCJObyBsb25nZXIgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgZXh0cmFjdE1ldGEoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0TGluZSA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIilbMF07XHJcbiAgICAgICAgY29uc3QgaGFzT2xkTWV0YSA9IGZpcnN0TGluZS5pbmNsdWRlcyhcIi8vTUVUQVwiKTtcclxuICAgICAgICBpZiAoaGFzT2xkTWV0YSkgcmV0dXJuIHRoaXMucGFyc2VPbGRNZXRhKGNvbnRlbnQpO1xyXG4gICAgICAgIGNvbnN0IGhhc05ld01ldGEgPSBmaXJzdExpbmUuaW5jbHVkZXMoXCIvKipcIik7XHJcbiAgICAgICAgaWYgKGhhc05ld01ldGEpIHJldHVybiB0aGlzLnBhcnNlTmV3TWV0YShjb250ZW50KTtcclxuICAgICAgICB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSB3YXMgbm90IGZvdW5kLlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU9sZE1ldGEoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IG1ldGEgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IG1ldGFEYXRhID0gbWV0YS5zdWJzdHJpbmcobWV0YS5sYXN0SW5kZXhPZihcIi8vTUVUQVwiKSArIDYsIG1ldGEubGFzdEluZGV4T2YoXCIqLy9cIikpO1xyXG4gICAgICAgIGlmICghVXRpbGl0aWVzLnRlc3RKU09OKG1ldGFEYXRhKSkgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgY291bGQgbm90IGJlIHBhcnNlZC5cIik7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobWV0YURhdGEpO1xyXG4gICAgICAgIGlmICghcGFyc2VkLm5hbWUpIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIG1pc3NpbmcgbmFtZSBkYXRhLlwiKTtcclxuICAgICAgICByZXR1cm4gcGFyc2VkO1xyXG4gICAgfVxyXG5cclxuICAgIHBhcnNlTmV3TWV0YShjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgYmxvY2sgPSBjb250ZW50LnNwbGl0KFwiLyoqXCIsIDIpWzFdLnNwbGl0KFwiKi9cIiwgMSlbMF07XHJcbiAgICAgICAgY29uc3Qgb3V0ID0ge307XHJcbiAgICAgICAgbGV0IGZpZWxkID0gXCJcIjtcclxuICAgICAgICBsZXQgYWNjdW0gPSBcIlwiO1xyXG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBibG9jay5zcGxpdChzcGxpdFJlZ2V4KSkge1xyXG4gICAgICAgICAgICBpZiAobGluZS5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT09IFwiQFwiICYmIGxpbmUuY2hhckF0KDEpICE9PSBcIiBcIikge1xyXG4gICAgICAgICAgICAgICAgb3V0W2ZpZWxkXSA9IGFjY3VtO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbCA9IGxpbmUuaW5kZXhPZihcIiBcIik7XHJcbiAgICAgICAgICAgICAgICBmaWVsZCA9IGxpbmUuc3Vic3RyKDEsIGwgLSAxKTtcclxuICAgICAgICAgICAgICAgIGFjY3VtID0gbGluZS5zdWJzdHIobCArIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYWNjdW0gKz0gXCIgXCIgKyBsaW5lLnJlcGxhY2UoXCJcXFxcblwiLCBcIlxcblwiKS5yZXBsYWNlKGVzY2FwZWRBdFJlZ2V4LCBcIkBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgb3V0W2ZpZWxkXSA9IGFjY3VtLnRyaW0oKTtcclxuICAgICAgICBkZWxldGUgb3V0W1wiXCJdO1xyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29udGVudFJlcXVpcmUoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgLy8gY29uc3QgYmFzZUZvbGRlciA9IHRoaXMuY29udGVudEZvbGRlcjtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSB0aGlzLm9yaWdpbmFsUmVxdWlyZTtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24obW9kdWxlLCBmaWxlbmFtZSkge1xyXG4gICAgICAgICAgICBjb25zdCBwb3NzaWJsZVBhdGggPSBwYXRoLnJlc29sdmUoc2VsZi5jb250ZW50Rm9sZGVyLCBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKSk7XHJcbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwb3NzaWJsZVBhdGgpIHx8IGZpbGVuYW1lICE9PSBmcy5yZWFscGF0aFN5bmMocG9zc2libGVQYXRoKSkgcmV0dXJuIFJlZmxlY3QuYXBwbHkob3JpZ2luYWxSZXF1aXJlLCB0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICBsZXQgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhmaWxlbmFtZSwgXCJ1dGY4XCIpO1xyXG4gICAgICAgICAgICBjb250ZW50ID0gVXRpbGl0aWVzLnN0cmlwQk9NKGNvbnRlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBtZXRhID0gc2VsZi5leHRyYWN0TWV0YShjb250ZW50KTtcclxuICAgICAgICAgICAgbWV0YS5pZCA9IG1ldGEubmFtZTtcclxuICAgICAgICAgICAgbWV0YS5maWxlbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICBjb250ZW50ID0gc2VsZi5nZXRDb250ZW50TW9kaWZpY2F0aW9uKG1vZHVsZSwgY29udGVudCwgbWV0YSk7XHJcbiAgICAgICAgICAgIG1vZHVsZS5fY29tcGlsZShjb250ZW50LCBmaWxlbmFtZSk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCB1c2UgdGhlIHJldHVybiAoaWYgbm90IENvbnRlbnRFcnJvcikgYW5kIHB1c2ggdG8gdGhpcy5jb250ZW50TGlzdFxyXG4gICAgbG9hZENvbnRlbnQoZmlsZW5hbWUsIHNob3VsZFRvYXN0ID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YoZmlsZW5hbWUpID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XHJcbiAgICAgICAgdHJ5IHtfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpO31cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtyZXR1cm4gbmV3IENvbnRlbnRFcnJvcihmaWxlbmFtZSwgZmlsZW5hbWUsIFwiQ291bGQgbm90IGJlIGNvbXBpbGVkLlwiLCB7bWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrfSk7fVxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGNvbnRlbnQpO1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGNvbnRlbnQuaWQpKSByZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGZpbGVuYW1lLCBgVGhlcmUgaXMgYWxyZWFkeSBhIHBsdWdpbiB3aXRoIG5hbWUgJHtjb250ZW50Lm5hbWV9YCk7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmluaXRpYWxpemVDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgICAgIGlmIChlcnJvcikgcmV0dXJuIGVycm9yO1xyXG4gICAgICAgIHRoaXMuY29udGVudExpc3QucHVzaChjb250ZW50KTtcclxuICAgICAgICBpZiAoc2hvdWxkVG9hc3QpIFRvYXN0cy5zdWNjZXNzKGAke2NvbnRlbnQubmFtZX0gdiR7Y29udGVudC52ZXJzaW9ufSB3YXMgbG9hZGVkLmApO1xyXG4gICAgICAgIHRoaXMuZW1pdChcImxvYWRlZFwiLCBjb250ZW50LmlkKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbnRlbnQuaWRdKSByZXR1cm4gdGhpcy5zdGF0ZVtjb250ZW50LmlkXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0Q29udGVudChjb250ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICB1bmxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50LCBzaG91bGRUb2FzdCA9IHRydWUpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JGaWxlT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZU9yQ29udGVudCB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlT3JDb250ZW50KSA6IGlkT3JGaWxlT3JDb250ZW50O1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlW2NvbnRlbnQuaWRdKSB0aGlzLmRpc2FibGVDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgICAgIGRlbGV0ZSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXy5jYWNoZVtfX25vbl93ZWJwYWNrX3JlcXVpcmVfXy5yZXNvbHZlKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGNvbnRlbnQuZmlsZW5hbWUpKV07XHJcbiAgICAgICAgdGhpcy5jb250ZW50TGlzdC5zcGxpY2UodGhpcy5jb250ZW50TGlzdC5pbmRleE9mKGNvbnRlbnQpLCAxKTtcclxuICAgICAgICB0aGlzLmVtaXQoXCJ1bmxvYWRlZFwiLCBjb250ZW50LmlkKTtcclxuICAgICAgICBpZiAoc2hvdWxkVG9hc3QpIFRvYXN0cy5zdWNjZXNzKGAke2NvbnRlbnQubmFtZX0gd2FzIHVubG9hZGVkLmApO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZENvbnRlbnQoZmlsZW5hbWUpIHtcclxuICAgICAgICBjb25zdCBkaWRVbmxvYWQgPSB0aGlzLnVubG9hZENvbnRlbnQoZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmICghZGlkVW5sb2FkKSByZXR1cm4gZGlkVW5sb2FkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDb250ZW50KGZpbGVuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0xvYWRlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRW5hYmxlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtjb250ZW50LmlkXSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybjtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdG9wQ29udGVudChjb250ZW50KTtcclxuICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUNvbnRlbnQoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtpZF0pIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWQpO1xyXG4gICAgICAgIGVsc2UgdGhpcy5lbmFibGVDb250ZW50KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV3Q29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHRoaXMuY29udGVudEZvbGRlcik7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29udGVudExpc3QuZmlsdGVyKHQgPT4gIWZpbGVzLmluY2x1ZGVzKHQuZmlsZW5hbWUpKS5tYXAoYyA9PiBjLmlkKTtcclxuICAgICAgICBjb25zdCBhZGRlZCA9IGZpbGVzLmZpbHRlcihmID0+ICF0aGlzLmNvbnRlbnRMaXN0LmZpbmQodCA9PiB0LmZpbGVuYW1lID09IGYpICYmIGYuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pICYmIGZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGYpKS5pc0ZpbGUoKSk7XHJcbiAgICAgICAgcmV0dXJuIHthZGRlZCwgcmVtb3ZlZH07XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGlzdCgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5sb2FkTmV3Q29udGVudCgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgcmVzdWx0cy5hZGRlZCkgdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHJlc3VsdHMucmVtb3ZlZCkgdGhpcy51bmxvYWRDb250ZW50KG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRBbGxDb250ZW50KCkge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW107XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmNvbnRlbnRGb2xkZXIpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICAgIGlmICghZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKS5pc0ZpbGUoKSB8fCAhZmlsZW5hbWUuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBDb250ZW50RXJyb3IpIGVycm9ycy5wdXNoKGNvbnRlbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcclxuICAgICAgICBpZiAoU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCkpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/contentmanager.js\n"); /***/ }), @@ -3200,127 +419,7 @@ class ContentManager { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bdv2 */ "./src/modules/bdv2.js"); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var _pluginmanager2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginmanager2 */ "./src/modules/pluginmanager2.js"); -/* harmony import */ var _thememanager2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thememanager2 */ "./src/modules/thememanager2.js"); -/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ "./src/modules/settingsmanager.js"); -/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! builtins */ "./src/builtins/builtins.js"); -/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui */ "./src/ui/ui.js"); - - - // import EmoteModule from "./emotes"; -// import QuickEmoteMenu from "../builtins/emotemenu"; - - - - - - - -function Core() {} - -Core.prototype.setConfig = function (config) { - Object.assign(data__WEBPACK_IMPORTED_MODULE_2__["Config"], config); -}; - -Core.prototype.init = async function () { - if (data__WEBPACK_IMPORTED_MODULE_2__["Config"].version < data__WEBPACK_IMPORTED_MODULE_2__["Config"].minSupportedVersion) { - ui__WEBPACK_IMPORTED_MODULE_7__["Modals"].alert("Not Supported", "BetterDiscord v" + data__WEBPACK_IMPORTED_MODULE_2__["Config"].version + " (your version)" + " is not supported by the latest js (" + data__WEBPACK_IMPORTED_MODULE_2__["Config"].bbdVersion + ").

Please download the latest version from GitHub"); - return; - } - - const latestLocalVersion = data__WEBPACK_IMPORTED_MODULE_2__["Config"].updater ? data__WEBPACK_IMPORTED_MODULE_2__["Config"].updater.LatestVersion : data__WEBPACK_IMPORTED_MODULE_2__["Config"].latestVersion; - - if (latestLocalVersion > data__WEBPACK_IMPORTED_MODULE_2__["Config"].version) { - ui__WEBPACK_IMPORTED_MODULE_7__["Modals"].alert("Update Available", ` - An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

- Download Installer - `); - } - - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Initializing Settings"); - _settingsmanager__WEBPACK_IMPORTED_MODULE_5__["default"].initialize(); - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Initializing EmoteModule"); // window.emotePromise = EmoteModule.init().then(() => { - // EmoteModule.initialized = true; - // Utilities.log("Startup", "Initializing QuickEmoteMenu"); - // Events.dispatch("emotes-loaded"); - // // QuickEmoteMenu.init(); - // }); - - this.injectExternals(); - await this.checkForGuilds(); - _bdv2__WEBPACK_IMPORTED_MODULE_0__["default"].initialize(); - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Updating Settings"); - - for (const module in builtins__WEBPACK_IMPORTED_MODULE_6__) builtins__WEBPACK_IMPORTED_MODULE_6__[module].initialize(); - - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Loading Plugins"); - const pluginErrors = _pluginmanager2__WEBPACK_IMPORTED_MODULE_3__["default"].loadAllContent(); - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Loading Themes"); - const themeErrors = _thememanager2__WEBPACK_IMPORTED_MODULE_4__["default"].loadAllContent(); - $("#customcss").detach().appendTo(document.head); // PublicServers.initialize(); - // EmoteModule.autoCapitalize(); - - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Removing Loading Icon"); - document.getElementsByClassName("bd-loaderv2")[0].remove(); - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Initializing Main Observer"); - this.initObserver(); // Show loading errors - - _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].log("Startup", "Collecting Startup Errors"); - ui__WEBPACK_IMPORTED_MODULE_7__["Modals"].showContentErrors({ - plugins: pluginErrors, - themes: themeErrors - }); -}; - -Core.prototype.checkForGuilds = function () { - return new Promise(resolve => { - const checkForGuilds = function () { - const wrapper = _bdv2__WEBPACK_IMPORTED_MODULE_0__["default"].guildClasses.wrapper.split(" ")[0]; - const guild = _bdv2__WEBPACK_IMPORTED_MODULE_0__["default"].guildClasses.listItem.split(" ")[0]; - const blob = _bdv2__WEBPACK_IMPORTED_MODULE_0__["default"].guildClasses.blobContainer.split(" ")[0]; - if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__["Config"].deferLoaded = true); - setTimeout(checkForGuilds, 100); - }; - - $(document).ready(function () { - setTimeout(checkForGuilds, 100); - }); - }); -}; - -Core.prototype.injectExternals = async function () { - await _utilities__WEBPACK_IMPORTED_MODULE_1__["default"].injectJs("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js"); - if (window.require.original) window.require = window.require.original; -}; - -Core.prototype.initObserver = function () { - const mainObserver = new MutationObserver(mutations => { - for (let i = 0, mlen = mutations.length; i < mlen; i++) { - const mutation = mutations[i]; // if there was nothing added, skip - - if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue; - const node = mutation.addedNodes[0]; - - if (node.classList.contains("layer-3QrUeG")) { - if (node.getElementsByClassName("guild-settings-base-section").length) node.setAttribute("layer-id", "server-settings"); // if (node.getElementsByClassName("socialLinks-3jqNFy").length) { - // node.setAttribute("layer-id", "user-settings"); - // node.setAttribute("id", "user-settings"); - // if (!document.getElementById("bd-settings-sidebar")) Settings.renderSidebar(); - // } - } - } - }); - mainObserver.observe(document, { - childList: true, - subtree: true - }); -}; - -/* harmony default export */ __webpack_exports__["default"] = (new Core()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").

Please download the latest version from GitHub\");\n return;\n }\n\n const latestLocalVersion = data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater ? data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater.LatestVersion : data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].latestVersion;\n\n if (latestLocalVersion > data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version) {\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].alert(\"Update Available\", `\n An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n Download Installer\n `);\n }\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\"); // window.emotePromise = EmoteModule.init().then(() => {\n // EmoteModule.initialized = true;\n // Utilities.log(\"Startup\", \"Initializing QuickEmoteMenu\");\n // Events.dispatch(\"emotes-loaded\");\n // // QuickEmoteMenu.init();\n // });\n\n this.injectExternals();\n await this.checkForGuilds();\n _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\");\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_6__) builtins__WEBPACK_IMPORTED_MODULE_6__[module].initialize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].loadAllPlugins();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].loadAllThemes();\n $(\"#customcss\").detach().appendTo(document.head); // PublicServers.initialize();\n // EmoteModule.autoCapitalize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n this.initObserver(); // Show loading errors\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n ui__WEBPACK_IMPORTED_MODULE_7__[\"Modals\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.checkForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n const wrapper = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n const guild = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.listItem.split(\" \")[0];\n const blob = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].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 _utilities__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.initObserver = function () {\n const mainObserver = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n const mutation = mutations[i]; // if there was nothing added, skip\n\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n\n if (node.classList.contains(\"layer-3QrUeG\")) {\n if (node.getElementsByClassName(\"guild-settings-base-section\").length) node.setAttribute(\"layer-id\", \"server-settings\"); // if (node.getElementsByClassName(\"socialLinks-3jqNFy\").length) {\n // node.setAttribute(\"layer-id\", \"user-settings\");\n // node.setAttribute(\"id\", \"user-settings\");\n // if (!document.getElementById(\"bd-settings-sidebar\")) Settings.renderSidebar();\n // }\n }\n }\n });\n mainObserver.observe(document, {\n childList: true,\n subtree: true\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkNvcmUiLCJwcm90b3R5cGUiLCJzZXRDb25maWciLCJjb25maWciLCJPYmplY3QiLCJhc3NpZ24iLCJDb25maWciLCJpbml0IiwidmVyc2lvbiIsIm1pblN1cHBvcnRlZFZlcnNpb24iLCJNb2RhbHMiLCJhbGVydCIsImJiZFZlcnNpb24iLCJsYXRlc3RMb2NhbFZlcnNpb24iLCJ1cGRhdGVyIiwiTGF0ZXN0VmVyc2lvbiIsImxhdGVzdFZlcnNpb24iLCJVdGlsaXRpZXMiLCJsb2ciLCJTZXR0aW5ncyIsImluaXRpYWxpemUiLCJpbmplY3RFeHRlcm5hbHMiLCJjaGVja0Zvckd1aWxkcyIsIkJEVjIiLCJtb2R1bGUiLCJCdWlsdGlucyIsInBsdWdpbkVycm9ycyIsIlBsdWdpbk1hbmFnZXIiLCJsb2FkQWxsUGx1Z2lucyIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwibG9hZEFsbFRoZW1lcyIsIiQiLCJkZXRhY2giLCJhcHBlbmRUbyIsImRvY3VtZW50IiwiaGVhZCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmUiLCJpbml0T2JzZXJ2ZXIiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIndyYXBwZXIiLCJndWlsZENsYXNzZXMiLCJzcGxpdCIsImd1aWxkIiwibGlzdEl0ZW0iLCJibG9iIiwiYmxvYkNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJkZWZlckxvYWRlZCIsInNldFRpbWVvdXQiLCJyZWFkeSIsImluamVjdEpzIiwid2luZG93IiwicmVxdWlyZSIsIm9yaWdpbmFsIiwibWFpbk9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm11dGF0aW9ucyIsImkiLCJtbGVuIiwibXV0YXRpb24iLCJhZGRlZE5vZGVzIiwiRWxlbWVudCIsIm5vZGUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInNldEF0dHJpYnV0ZSIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0NBRUE7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLElBQVQsR0FBZ0IsQ0FDZjs7QUFFREEsSUFBSSxDQUFDQyxTQUFMLENBQWVDLFNBQWYsR0FBMkIsVUFBU0MsTUFBVCxFQUFpQjtBQUN4Q0MsUUFBTSxDQUFDQyxNQUFQLENBQWNDLDJDQUFkLEVBQXNCSCxNQUF0QjtBQUNILENBRkQ7O0FBSUFILElBQUksQ0FBQ0MsU0FBTCxDQUFlTSxJQUFmLEdBQXNCLGtCQUFpQjtBQUNuQyxNQUFJRCwyQ0FBTSxDQUFDRSxPQUFQLEdBQWlCRiwyQ0FBTSxDQUFDRyxtQkFBNUIsRUFBaUQ7QUFDN0NDLDZDQUFNLENBQUNDLEtBQVAsQ0FBYSxlQUFiLEVBQThCLG9CQUFvQkwsMkNBQU0sQ0FBQ0UsT0FBM0IsR0FBcUMsaUJBQXJDLEdBQXlELHNDQUF6RCxHQUFrR0YsMkNBQU0sQ0FBQ00sVUFBekcsR0FBc0gscUpBQXBKO0FBQ0E7QUFDSDs7QUFFRCxRQUFNQyxrQkFBa0IsR0FBR1AsMkNBQU0sQ0FBQ1EsT0FBUCxHQUFpQlIsMkNBQU0sQ0FBQ1EsT0FBUCxDQUFlQyxhQUFoQyxHQUFnRFQsMkNBQU0sQ0FBQ1UsYUFBbEY7O0FBQ0EsTUFBSUgsa0JBQWtCLEdBQUdQLDJDQUFNLENBQUNFLE9BQWhDLEVBQXlDO0FBQ3JDRSw2Q0FBTSxDQUFDQyxLQUFQLENBQWEsa0JBQWIsRUFBa0M7cURBQ1dFLGtCQUFtQjs7U0FEaEU7QUFJSDs7QUFFREksb0RBQVMsQ0FBQ0MsR0FBVixDQUFjLFNBQWQsRUFBeUIsdUJBQXpCO0FBQ0FDLDBEQUFRLENBQUNDLFVBQVQ7QUFDQUgsb0RBQVMsQ0FBQ0MsR0FBVixDQUFjLFNBQWQsRUFBeUIsMEJBQXpC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LENBQUNDLFNBQUwsQ0FBZXNDLFlBQWYsR0FBOEIsWUFBWTtBQUN0QyxRQUFNc0IsWUFBWSxHQUFHLElBQUlDLGdCQUFKLENBQXNCQyxTQUFELElBQWU7QUFFckQsU0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBUixFQUFXQyxJQUFJLEdBQUdGLFNBQVMsQ0FBQ1YsTUFBakMsRUFBeUNXLENBQUMsR0FBR0MsSUFBN0MsRUFBbURELENBQUMsRUFBcEQsRUFBd0Q7QUFDcEQsWUFBTUUsUUFBUSxHQUFHSCxTQUFTLENBQUNDLENBQUQsQ0FBMUIsQ0FEb0QsQ0FHcEQ7O0FBQ0EsVUFBSSxDQUFDRSxRQUFRLENBQUNDLFVBQVQsQ0FBb0JkLE1BQXJCLElBQStCLEVBQUVhLFFBQVEsQ0FBQ0MsVUFBVCxDQUFvQixDQUFwQixhQUFrQ0MsT0FBcEMsQ0FBbkMsRUFBaUY7QUFFakYsWUFBTUMsSUFBSSxHQUFHSCxRQUFRLENBQUNDLFVBQVQsQ0FBb0IsQ0FBcEIsQ0FBYjs7QUFFQSxVQUFJRSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsUUFBZixDQUF3QixjQUF4QixDQUFKLEVBQTZDO0FBQ3pDLFlBQUlGLElBQUksQ0FBQ2hDLHNCQUFMLENBQTRCLDZCQUE1QixFQUEyRGdCLE1BQS9ELEVBQXVFZ0IsSUFBSSxDQUFDRyxZQUFMLENBQWtCLFVBQWxCLEVBQThCLGlCQUE5QixFQUQ5QixDQUd6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUFDSjtBQUNKLEdBcEJvQixDQUFyQjtBQXNCQVgsY0FBWSxDQUFDWSxPQUFiLENBQXFCdEMsUUFBckIsRUFBK0I7QUFDM0J1QyxhQUFTLEVBQUUsSUFEZ0I7QUFFM0JDLFdBQU8sRUFBRTtBQUZrQixHQUEvQjtBQUlILENBM0JEOztBQThCZSxtRUFBSTNFLElBQUosRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2NvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi9iZHYyXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG4vLyBpbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVzXCI7XHJcbi8vIGltcG9ydCBRdWlja0Vtb3RlTWVudSBmcm9tIFwiLi4vYnVpbHRpbnMvZW1vdGVtZW51XCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQgKiBhcyBCdWlsdGlucyBmcm9tIFwiYnVpbHRpbnNcIjtcclxuaW1wb3J0IHtNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZnVuY3Rpb24gQ29yZSgpIHtcclxufVxyXG5cclxuQ29yZS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24oY29uZmlnKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKENvbmZpZywgY29uZmlnKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChDb25maWcudmVyc2lvbiA8IENvbmZpZy5taW5TdXBwb3J0ZWRWZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgQ29uZmlnLnZlcnNpb24gKyBcIiAoeW91ciB2ZXJzaW9uKVwiICsgXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGF0ZXN0IGpzIChcIiArIENvbmZpZy5iYmRWZXJzaW9uICsgXCIpLjxicj48YnI+IFBsZWFzZSBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkdpdEh1YjwvYT5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgICAgIGApO1xyXG4gICAgfVxyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgRW1vdGVNb2R1bGVcIik7XHJcbiAgICAvLyB3aW5kb3cuZW1vdGVQcm9taXNlID0gRW1vdGVNb2R1bGUuaW5pdCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICAgIEVtb3RlTW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIC8vICAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBRdWlja0Vtb3RlTWVudVwiKTtcclxuICAgIC8vICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgLy8gICAgIC8vIFF1aWNrRW1vdGVNZW51LmluaXQoKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIHRoaXMuaW5qZWN0RXh0ZXJuYWxzKCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5jaGVja0Zvckd1aWxkcygpO1xyXG4gICAgQkRWMi5pbml0aWFsaXplKCk7XHJcbiAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIlVwZGF0aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgZm9yIChjb25zdCBtb2R1bGUgaW4gQnVpbHRpbnMpIEJ1aWx0aW5zW21vZHVsZV0uaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBQbHVnaW5zXCIpO1xyXG4gICAgY29uc3QgcGx1Z2luRXJyb3JzID0gUGx1Z2luTWFuYWdlci5sb2FkQWxsUGx1Z2lucygpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBUaGVtZXNcIik7XHJcbiAgICBjb25zdCB0aGVtZUVycm9ycyA9IFRoZW1lTWFuYWdlci5sb2FkQWxsVGhlbWVzKCk7XHJcblxyXG4gICAgJChcIiNjdXN0b21jc3NcIikuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcblxyXG4gICAgLy8gUHVibGljU2VydmVycy5pbml0aWFsaXplKCk7XHJcbiAgICAvLyBFbW90ZU1vZHVsZS5hdXRvQ2FwaXRhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiUmVtb3ZpbmcgTG9hZGluZyBJY29uXCIpO1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpWzBdLnJlbW92ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgTWFpbiBPYnNlcnZlclwiKTtcclxuICAgIHRoaXMuaW5pdE9ic2VydmVyKCk7XHJcblxyXG4gICAgLy8gU2hvdyBsb2FkaW5nIGVycm9yc1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJDb2xsZWN0aW5nIFN0YXJ0dXAgRXJyb3JzXCIpO1xyXG4gICAgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMsIHRoZW1lczogdGhlbWVFcnJvcnN9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmNoZWNrRm9yR3VpbGRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBndWlsZCA9IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IEJEVjIuZ3VpbGRDbGFzc2VzLmJsb2JDb250YWluZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7d3JhcHBlcn0gLiR7Z3VpbGR9IC4ke2Jsb2J9YCkubGVuZ3RoID4gMCkgcmV0dXJuIHJlc29sdmUoQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluamVjdEV4dGVybmFscyA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgYXdhaXQgVXRpbGl0aWVzLmluamVjdEpzKFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qc1wiKTtcclxuICAgIGlmICh3aW5kb3cucmVxdWlyZS5vcmlnaW5hbCkgd2luZG93LnJlcXVpcmUgPSB3aW5kb3cucmVxdWlyZS5vcmlnaW5hbDtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXRPYnNlcnZlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IG1haW5PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG1sZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBpIDwgbWxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uID0gbXV0YXRpb25zW2ldO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIG5vdGhpbmcgYWRkZWQsIHNraXBcclxuICAgICAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhcImxheWVyLTNRclVlR1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImd1aWxkLXNldHRpbmdzLWJhc2Utc2VjdGlvblwiKS5sZW5ndGgpIG5vZGUuc2V0QXR0cmlidXRlKFwibGF5ZXItaWRcIiwgXCJzZXJ2ZXItc2V0dGluZ3NcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInNvY2lhbExpbmtzLTNqcU5GeVwiKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxheWVyLWlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBub2RlLnNldEF0dHJpYnV0ZShcImlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgIC8vICAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYmQtc2V0dGluZ3Mtc2lkZWJhclwiKSkgU2V0dGluZ3MucmVuZGVyU2lkZWJhcigpO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbWFpbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHtcclxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgc3VidHJlZTogdHJ1ZVxyXG4gICAgfSk7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IENvcmUoKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/core.js\n"); /***/ }), @@ -3332,124 +431,7 @@ Core.prototype.initObserver = function () { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ "./src/data/data.js"); - - -const fs = __webpack_require__(/*! fs */ "fs"); - -const path = __webpack_require__(/*! path */ "path"); - -const releaseChannel = DiscordNative.globals.releaseChannel; // Schema 1 -// ======================= -// %appdata%\BetterDiscord -// -> data\ -// -> [releaseChannel].json (stable/canary/ptb) -// Schema 2 -// ======================= -// %appdata%\BetterDiscord -// -> data -// -> [releaseChannel]\ (stable/canary/ptb) -// -> settings.json -// -> plugins.json -// -> themes.json - -/* harmony default export */ __webpack_exports__["default"] = (new class DataStore { - constructor() { - this.data = { - misc: {} - }; - this.pluginData = {}; - } - - initialize() { - if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder); - if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder); - if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4)); - const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(".json")); - - for (const file of dataFiles) { - this.data[file.split(".")[0]] = require(path.resolve(this.dataFolder, file)); - } // this.data = __non_webpack_require__(this.BDFile); - // if (data.hasOwnProperty("settings")) this.data = data; - // if (!fs.existsSync(this.settingsFile)) return; - // let settings = __non_webpack_require__(this.settingsFile); - // fs.unlinkSync(this.settingsFile); - // if (settings.hasOwnProperty("settings")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings}); - // else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings); - // this.setBDData("settings", settings); - - } - - get baseFolder() { - return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__["Config"].dataPath, "data")); - } - - get dataFolder() { - return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`)); - } - - get BDFile() { - return this._BDFile || (this._BDFile = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__["Config"].dataPath, "data", `${releaseChannel}.json`)); - } // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, "bdsettings.json"));} - - - getPluginFile(pluginName) { - return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__["Config"].dataPath, "plugins", pluginName + ".config.json"); - } // getSettingGroup(key) { - // return this.data.settings[key] || null; - // } - // setSettingGroup(key, data) { - // this.data.settings[key] = data; - // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); - // } - - - _getFile(key) { - if (key == "settings" || key == "plugins" || key == "themes") return path.resolve(this.dataFolder, `${key}.json`); - return path.resolve(this.dataFolder, `misc.json`); - } - - getBDData(key) { - return this.data.misc[key] || ""; - } - - setBDData(key, value) { - this.data.misc[key] = value; - fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4)); - } - - getData(key) { - return this.data[key] || ""; // return JSON.parse(fs.readFileSync(path.resolve(this.dataFolder, `${file}.json`))); - } - - setData(key, value) { - this.data[key] = value; // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); - - fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4)); - } - - getPluginData(pluginName, key) { - if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined; - if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined; - this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName))); - return this.pluginData[pluginName][key] || undefined; - } - - setPluginData(pluginName, key, value) { - if (value === undefined) return; - if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {}; - this.pluginData[pluginName][key] = value; - fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4)); - } - - deletePluginData(pluginName, key) { - if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {}; - delete this.pluginData[pluginName][key]; - fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4)); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel; // Schema 1\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\\\n// -> [releaseChannel].json (stable/canary/ptb)\n// Schema 2\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\n// -> [releaseChannel]\\ (stable/canary/ptb)\n// -> settings.json\n// -> plugins.json\n// -> themes.json\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n constructor() {\n this.data = {\n misc: {}\n };\n this.pluginData = {};\n }\n\n initialize() {\n if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder);\n if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder);\n if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4));\n const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(\".json\"));\n\n for (const file of dataFiles) {\n this.data[file.split(\".\")[0]] = require(path.resolve(this.dataFolder, file));\n } // this.data = __non_webpack_require__(this.BDFile);\n // if (data.hasOwnProperty(\"settings\")) this.data = data;\n // if (!fs.existsSync(this.settingsFile)) return;\n // let settings = __non_webpack_require__(this.settingsFile);\n // fs.unlinkSync(this.settingsFile);\n // if (settings.hasOwnProperty(\"settings\")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings});\n // else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings);\n // this.setBDData(\"settings\", settings);\n\n }\n\n get baseFolder() {\n return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\"));\n }\n\n get dataFolder() {\n return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));\n }\n\n get BDFile() {\n return this._BDFile || (this._BDFile = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\", `${releaseChannel}.json`));\n } // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, \"bdsettings.json\"));}\n\n\n getPluginFile(pluginName) {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\", pluginName + \".config.json\");\n } // getSettingGroup(key) {\n // return this.data.settings[key] || null;\n // }\n // setSettingGroup(key, data) {\n // this.data.settings[key] = data;\n // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n // }\n\n\n _getFile(key) {\n if (key == \"settings\" || key == \"plugins\" || key == \"themes\") return path.resolve(this.dataFolder, `${key}.json`);\n return path.resolve(this.dataFolder, `misc.json`);\n }\n\n getBDData(key) {\n return this.data.misc[key] || \"\";\n }\n\n setBDData(key, value) {\n this.data.misc[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4));\n }\n\n getData(key) {\n return this.data[key] || \"\"; // return JSON.parse(fs.readFileSync(path.resolve(this.dataFolder, `${file}.json`)));\n }\n\n setData(key, value) {\n this.data[key] = value; // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n\n fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4));\n }\n\n getPluginData(pluginName, key) {\n if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n return this.pluginData[pluginName][key] || undefined;\n }\n\n setPluginData(pluginName, key, value) {\n if (value === undefined) return;\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n this.pluginData[pluginName][key] = value;\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n deletePluginData(pluginName, key) {\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n delete this.pluginData[pluginName][key];\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzPzEwNTIiXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsInJlbGVhc2VDaGFubmVsIiwiRGlzY29yZE5hdGl2ZSIsImdsb2JhbHMiLCJEYXRhU3RvcmUiLCJjb25zdHJ1Y3RvciIsImRhdGEiLCJtaXNjIiwicGx1Z2luRGF0YSIsImluaXRpYWxpemUiLCJleGlzdHNTeW5jIiwiYmFzZUZvbGRlciIsIm1rZGlyU3luYyIsImRhdGFGb2xkZXIiLCJCREZpbGUiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGFGaWxlcyIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZiIsInN0YXRTeW5jIiwicmVzb2x2ZSIsImlzRGlyZWN0b3J5IiwiZW5kc1dpdGgiLCJmaWxlIiwic3BsaXQiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsIl9iYXNlRm9sZGVyIiwiQ29uZmlnIiwiZGF0YVBhdGgiLCJfZGF0YUZvbGRlciIsIl9CREZpbGUiLCJnZXRQbHVnaW5GaWxlIiwicGx1Z2luTmFtZSIsIl9nZXRGaWxlIiwia2V5IiwiZ2V0QkREYXRhIiwic2V0QkREYXRhIiwidmFsdWUiLCJnZXREYXRhIiwic2V0RGF0YSIsImdldFBsdWdpbkRhdGEiLCJ1bmRlZmluZWQiLCJwYXJzZSIsInJlYWRGaWxlU3luYyIsInNldFBsdWdpbkRhdGEiLCJkZWxldGVQbHVnaW5EYXRhIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7O0FBQ0EsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUNBLE1BQU1FLGNBQWMsR0FBR0MsYUFBYSxDQUFDQyxPQUFkLENBQXNCRixjQUE3QyxDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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LEdBQTVCLENBQVA7QUFDQXZDLE1BQUUsQ0FBQ2lCLGFBQUgsQ0FBaUIsS0FBS21CLGFBQUwsQ0FBbUJDLFVBQW5CLENBQWpCLEVBQWlEbkIsSUFBSSxDQUFDQyxTQUFMLENBQWUsS0FBS1QsVUFBTCxDQUFnQjJCLFVBQWhCLENBQWYsRUFBNEMsSUFBNUMsRUFBa0QsQ0FBbEQsQ0FBakQ7QUFDSDs7QUFsRjhCLENBQXBCLEVBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9kYXRhc3RvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuY29uc3QgcmVsZWFzZUNoYW5uZWwgPSBEaXNjb3JkTmF0aXZlLmdsb2JhbHMucmVsZWFzZUNoYW5uZWw7XHJcblxyXG4vLyBTY2hlbWEgMVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAlYXBwZGF0YSVcXEJldHRlckRpc2NvcmRcclxuLy8gICAgIC0+IGRhdGFcXFxyXG4vLyAgICAgICAgIC0+IFtyZWxlYXNlQ2hhbm5lbF0uanNvbiAoc3RhYmxlL2NhbmFyeS9wdGIpXHJcblxyXG4vLyBTY2hlbWEgMlxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAlYXBwZGF0YSVcXEJldHRlckRpc2NvcmRcclxuLy8gICAgIC0+IGRhdGFcclxuLy8gICAgICAgICAtPiBbcmVsZWFzZUNoYW5uZWxdXFwgKHN0YWJsZS9jYW5hcnkvcHRiKVxyXG4vLyAgICAgICAgICAgICAtPiBzZXR0aW5ncy5qc29uXHJcbi8vICAgICAgICAgICAgIC0+IHBsdWdpbnMuanNvblxyXG4vLyAgICAgICAgICAgICAtPiB0aGVtZXMuanNvblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIERhdGFTdG9yZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB7bWlzYzoge319O1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuYmFzZUZvbGRlcikpIGZzLm1rZGlyU3luYyh0aGlzLmJhc2VGb2xkZXIpO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmRhdGFGb2xkZXIpKSBmcy5ta2RpclN5bmModGhpcy5kYXRhRm9sZGVyKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5CREZpbGUpKSBmcy53cml0ZUZpbGVTeW5jKHRoaXMuQkRGaWxlLCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEubWlzYywgbnVsbCwgNCkpO1xyXG4gICAgICAgIGNvbnN0IGRhdGFGaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHRoaXMuZGF0YUZvbGRlcikuZmlsdGVyKGYgPT4gIWZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGYpKS5pc0RpcmVjdG9yeSgpICYmIGYuZW5kc1dpdGgoXCIuanNvblwiKSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGRhdGFGaWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFbZmlsZS5zcGxpdChcIi5cIilbMF1dID0gX19ub25fd2VicGFja19yZXF1aXJlX18ocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgZmlsZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLmRhdGEgPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyh0aGlzLkJERmlsZSk7XHJcbiAgICAgICAgLy8gaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoXCJzZXR0aW5nc1wiKSkgdGhpcy5kYXRhID0gZGF0YTtcclxuICAgICAgICAvLyBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5zZXR0aW5nc0ZpbGUpKSByZXR1cm47XHJcbiAgICAgICAgLy8gbGV0IHNldHRpbmdzID0gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5zZXR0aW5nc0ZpbGUpO1xyXG4gICAgICAgIC8vIGZzLnVubGlua1N5bmModGhpcy5zZXR0aW5nc0ZpbGUpO1xyXG4gICAgICAgIC8vIGlmIChzZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShcInNldHRpbmdzXCIpKSBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe3N0YWJsZToge30sIGNhbmFyeToge30sIHB0Yjoge319LCB7W3JlbGVhc2VDaGFubmVsXTogc2V0dGluZ3N9KTtcclxuICAgICAgICAvLyBlbHNlIHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7c3RhYmxlOiB7fSwgY2FuYXJ5OiB7fSwgcHRiOiB7fX0sIHNldHRpbmdzKTtcclxuICAgICAgICAvLyB0aGlzLnNldEJERGF0YShcInNldHRpbmdzXCIsIHNldHRpbmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmFzZUZvbGRlcigpIHtyZXR1cm4gdGhpcy5fYmFzZUZvbGRlciB8fCAodGhpcy5fYmFzZUZvbGRlciA9IHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwiZGF0YVwiKSk7fVxyXG4gICAgZ2V0IGRhdGFGb2xkZXIoKSB7cmV0dXJuIHRoaXMuX2RhdGFGb2xkZXIgfHwgKHRoaXMuX2RhdGFGb2xkZXIgPSBwYXRoLnJlc29sdmUodGhpcy5iYXNlRm9sZGVyLCBgJHtyZWxlYXNlQ2hhbm5lbH1gKSk7fVxyXG4gICAgZ2V0IEJERmlsZSgpIHtyZXR1cm4gdGhpcy5fQkRGaWxlIHx8ICh0aGlzLl9CREZpbGUgPSBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcImRhdGFcIiwgYCR7cmVsZWFzZUNoYW5uZWx9Lmpzb25gKSk7fVxyXG4gICAgLy8gZ2V0IHNldHRpbmdzRmlsZSgpIHtyZXR1cm4gdGhpcy5fc2V0dGluZ3NGaWxlIHx8ICh0aGlzLl9zZXR0aW5nc0ZpbGUgPSBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcImJkc2V0dGluZ3MuanNvblwiKSk7fVxyXG4gICAgZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSB7cmV0dXJuIHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwicGx1Z2luc1wiLCBwbHVnaW5OYW1lICsgXCIuY29uZmlnLmpzb25cIik7fVxyXG5cclxuICAgIC8vIGdldFNldHRpbmdHcm91cChrZXkpIHtcclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5kYXRhLnNldHRpbmdzW2tleV0gfHwgbnVsbDtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBzZXRTZXR0aW5nR3JvdXAoa2V5LCBkYXRhKSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhLnNldHRpbmdzW2tleV0gPSBkYXRhO1xyXG4gICAgLy8gICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5CREZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSwgbnVsbCwgNCkpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIF9nZXRGaWxlKGtleSkge1xyXG4gICAgICAgIGlmIChrZXkgPT0gXCJzZXR0aW5nc1wiIHx8IGtleSA9PSBcInBsdWdpbnNcIiB8fCBrZXkgPT0gXCJ0aGVtZXNcIikgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGAke2tleX0uanNvbmApO1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgbWlzYy5qc29uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QkREYXRhKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEubWlzY1trZXldIHx8IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QkREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGEubWlzY1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgbWlzYy5qc29uYCksIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YS5taXNjLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YShrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tleV0gfHwgXCJcIjtcclxuICAgICAgICAvLyByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7ZmlsZX0uanNvbmApKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGF0YShrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICAvLyBmcy53cml0ZUZpbGVTeW5jKHRoaXMuQkRGaWxlLCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEsIG51bGwsIDQpKTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGAke2tleX0uanNvbmApLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gfHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSkpKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSksIEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9PT0gdW5kZWZpbmVkKSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPSB7fTtcclxuICAgICAgICBkZWxldGUgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV07XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSksIEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/datastore.js\n"); /***/ }), @@ -3461,20 +443,7 @@ const releaseChannel = DiscordNative.globals.releaseChannel; // Schema 1 /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -const EventEmitter = __webpack_require__(/*! events */ "events"); - -/* harmony default export */ __webpack_exports__["default"] = (new class BDEvents extends EventEmitter { - constructor() { - super(); - this.setMaxListeners(20); - } - - dispatch(eventName, ...args) { - this.emit(eventName, ...args); - } - -}()); +eval("__webpack_require__.r(__webpack_exports__);\nconst EventEmitter = __webpack_require__(/*! events */ \"events\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class BDEvents extends EventEmitter {\n constructor() {\n super();\n this.setMaxListeners(20);\n }\n\n dispatch(eventName, ...args) {\n this.emit(eventName, ...args);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZW1pdHRlci5qcz9lOTNhIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsInJlcXVpcmUiLCJCREV2ZW50cyIsImNvbnN0cnVjdG9yIiwic2V0TWF4TGlzdGVuZXJzIiwiZGlzcGF0Y2giLCJldmVudE5hbWUiLCJhcmdzIiwiZW1pdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQSxNQUFNQSxZQUFZLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBNUI7O0FBQ2UsbUVBQUksTUFBTUMsUUFBTixTQUF1QkYsWUFBdkIsQ0FBb0M7QUFDbkRHLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsZUFBTCxDQUFxQixFQUFyQjtBQUNIOztBQUNEQyxVQUFRLENBQUNDLFNBQUQsRUFBWSxHQUFHQyxJQUFmLEVBQXFCO0FBQ3pCLFNBQUtDLElBQUwsQ0FBVUYsU0FBVixFQUFxQixHQUFHQyxJQUF4QjtBQUNIOztBQVBrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZW1pdHRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBCREV2ZW50cyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuc2V0TWF4TGlzdGVuZXJzKDIwKTtcclxuICAgIH1cclxuICAgIGRpc3BhdGNoKGV2ZW50TmFtZSwgLi4uYXJncykge1xyXG4gICAgICAgIHRoaXMuZW1pdChldmVudE5hbWUsIC4uLmFyZ3MpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/emitter.js\n"); /***/ }), @@ -3482,63 +451,11 @@ const EventEmitter = __webpack_require__(/*! events */ "events"); /*!********************************!*\ !*** ./src/modules/modules.js ***! \********************************/ -/*! exports provided: React, ReactDOM, BDV2, BdApi, Core, ContentManager, DataStore, Events, PluginManager, ThemeManager, Utilities, WebpackModules, DiscordModules */ +/*! exports provided: React, ReactDOM, BDV2, BdApi, Core, ContentManager, DataStore, Events, PluginManager, ThemeManager, Utilities, WebpackModules, DiscordModules, Settings */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "React", function() { return React; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReactDOM", function() { return ReactDOM; }); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Utilities", function() { return _utilities__WEBPACK_IMPORTED_MODULE_0__["default"]; }); - -/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ "./src/modules/webpackmodules.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebpackModules", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__["default"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiscordModules", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"]; }); - -/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bdv2 */ "./src/modules/bdv2.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BDV2", function() { return _bdv2__WEBPACK_IMPORTED_MODULE_2__["default"]; }); - -/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginapi */ "./src/modules/pluginapi.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BdApi", function() { return _pluginapi__WEBPACK_IMPORTED_MODULE_3__["default"]; }); - -/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./core */ "./src/modules/core.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Core", function() { return _core__WEBPACK_IMPORTED_MODULE_4__["default"]; }); - -/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentmanager */ "./src/modules/contentmanager.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContentManager", function() { return _contentmanager__WEBPACK_IMPORTED_MODULE_5__["default"]; }); - -/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./datastore */ "./src/modules/datastore.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataStore", function() { return _datastore__WEBPACK_IMPORTED_MODULE_6__["default"]; }); - -/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./emitter */ "./src/modules/emitter.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _emitter__WEBPACK_IMPORTED_MODULE_7__["default"]; }); - -/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pluginmanager */ "./src/modules/pluginmanager.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PluginManager", function() { return _pluginmanager__WEBPACK_IMPORTED_MODULE_8__["default"]; }); - -/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./thememanager */ "./src/modules/thememanager.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThemeManager", function() { return _thememanager__WEBPACK_IMPORTED_MODULE_9__["default"]; }); - - - - - - - - // import DevMode from "./devmode"; - - // import EmoteModule from "./emotes"; - - // import PublicServers from "./publicservers"; - - -const React = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].React; -const ReactDOM = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"].ReactDOM; - // export {{ -// get React() {return DiscordModules.React;} -// }} +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"React\", function() { return React; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactDOM\", function() { return ReactDOM; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Utilities\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WebpackModules\", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DiscordModules\", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"]; });\n\n/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BDV2\", function() { return _bdv2__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BdApi\", function() { return _pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./core */ \"./src/modules/core.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Core\", function() { return _core__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ContentManager\", function() { return _contentmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataStore\", function() { return _datastore__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Events\", function() { return _emitter__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PluginManager\", function() { return _pluginmanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThemeManager\", function() { return _thememanager__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Settings\", function() { return _settingsmanager__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n\n\n\n\n\n\n // import DevMode from \"./devmode\";\n\n // import EmoteModule from \"./emotes\";\n\n // import PublicServers from \"./publicservers\";\n\n\n\nconst React = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React;\nconst ReactDOM = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ReactDOM;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvbW9kdWxlcy5qcz8xNGRiIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGlzY29yZE1vZHVsZXMiLCJSZWFjdERPTSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFJQTtDQUVBOztDQUVBOztDQUVBOztBQUNBO0FBQ0E7QUFFTyxNQUFNQSxLQUFLLEdBQUdDLDhEQUFjLENBQUNELEtBQTdCO0FBQ0EsTUFBTUUsUUFBUSxHQUFHRCw4REFBYyxDQUFDQyxRQUFoQyIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL21vZHVsZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgV2VicGFja01vZHVsZXMsIHtEaXNjb3JkTW9kdWxlc30gZnJvbSBcIi4vd2VicGFja21vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBCRFYyIGZyb20gXCIuL2JkdjJcIjtcclxuaW1wb3J0IEJkQXBpIGZyb20gXCIuL3BsdWdpbmFwaVwiO1xyXG5pbXBvcnQgQ29yZSBmcm9tIFwiLi9jb3JlXCI7XHJcblxyXG5cclxuXHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50bWFuYWdlclwiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFzdG9yZVwiO1xyXG4vLyBpbXBvcnQgRGV2TW9kZSBmcm9tIFwiLi9kZXZtb2RlXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vZW1pdHRlclwiO1xyXG4vLyBpbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVzXCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuLy8gaW1wb3J0IFB1YmxpY1NlcnZlcnMgZnJvbSBcIi4vcHVibGljc2VydmVyc1wiO1xyXG5pbXBvcnQgVGhlbWVNYW5hZ2VyIGZyb20gXCIuL3RoZW1lbWFuYWdlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3NtYW5hZ2VyXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUmVhY3QgPSBEaXNjb3JkTW9kdWxlcy5SZWFjdDtcclxuZXhwb3J0IGNvbnN0IFJlYWN0RE9NID0gRGlzY29yZE1vZHVsZXMuUmVhY3RET007XHJcblxyXG5leHBvcnQge0JEVjIsIEJkQXBpLCBDb3JlLCBDb250ZW50TWFuYWdlciwgRGF0YVN0b3JlLFxyXG4gICAgICAgIEV2ZW50cywgUGx1Z2luTWFuYWdlciwgLypQdWJsaWNTZXJ2ZXJzLCovIFRoZW1lTWFuYWdlcixcclxuICAgICAgICBVdGlsaXRpZXMsIFdlYnBhY2tNb2R1bGVzLCBEaXNjb3JkTW9kdWxlcywgU2V0dGluZ3N9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/modules.js\n"); /***/ }), @@ -3550,43 +467,7 @@ const ReactDOM = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__["DiscordModules"]. /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bdStorage", function() { return bdStorage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bdPluginStorage", function() { return bdPluginStorage; }); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ "./src/modules/datastore.js"); - - -class bdStorage { - static get(key) { - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", "Please use BdApi.getBDData(). bdStorage may be removed in future versions."); - return _datastore__WEBPACK_IMPORTED_MODULE_1__["default"].getBDData(key); - } - - static set(key, data) { - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", "Please use BdApi.setBDData(). bdStorage may be removed in future versions."); - _datastore__WEBPACK_IMPORTED_MODULE_1__["default"].setBDData(key, data); - } - -} -class bdPluginStorage { - static get(pluginName, key) { - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", `${pluginName}, please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`); - return _datastore__WEBPACK_IMPORTED_MODULE_1__["default"].getPluginData(pluginName, key) || null; - } - - static set(pluginName, key, data) { - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", `${pluginName}, please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions.`); - if (typeof data === "undefined") return _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", "Trying to set undefined value in plugin " + pluginName); - _datastore__WEBPACK_IMPORTED_MODULE_1__["default"].setPluginData(pluginName, key, data); - } - - static delete(pluginName, key) { - _utilities__WEBPACK_IMPORTED_MODULE_0__["default"].warn("Deprecation Notice", `${pluginName}, please use BdApi.deleteData(). bdPluginStorage may be removed in future versions.`); - _datastore__WEBPACK_IMPORTED_MODULE_1__["default"].deletePluginData(pluginName, key); - } - -} +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdStorage\", function() { return bdStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdPluginStorage\", function() { return bdPluginStorage; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n\n\nclass bdStorage {\n static get(key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Please use BdApi.getBDData(). bdStorage may be removed in future versions.\");\n return _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getBDData(key);\n }\n\n static set(key, data) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Please use BdApi.setBDData(). bdStorage may be removed in future versions.\");\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(key, data);\n }\n\n}\nclass bdPluginStorage {\n static get(pluginName, key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`);\n return _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPluginData(pluginName, key) || null;\n }\n\n static set(pluginName, key, data) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions.`);\n if (typeof data === \"undefined\") return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Trying to set undefined value in plugin \" + pluginName);\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setPluginData(pluginName, key, data);\n }\n\n static delete(pluginName, key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.deleteData(). bdPluginStorage may be removed in future versions.`);\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].deletePluginData(pluginName, key);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvb2xkc3RvcmFnZS5qcz8zNDA4Il0sIm5hbWVzIjpbImJkU3RvcmFnZSIsImdldCIsImtleSIsIlV0aWxpdGllcyIsIndhcm4iLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJzZXQiLCJkYXRhIiwic2V0QkREYXRhIiwiYmRQbHVnaW5TdG9yYWdlIiwicGx1Z2luTmFtZSIsImdldFBsdWdpbkRhdGEiLCJzZXRQbHVnaW5EYXRhIiwiZGVsZXRlIiwiZGVsZXRlUGx1Z2luRGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFTyxNQUFNQSxTQUFOLENBQWdCO0FBQ25CLFNBQU9DLEdBQVAsQ0FBV0MsR0FBWCxFQUFnQjtBQUNaQyxzREFBUyxDQUFDQyxJQUFWLENBQWUsb0JBQWYsRUFBcUMsNEVBQXJDO0FBQ0EsV0FBT0Msa0RBQVMsQ0FBQ0MsU0FBVixDQUFvQkosR0FBcEIsQ0FBUDtBQUNIOztBQUVELFNBQU9LLEdBQVAsQ0FBV0wsR0FBWCxFQUFnQk0sSUFBaEIsRUFBc0I7QUFDbEJMLHNEQUFTLENBQUNDLElBQVYsQ0FBZSxvQkFBZixFQUFxQyw0RUFBckM7QUFDQUMsc0RBQVMsQ0FBQ0ksU0FBVixDQUFvQlAsR0FBcEIsRUFBeUJNLElBQXpCO0FBQ0g7O0FBVGtCO0FBWWhCLE1BQU1FLGVBQU4sQ0FBc0I7QUFDekIsU0FBT1QsR0FBUCxDQUFXVSxVQUFYLEVBQXVCVCxHQUF2QixFQUE0QjtBQUN4QkMsc0RBQVMsQ0FBQ0MsSUFBVixDQUFlLG9CQUFmLEVBQXNDLEdBQUVPLFVBQVcsc0dBQW5EO0FBQ0EsV0FBT04sa0RBQVMsQ0FBQ08sYUFBVixDQUF3QkQsVUFBeEIsRUFBb0NULEdBQXBDLEtBQTRDLElBQW5EO0FBQ0g7O0FBRUQsU0FBT0ssR0FBUCxDQUFXSSxVQUFYLEVBQXVCVCxHQUF2QixFQUE0Qk0sSUFBNUIsRUFBa0M7QUFDOUJMLHNEQUFTLENBQUNDLElBQVYsQ0FBZSxvQkFBZixFQUFzQyxHQUFFTyxVQUFXLHNHQUFuRDtBQUNBLFFBQUksT0FBT0gsSUFBUCxLQUFpQixXQUFyQixFQUFrQyxPQUFPTCxrREFBUyxDQUFDQyxJQUFWLENBQWUsb0JBQWYsRUFBcUMsNkNBQTZDTyxVQUFsRixDQUFQO0FBQ2xDTixzREFBUyxDQUFDUSxhQUFWLENBQXdCRixVQUF4QixFQUFvQ1QsR0FBcEMsRUFBeUNNLElBQXpDO0FBQ0g7O0FBRUQsU0FBT00sTUFBUCxDQUFjSCxVQUFkLEVBQTBCVCxHQUExQixFQUErQjtBQUMzQkMsc0RBQVMsQ0FBQ0MsSUFBVixDQUFlLG9CQUFmLEVBQXNDLEdBQUVPLFVBQVcscUZBQW5EO0FBQ0FOLHNEQUFTLENBQUNVLGdCQUFWLENBQTJCSixVQUEzQixFQUF1Q1QsR0FBdkM7QUFDSDs7QUFmd0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9vbGRzdG9yYWdlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9kYXRhc3RvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBiZFN0b3JhZ2Uge1xyXG4gICAgc3RhdGljIGdldChrZXkpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBcIlBsZWFzZSB1c2UgQmRBcGkuZ2V0QkREYXRhKCkuIGJkU3RvcmFnZSBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXCIpO1xyXG4gICAgICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0QkREYXRhKGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNldChrZXksIGRhdGEpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBcIlBsZWFzZSB1c2UgQmRBcGkuc2V0QkREYXRhKCkuIGJkU3RvcmFnZSBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXCIpO1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoa2V5LCBkYXRhKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIGJkUGx1Z2luU3RvcmFnZSB7XHJcbiAgICBzdGF0aWMgZ2V0KHBsdWdpbk5hbWUsIGtleSkge1xyXG4gICAgICAgIFV0aWxpdGllcy53YXJuKFwiRGVwcmVjYXRpb24gTm90aWNlXCIsIGAke3BsdWdpbk5hbWV9LCBwbGVhc2UgdXNlIEJkQXBpLmxvYWREYXRhKCkgb3IgQmRBcGkuZ2V0RGF0YSgpLiBiZFBsdWdpblN0b3JhZ2UgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLmApO1xyXG4gICAgICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNldChwbHVnaW5OYW1lLCBrZXksIGRhdGEpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBgJHtwbHVnaW5OYW1lfSwgcGxlYXNlIHVzZSBCZEFwaS5zYXZlRGF0YSgpIG9yIEJkQXBpLnNldERhdGEoKS4gYmRQbHVnaW5TdG9yYWdlIG1heSBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5gKTtcclxuICAgICAgICBpZiAodHlwZW9mKGRhdGEpID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gVXRpbGl0aWVzLndhcm4oXCJEZXByZWNhdGlvbiBOb3RpY2VcIiwgXCJUcnlpbmcgdG8gc2V0IHVuZGVmaW5lZCB2YWx1ZSBpbiBwbHVnaW4gXCIgKyBwbHVnaW5OYW1lKTtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXksIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkZWxldGUocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLndhcm4oXCJEZXByZWNhdGlvbiBOb3RpY2VcIiwgYCR7cGx1Z2luTmFtZX0sIHBsZWFzZSB1c2UgQmRBcGkuZGVsZXRlRGF0YSgpLiBiZFBsdWdpblN0b3JhZ2UgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLmApO1xyXG4gICAgICAgIERhdGFTdG9yZS5kZWxldGVQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/oldstorage.js\n"); /***/ }), @@ -3598,242 +479,7 @@ class bdPluginStorage { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ "./src/data/data.js"); -/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ "./src/modules/utilities.js"); -/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./webpackmodules */ "./src/modules/webpackmodules.js"); -/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ "./src/modules/datastore.js"); -/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ "./src/ui/ui.js"); - - - - - -const BdApi = { - get React() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_2__["DiscordModules"].React; - }, - - get ReactDOM() { - return _webpackmodules__WEBPACK_IMPORTED_MODULE_2__["DiscordModules"].ReactDOM; - }, - - get WindowConfigFile() { - if (this._windowConfigFile) return this._windowConfigFile; - - const electron = __webpack_require__(/*! electron */ "electron").remote.app; - - const path = __webpack_require__(/*! path */ "path"); - - const base = electron.getAppPath(); - const roamingBase = electron.getPath("userData"); - const roamingLocation = path.resolve(roamingBase, electron.getVersion(), "modules", "discord_desktop_core", "injector", "config.json"); - const location = path.resolve(base, "..", "app", "config.json"); - - const fs = __webpack_require__(/*! fs */ "fs"); - - const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null; - if (!realLocation) return this._windowConfigFile = null; - return this._windowConfigFile = realLocation; - } - -}; - -BdApi.getAllWindowPreferences = function () { - if (!this.WindowConfigFile) return {}; - return require(this.WindowConfigFile); -}; - -BdApi.getWindowPreference = function (key) { - if (!this.WindowConfigFile) return undefined; - return this.getAllWindowPreferences()[key]; -}; - -BdApi.setWindowPreference = function (key, value) { - if (!this.WindowConfigFile) return; - - const fs = __webpack_require__(/*! fs */ "fs"); - - const prefs = this.getAllWindowPreferences(); - prefs[key] = value; - delete __webpack_require__.c[this.WindowConfigFile]; - fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4)); -}; //Inject CSS to document head -//id = id of element -//css = custom css - - -BdApi.injectCSS = function (id, css) { - $("head").append($("