Fentify

Most Advanced Cheat Client for Vectaria.io

// ==UserScript==
// @name         Fentify
// @namespace    fentify
// @version      0.0.3
// @description  Most Advanced Cheat Client for Vectaria.io
// @author       CrackBob
// @match        https://vectaria.io/*
// @license      MIT
// ==/UserScript==

(() => {
    "use strict";
    var __webpack_modules__ = {
        "./node_modules/css-loader/dist/cjs.js!./src/module/modules/visual/styles/clickgui.css": (module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js");
            var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
            var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js");
            var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
            var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
            ___CSS_LOADER_EXPORT___.push([ module.id, `@font-face {\n    font-family: "Product Sans";\n    src: url(https://fonts.gstatic.com/s/productsans/v19/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2);\n}\n\n:root {\n    --Fentify-accent-color: linear-gradient(90deg, rgb(64, 190, 255) 0%, rgb(129, 225, 255) 100%);\n    --button-color: rgb(40, 40, 40, 0.9);\n    --hover-color: rgb(50, 50, 50, 0.9);\n    --panel-bg: rgb(34, 34, 34, 0.85);\n    --panel-bg: rgb(10, 10, 10, 0.85);\n    --text-color: #ffffff;\n    --header-text-size: 25px;\n    --button-text-size: 20px;\n    --setting-text-size: 15px;\n}\n\n.gui-panel {\n    position: fixed;\n    z-index: 1000;\n    width: 200px;\n    border-radius: 8px;\n    background-color: var(--panel-bg);\n    box-shadow: 0 4px 8px rgba(0,0,0,0.3);\n    font-family: 'Product Sans', sans-serif;\n    color: var(--text-color);\n    overflow: hidden;\n}\n\n.gui-header {\n    background-color: var(--header-bg);\n    height: 40px;\n    font-weight: 900;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: var(--header-text-size);\n    cursor: grab;\n}\n\n.gui-header:active {\n    cursor: grabbing;\n}\n\n.gui-button {\n    height: 35px;\n    display: flex;\n    align-items: center;\n    padding-left: 10px;\n    box-sizing: border-box;\n    cursor: pointer;\n    border-radius: 0;\n    transition: all 0.3s;\n    font-size: var(--button-text-size);\n    font-weight: 200;\n    outline: none;\n    background: var(--button-color);\n    color: var(--text-color);\n}\n\n.gui-button.enabled {\n    background: var(--Fentify-accent-color);\n}\n\n.gui-button:not(.enabled):hover {\n    background: var(--hover-color);\n}\n\n.gui-background {\n    position: absolute;\n    left: 0;\n    top: 0;\n    z-index: 999;\n    height: 100%;\n    width: 100%;\n    backdrop-filter: blur(15px);\n    background: rgba(0, 0, 0, 0.3);\n}\n\n.gui-setting-container {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    background-color: var(--panel-bg);\n    padding: 2px;\n}\n\n.gui-setting-label {\n    font-size: var(--setting-text-size);\n    margin-left: 10px;\n    font-weight: 300;\n    color: var(--text-color);\n}\n\n.gui-checkbox {\n    width: 15px;\n    height: 15px;\n    border-radius: 4px;\n    background: var(--button-color);\n    position: relative;\n    margin: 8px;\n    cursor: pointer;\n    transition: background 0.3s;\n}\n\n.gui-checkbox.enabled {\n    background: var(--Fentify-accent-color);\n}\n\n.gui-color-picker {\n    width: 15px;\n    height: 15px;\n    border-radius: 4px;\n    position: relative;\n    margin: 8px;\n    cursor: pointer;\n}\n\n.gui-color-input {\n    width: 20px;\n    height: 20px;\n    opacity: 0;\n    cursor: pointer;\n}\n\n.gui-button-container {\n    background-color: var(--panel-bg);\n    display: flex;\n    flex-direction: column;\n}\n\n.gui-text-input {\n    background: var(--button-color);\n    border: none;\n    color: var(--text-color);\n    font-family: 'Product Sans', sans-serif;\n    font-size: var(--setting-text-size);\n    width: 40px;\n    border-radius: 4px;\n    outline: none;\n    transition: background 0.3s;\n    text-align: center;\n    margin: 5px;\n    margin-right: 10px;\n}\n\n.gui-text-input:hover {\n    background: var(--hover-color);\n}\n\n.gui-text-input:focus {\n    background: var(--hover-color);\n}\n\n.with-animations .gui-panel {\n    animation: fadeInScale 0.3s ease-out;\n}\n\n@keyframes fadeInScale {\n    from {\n        opacity: 0;\n        transform: scale(0.9);\n    }\n    to {\n        opacity: 1;\n        transform: scale(1);\n    }\n}\n\n.with-animations .gui-background {\n    animation: fadeIn 0.3s ease-out;\n}\n\n@keyframes fadeIn {\n    from { opacity: 0; }\n    to { opacity: 1; }\n}\n\n.with-animations .gui-button {\n    transition: transform 0.2s ease, background 0.2s ease;\n}\n\n.with-animations .gui-button:hover {\n    transform: scale(1.01);\n}\n\n.with-animations .gui-setting-container {\n    will-change: transform, opacity;\n    transform-origin: top;\n    animation: slideDown 0.25s ease-out forwards;\n}\n\n@keyframes slideDown {\n    from {\n        opacity: 0;\n        transform: scaleY(0.8);\n    }\n    to {\n        opacity: 1;\n        transform: scaleY(1);\n    }\n}\n\n.blockSelector {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    width: 500px;\n    height: 500px;\n    overflow-y: auto;\n    background-color: rgba(40, 40, 40);\n    border-radius: 10px;\n    padding: 20px;\n    z-index: 9999;\n}\n\n.blockSelector::-webkit-scrollbar {\n    display: none;\n}`, "" ]);
            const __WEBPACK_DEFAULT_EXPORT__ = ___CSS_LOADER_EXPORT___;
        },
        "./node_modules/css-loader/dist/runtime/api.js": module => {
            module.exports = function(cssWithMappingToString) {
                var list = [];
                list.toString = function toString() {
                    return this.map((function(item) {
                        var content = "";
                        var needLayer = typeof item[5] !== "undefined";
                        if (item[4]) {
                            content += "@supports (".concat(item[4], ") {");
                        }
                        if (item[2]) {
                            content += "@media ".concat(item[2], " {");
                        }
                        if (needLayer) {
                            content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
                        }
                        content += cssWithMappingToString(item);
                        if (needLayer) {
                            content += "}";
                        }
                        if (item[2]) {
                            content += "}";
                        }
                        if (item[4]) {
                            content += "}";
                        }
                        return content;
                    })).join("");
                };
                list.i = function i(modules, media, dedupe, supports, layer) {
                    if (typeof modules === "string") {
                        modules = [ [ null, modules, undefined ] ];
                    }
                    var alreadyImportedModules = {};
                    if (dedupe) {
                        for (var k = 0; k < this.length; k++) {
                            var id = this[k][0];
                            if (id != null) {
                                alreadyImportedModules[id] = true;
                            }
                        }
                    }
                    for (var _k = 0; _k < modules.length; _k++) {
                        var item = [].concat(modules[_k]);
                        if (dedupe && alreadyImportedModules[item[0]]) {
                            continue;
                        }
                        if (typeof layer !== "undefined") {
                            if (typeof item[5] === "undefined") {
                                item[5] = layer;
                            } else {
                                item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
                                item[5] = layer;
                            }
                        }
                        if (media) {
                            if (!item[2]) {
                                item[2] = media;
                            } else {
                                item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
                                item[2] = media;
                            }
                        }
                        if (supports) {
                            if (!item[4]) {
                                item[4] = "".concat(supports);
                            } else {
                                item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
                                item[4] = supports;
                            }
                        }
                        list.push(item);
                    }
                };
                return list;
            };
        },
        "./node_modules/css-loader/dist/runtime/noSourceMaps.js": module => {
            module.exports = function(i) {
                return i[1];
            };
        },
        "./src/module/modules/visual/styles/clickgui.css": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
            var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
            var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js");
            var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
            var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js");
            var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
            var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
            var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
            var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js");
            var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
            var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js");
            var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
            var _node_modules_css_loader_dist_cjs_js_clickgui_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./node_modules/css-loader/dist/cjs.js!./src/module/modules/visual/styles/clickgui.css");
            var options = {};
            options.styleTagTransform = _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default();
            options.setAttributes = _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default();
            options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
            options.domAPI = _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default();
            options.insertStyleElement = _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();
            var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_clickgui_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
            const __WEBPACK_DEFAULT_EXPORT__ = _node_modules_css_loader_dist_cjs_js_clickgui_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_clickgui_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_clickgui_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined;
        },
        "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": module => {
            var stylesInDOM = [];
            function getIndexByIdentifier(identifier) {
                var result = -1;
                for (var i = 0; i < stylesInDOM.length; i++) {
                    if (stylesInDOM[i].identifier === identifier) {
                        result = i;
                        break;
                    }
                }
                return result;
            }
            function modulesToDom(list, options) {
                var idCountMap = {};
                var identifiers = [];
                for (var i = 0; i < list.length; i++) {
                    var item = list[i];
                    var id = options.base ? item[0] + options.base : item[0];
                    var count = idCountMap[id] || 0;
                    var identifier = "".concat(id, " ").concat(count);
                    idCountMap[id] = count + 1;
                    var indexByIdentifier = getIndexByIdentifier(identifier);
                    var obj = {
                        css: item[1],
                        media: item[2],
                        sourceMap: item[3],
                        supports: item[4],
                        layer: item[5]
                    };
                    if (indexByIdentifier !== -1) {
                        stylesInDOM[indexByIdentifier].references++;
                        stylesInDOM[indexByIdentifier].updater(obj);
                    } else {
                        var updater = addElementStyle(obj, options);
                        options.byIndex = i;
                        stylesInDOM.splice(i, 0, {
                            identifier,
                            updater,
                            references: 1
                        });
                    }
                    identifiers.push(identifier);
                }
                return identifiers;
            }
            function addElementStyle(obj, options) {
                var api = options.domAPI(options);
                api.update(obj);
                var updater = function updater(newObj) {
                    if (newObj) {
                        if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
                            return;
                        }
                        api.update(obj = newObj);
                    } else {
                        api.remove();
                    }
                };
                return updater;
            }
            module.exports = function(list, options) {
                options = options || {};
                list = list || [];
                var lastIdentifiers = modulesToDom(list, options);
                return function update(newList) {
                    newList = newList || [];
                    for (var i = 0; i < lastIdentifiers.length; i++) {
                        var identifier = lastIdentifiers[i];
                        var index = getIndexByIdentifier(identifier);
                        stylesInDOM[index].references--;
                    }
                    var newLastIdentifiers = modulesToDom(newList, options);
                    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
                        var _identifier = lastIdentifiers[_i];
                        var _index = getIndexByIdentifier(_identifier);
                        if (stylesInDOM[_index].references === 0) {
                            stylesInDOM[_index].updater();
                            stylesInDOM.splice(_index, 1);
                        }
                    }
                    lastIdentifiers = newLastIdentifiers;
                };
            };
        },
        "./node_modules/style-loader/dist/runtime/insertBySelector.js": module => {
            var memo = {};
            function getTarget(target) {
                if (typeof memo[target] === "undefined") {
                    var styleTarget = document.querySelector(target);
                    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
                        try {
                            styleTarget = styleTarget.contentDocument.head;
                        } catch (e) {
                            styleTarget = null;
                        }
                    }
                    memo[target] = styleTarget;
                }
                return memo[target];
            }
            function insertBySelector(insert, style) {
                var target = getTarget(insert);
                if (!target) {
                    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
                }
                target.appendChild(style);
            }
            module.exports = insertBySelector;
        },
        "./node_modules/style-loader/dist/runtime/insertStyleElement.js": module => {
            function insertStyleElement(options) {
                var element = document.createElement("style");
                options.setAttributes(element, options.attributes);
                options.insert(element, options.options);
                return element;
            }
            module.exports = insertStyleElement;
        },
        "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": (module, __unused_webpack_exports, __webpack_require__) => {
            function setAttributesWithoutAttributes(styleElement) {
                var nonce = true ? __webpack_require__.nc : 0;
                if (nonce) {
                    styleElement.setAttribute("nonce", nonce);
                }
            }
            module.exports = setAttributesWithoutAttributes;
        },
        "./node_modules/style-loader/dist/runtime/styleDomAPI.js": module => {
            function apply(styleElement, options, obj) {
                var css = "";
                if (obj.supports) {
                    css += "@supports (".concat(obj.supports, ") {");
                }
                if (obj.media) {
                    css += "@media ".concat(obj.media, " {");
                }
                var needLayer = typeof obj.layer !== "undefined";
                if (needLayer) {
                    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
                }
                css += obj.css;
                if (needLayer) {
                    css += "}";
                }
                if (obj.media) {
                    css += "}";
                }
                if (obj.supports) {
                    css += "}";
                }
                var sourceMap = obj.sourceMap;
                if (sourceMap && typeof btoa !== "undefined") {
                    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
                }
                options.styleTagTransform(css, styleElement, options.options);
            }
            function removeStyleElement(styleElement) {
                if (styleElement.parentNode === null) {
                    return false;
                }
                styleElement.parentNode.removeChild(styleElement);
            }
            function domAPI(options) {
                if (typeof document === "undefined") {
                    return {
                        update: function update() {},
                        remove: function remove() {}
                    };
                }
                var styleElement = options.insertStyleElement(options);
                return {
                    update: function update(obj) {
                        apply(styleElement, options, obj);
                    },
                    remove: function remove() {
                        removeStyleElement(styleElement);
                    }
                };
            }
            module.exports = domAPI;
        },
        "./node_modules/style-loader/dist/runtime/styleTagTransform.js": module => {
            function styleTagTransform(css, styleElement) {
                if (styleElement.styleSheet) {
                    styleElement.styleSheet.cssText = css;
                } else {
                    while (styleElement.firstChild) {
                        styleElement.removeChild(styleElement.firstChild);
                    }
                    styleElement.appendChild(document.createTextNode(css));
                }
            }
            module.exports = styleTagTransform;
        },
        "./src/events.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            const __WEBPACK_DEFAULT_EXPORT__ = {
                listeners: {},
                activeKeys: new Set,
                on: function(event, callback) {
                    if (!this.listeners[event]) {
                        this.listeners[event] = [];
                    }
                    this.listeners[event].push(callback);
                },
                remove: function(event, callback) {
                    if (!this.listeners[event]) {
                        return;
                    }
                    this.listeners[event] = this.listeners[event].filter((cb => cb !== callback));
                },
                emit: function(event, data) {
                    if (!this.listeners[event]) {
                        return;
                    }
                    this.listeners[event].forEach((callback => callback(data)));
                },
                trackKey: function(eventType, key, code) {
                    if (eventType === "keydown") {
                        moduleManager.handleKeyPress(code);
                    }
                    if (eventType === "keydown" && !this.activeKeys.has(key)) {
                        this.activeKeys.add(key);
                        this.emit("keyPress", {
                            key,
                            code
                        });
                    }
                    if (eventType === "keyup" && this.activeKeys.has(key)) {
                        this.activeKeys.delete(key);
                        this.emit("keyRelease", {
                            key,
                            code
                        });
                    }
                }
            };
        },
        "./src/hooks.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/events.js");
            const __WEBPACK_DEFAULT_EXPORT__ = {
                init: async function() {
                    let safeImport = src => eval(`(async () => { return await import("${src}")})()`);
                    let mainModule = await safeImport(Object.values(document.scripts).find((script => script?.src?.includes("index"))).src);
                    this.stores = Object.values(mainModule).filter((exports => exports?.$id)).reduce(((acc, exports) => (acc[exports.$id] = exports(), 
                    acc)), {});
                }
            };
        },
        "./src/module/module.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Module
            });
            var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/events.js");
            class Module {
                constructor(name, category, options, keybind) {
                    this.name = name;
                    this.category = category;
                    this.options = options;
                    this.keybind = keybind;
                    this.waitingForBind = false;
                    this.isEnabled = false;
                    this.toggle = this.toggle.bind(this);
                }
                onEnable() {}
                onDisable() {}
                onRender() {}
                onSettingUpdate() {}
                enable() {
                    this.isEnabled = true;
                    _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("module.update", this);
                    this.onEnable();
                }
                disable() {
                    this.isEnabled = false;
                    _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("module.update", this);
                    this.onDisable();
                }
                toggle() {
                    if (this.isEnabled) {
                        this.disable();
                    } else {
                        this.enable();
                    }
                }
            }
        },
        "./src/module/moduleManager.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/events.js");
            var _modules_visual_Arraylist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/module/modules/visual/Arraylist.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/hooks.js");
            var _modules_visual_Watermark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/module/modules/visual/Watermark.js");
            var _modules_visual_ClickGUI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/module/modules/visual/ClickGUI.js");
            var _modules_movement_Airjump__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./src/module/modules/movement/Airjump.js");
            var _modules_misc_Instabreak__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./src/module/modules/misc/Instabreak.js");
            var _modules_misc_SpoofBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./src/module/modules/misc/SpoofBlock.js");
            var _modules_misc_Nuker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./src/module/modules/misc/Nuker.js");
            var _modules_misc_SpoofLevel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./src/module/modules/misc/SpoofLevel.js");
            var _modules_misc_Emote__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./src/module/modules/misc/Emote.js");
            var _modules_misc_AdBypass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./src/module/modules/misc/AdBypass.js");
            var _modules_movement_Velocity__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./src/module/modules/movement/Velocity.js");
            var _modules_combat_NoHitDelay__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./src/module/modules/combat/NoHitDelay.js");
            var _modules_movement_Fly__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./src/module/modules/movement/Fly.js");
            var _modules_movement_NoFall__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./src/module/modules/movement/NoFall.js");
            var _modules_movement_Speed__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./src/module/modules/movement/Speed.js");
            var _modules_misc_FreeCoupons__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("./src/module/modules/misc/FreeCoupons.js");
            var _modules_visual_Chams__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("./src/module/modules/visual/Chams.js");
            var _modules_combat_Triggerbot__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("./src/module/modules/combat/Triggerbot.js");
            var _modules_movement_Scaffold__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("./src/module/modules/movement/Scaffold.js");
            var _modules_misc_Fill__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("./src/module/modules/misc/Fill.js");
            var _modules_movement_NoClip__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("./src/module/modules/movement/NoClip.js");
            var _modules_combat_Killaura__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("./src/module/modules/combat/Killaura.js");
            var _modules_visual_BlockOutline__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("./src/module/modules/visual/BlockOutline.js");
            var _modules_combat_TPAura__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("./src/module/modules/combat/TPAura.js");
            const __WEBPACK_DEFAULT_EXPORT__ = {
                modules: {},
                addModules: function(...modules) {
                    for (const module of modules) this.modules[module.name] = module;
                },
                addModule: function(module) {
                    this.modules[module.name] = module;
                },
                handleKeyPress: function(key) {
                    for (let name in this.modules) {
                        let module = this.modules[name];
                        if (module.waitingForBind) {
                            module.keybind = key;
                            module.waitingForBind = false;
                        } else if (module.keybind == key) {
                            module.toggle();
                        }
                    }
                },
                init() {
                    this.addModules(new _modules_visual_Arraylist__WEBPACK_IMPORTED_MODULE_1__["default"], new _modules_visual_Watermark__WEBPACK_IMPORTED_MODULE_3__["default"], new _modules_visual_ClickGUI__WEBPACK_IMPORTED_MODULE_4__["default"], new _modules_movement_Airjump__WEBPACK_IMPORTED_MODULE_5__["default"], new _modules_misc_Instabreak__WEBPACK_IMPORTED_MODULE_6__["default"], new _modules_misc_SpoofBlock__WEBPACK_IMPORTED_MODULE_7__["default"], new _modules_misc_Nuker__WEBPACK_IMPORTED_MODULE_8__["default"], new _modules_misc_SpoofLevel__WEBPACK_IMPORTED_MODULE_9__["default"], new _modules_misc_Emote__WEBPACK_IMPORTED_MODULE_10__["default"], new _modules_misc_AdBypass__WEBPACK_IMPORTED_MODULE_11__["default"], new _modules_movement_Velocity__WEBPACK_IMPORTED_MODULE_12__["default"], new _modules_combat_NoHitDelay__WEBPACK_IMPORTED_MODULE_13__["default"], new _modules_movement_Fly__WEBPACK_IMPORTED_MODULE_14__["default"], new _modules_movement_NoFall__WEBPACK_IMPORTED_MODULE_15__["default"], new _modules_movement_Speed__WEBPACK_IMPORTED_MODULE_16__["default"], new _modules_misc_FreeCoupons__WEBPACK_IMPORTED_MODULE_17__["default"], new _modules_visual_Chams__WEBPACK_IMPORTED_MODULE_18__["default"], new _modules_combat_Triggerbot__WEBPACK_IMPORTED_MODULE_19__["default"], new _modules_movement_Scaffold__WEBPACK_IMPORTED_MODULE_20__["default"], new _modules_misc_Fill__WEBPACK_IMPORTED_MODULE_21__["default"], new _modules_movement_NoClip__WEBPACK_IMPORTED_MODULE_22__["default"], new _modules_combat_Killaura__WEBPACK_IMPORTED_MODULE_23__["default"], new _modules_visual_BlockOutline__WEBPACK_IMPORTED_MODULE_24__["default"], new _modules_combat_TPAura__WEBPACK_IMPORTED_MODULE_25__["default"]);
                    _events__WEBPACK_IMPORTED_MODULE_0__["default"].on("render", (() => {
                        for (let name in this.modules) {
                            if (this.modules[name].isEnabled) {
                                this.modules[name].onRender();
                            }
                        }
                    }));
                    _events__WEBPACK_IMPORTED_MODULE_0__["default"].on("keydown", this.handleKeyPress.bind(this));
                    _events__WEBPACK_IMPORTED_MODULE_0__["default"].on("setting.update", (() => {
                        for (let name in this.modules) {
                            if (this.modules[name].isEnabled) {
                                this.modules[name].onSettingUpdate();
                            }
                        }
                    }));
                    this.modules["Arraylist"].enable();
                    this.modules["Watermark"].enable();
                }
            };
        },
        "./src/module/modules/combat/Killaura.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Killaura
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/module/moduleManager.js");
            var _utils_gameUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/gameUtils.js");
            class Killaura extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Killaura", "Combat", {
                        "Y Offset": 1.62,
                        Reach: 5,
                        Delay: 100
                    });
                    this.lastExecutionTime = null;
                }
                onRender() {
                    const currentTime = Date.now();
                    if (currentTime - this.lastExecutionTime >= this.options["Delay"]) {
                        this.lastExecutionTime = currentTime;
                        this.tryKill();
                    }
                }
                tryKill() {
                    let reach = this.options["Reach"];
                    let yOffset = this.options["Y Offset"];
                    let targetPlayer = _utils_gameUtils__WEBPACK_IMPORTED_MODULE_3__["default"].getClosestPlayer();
                    var playerPosition = {
                        x: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.x,
                        y: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.y + yOffset,
                        z: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.z
                    };
                    var targetPosition = targetPlayer.position;
                    var direction = {
                        x: playerPosition.x - targetPosition.x,
                        y: playerPosition.y - targetPosition.y,
                        z: playerPosition.z - targetPosition.z
                    };
                    var length = Math.sqrt(direction.x * direction.x + direction.y * direction.y + direction.z * direction.z);
                    if (length !== 0) {
                        direction.x /= length;
                        direction.y /= length;
                        direction.z /= length;
                    }
                    direction.x = -direction.x;
                    direction.y = -direction.y;
                    direction.z = -direction.z;
                    var distance = Math.sqrt(Math.pow(playerPosition.x - targetPosition.x, 2) + Math.pow(playerPosition.y - targetPosition.y, 2) + Math.pow(playerPosition.z - targetPosition.z, 2));
                    if (distance < reach) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.sendData(61, [ playerPosition.x, playerPosition.y, playerPosition.z, direction.x, direction.y, direction.z, _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.time.localServerTimeMs, targetPlayer.id ]);
                    }
                }
            }
        },
        "./src/module/modules/combat/NoHitDelay.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => NoHitDelay
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class NoHitDelay extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("NoHitDelay", "Combat");
                }
                get hitSystem() {
                    return _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.systemsManager.activeExecuteSystems.find((sys => sys?.lastAttackTimeMs !== undefined));
                }
                onEnable() {
                    this.hitSystem.__defineGetter__("attackTimeDelayMs", (() => 0));
                    this.hitSystem.__defineSetter__("attackTimeDelayMs", (() => 0));
                }
                onDisable() {
                    delete this.hitSystem.attackTimeDelayMs;
                    this.hitSystem.attackTimeDelayMs = 750;
                }
            }
        },
        "./src/module/modules/combat/TPAura.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => TPAura
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/module/moduleManager.js");
            var _utils_gameUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/gameUtils.js");
            class TPAura extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("TPAura", "Combat", {
                        "Y Offset": 1.62,
                        Radius: 1,
                        Delay: 100
                    });
                    this.lastExecutionTime = null;
                }
                onRender() {
                    const currentTime = Date.now();
                    if (currentTime - this.lastExecutionTime >= this.options["Delay"]) {
                        this.lastExecutionTime = currentTime;
                        this.tryKill();
                    }
                }
                tryKill() {
                    let radius = this.options["Radius"];
                    let yOffset = this.options["Y Offset"];
                    let targetPlayer = _utils_gameUtils__WEBPACK_IMPORTED_MODULE_3__["default"].getClosestPlayer();
                    if (!targetPlayer?.position) return;
                    var playerPosition = {
                        x: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.x,
                        y: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.y + yOffset,
                        z: _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.z
                    };
                    var targetPosition = targetPlayer.position;
                    var direction = {
                        x: playerPosition.x - targetPosition.x,
                        y: playerPosition.y - targetPosition.y,
                        z: playerPosition.z - targetPosition.z
                    };
                    var length = Math.sqrt(direction.x * direction.x + direction.y * direction.y + direction.z * direction.z);
                    if (length !== 0) {
                        direction.x /= length;
                        direction.y /= length;
                        direction.z /= length;
                    }
                    direction.x = -direction.x;
                    direction.y = -direction.y;
                    direction.z = -direction.z;
                    var distance = Math.sqrt(Math.pow(playerPosition.x - targetPosition.x, 2) + Math.pow(playerPosition.y - targetPosition.y, 2) + Math.pow(playerPosition.z - targetPosition.z, 2));
                    if (distance > radius) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position = targetPlayer.position.clone();
                    }
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.sendData(61, [ playerPosition.x, playerPosition.y, playerPosition.z, direction.x, direction.y, direction.z, _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].gameWorld.time.localServerTimeMs, targetPlayer.id ]);
                }
            }
        },
        "./src/module/modules/combat/Triggerbot.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Triggerbot
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Triggerbot extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Triggerbot", "Combat", {
                        Interval: 50
                    });
                    this.lastExecutionTime = 0;
                }
                get hitSystem() {
                    return _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.systemsManager.activeExecuteSystems.find((sys => sys?.lastAttackTimeMs !== undefined));
                }
                onRender() {
                    const currentTime = Date.now();
                    if (currentTime - this.lastExecutionTime >= this.options["Interval"] && this.hitSystem?.hitPlayers) {
                        this.lastExecutionTime = currentTime;
                        this.hitSystem.hitPlayers();
                    }
                }
            }
        },
        "./src/module/modules/misc/AdBypass.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => AdBypass
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class AdBypass extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("AdBypass", "Misc");
                }
                onEnable() {
                    this._reward = this._reward || _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.rewardCommercialVideoWrapper;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.rewardCommercialVideoWrapper = () => true;
                }
                onDisable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.rewardCommercialVideoWrapper = () => this._reward;
                }
            }
        },
        "./src/module/modules/misc/Emote.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Emote
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Emote extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Emote", "Misc", {
                        "Emote name": "No",
                        Infinity: false
                    });
                }
                onEnable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.roomManager.ws.sendData(77, {
                        name: this.options["Emote name"],
                        infinity: this.options["Infinity"]
                    });
                }
            }
        },
        "./src/module/modules/misc/Fill.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Fill
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/module/moduleManager.js");
            class Fill extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Fill", "Misc", {
                        Radius: 4,
                        Delay: 120
                    });
                    this.blockIndex = 0;
                }
                onEnable() {
                    this.blockIndex = 0;
                    let radius = this.options["Radius"];
                    let blockUnderPlayer = Object.values(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position).map(Math.floor);
                    blockUnderPlayer[1]--;
                    let dx = -radius, dy = -radius, dz = -radius;
                    let blocks = [];
                    while (dx <= radius) {
                        while (dy <= radius) {
                            while (dz <= radius) {
                                if (Math.sqrt(dx * dx + dy * dy + dz * dz) <= radius) {
                                    let blockPos = [ blockUnderPlayer[0] + dx, blockUnderPlayer[1] + dy, blockUnderPlayer[2] + dz ];
                                    let blockID = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.getBlock(...blockPos);
                                    let replaceable = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.allItems[blockID]?.replaceable || false;
                                    if (replaceable || blockID == 0) {
                                        blocks.push(blockPos);
                                    }
                                }
                                dz++;
                            }
                            dz = -radius;
                            dy++;
                        }
                        dy = -radius;
                        dx++;
                    }
                    let context = this;
                    let delay = this.options["Delay"];
                    function placeNextBlock() {
                        let blockId = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.currentHandItemId;
                        if (context.blockIndex < blocks.length) {
                            const [newX, newY, newZ] = blocks[context.blockIndex];
                            setTimeout((() => {
                                _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.placeBlockWithMsgSending(newX, newY, newZ, blockId);
                                context.blockIndex++;
                                placeNextBlock();
                            }), delay);
                        } else {
                            context.blockIndex = 0;
                            _moduleManager__WEBPACK_IMPORTED_MODULE_2__["default"].modules["Fill"].disable();
                        }
                    }
                    placeNextBlock();
                }
            }
        },
        "./src/module/modules/misc/FreeCoupons.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => FreeCoupons
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/module/moduleManager.js");
            class FreeCoupons extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("FreeCoupons", "Misc");
                }
                onEnable() {
                    fetch("https://api.vectaria.io/v2/users/getAdCoupons", {
                        credentials: "include"
                    }).then((response => {
                        if (!response.ok) {
                            alert("Reached Daily limit");
                        } else {
                            _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user.coupons += 10;
                        }
                    }));
                    _moduleManager__WEBPACK_IMPORTED_MODULE_2__["default"].modules["FreeCoupons"].disable();
                }
            }
        },
        "./src/module/modules/misc/Instabreak.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Instabreak
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Instabreak extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Instabreak", "Misc", null);
                    this.originalHardness = new Map;
                }
                onEnable() {
                    Object.values(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.allItems).forEach((block => {
                        if (block?.destruction) {
                            if (!this.originalHardness.has(block)) {
                                this.originalHardness.set(block, block.destruction.durability);
                            }
                            block.destruction.durability = 0;
                        }
                    }));
                }
                onDisable() {
                    Object.values(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.allItems).forEach((block => {
                        if (block?.destruction && this.originalHardness.has(block)) {
                            block.destruction.durability = this.originalHardness.get(block);
                        }
                    }));
                }
            }
        },
        "./src/module/modules/misc/Nuker.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Nuker
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/module/moduleManager.js");
            class Nuker extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Nuker", "Misc", {
                        Radius: 4,
                        Delay: 120,
                        "Target Selected Block": false,
                        "Auto Disable": false
                    });
                    this.blockIndex = 0;
                }
                get selectedBlock() {
                    return _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld?.systemsManager.activeExecuteSystems.find((sys => sys?.currBlockPos !== undefined)) || undefined;
                }
                onEnable() {
                    this.blockIndex = 0;
                    let radius = this.options["Radius"];
                    let blockUnderPlayer = Object.values(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position).map(Math.floor);
                    blockUnderPlayer[1]--;
                    if (this.options["Target Selected Block"]) {
                        blockUnderPlayer = [ ...this.selectedBlock.currBlockPos ];
                    }
                    let dx = -radius, dy = -radius, dz = -radius;
                    let blocks = [];
                    while (dx <= radius) {
                        while (dy <= radius) {
                            while (dz <= radius) {
                                if (Math.sqrt(dx * dx + dy * dy + dz * dz) <= radius) {
                                    let blockPos = [ blockUnderPlayer[0] + dx, blockUnderPlayer[1] + dy, blockUnderPlayer[2] + dz ];
                                    let blockID = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.getBlock(...blockPos);
                                    if (blockID !== 0) {
                                        blocks.push(blockPos);
                                    }
                                }
                                dz++;
                            }
                            dz = -radius;
                            dy++;
                        }
                        dy = -radius;
                        dx++;
                    }
                    let context = this;
                    let options = this.options;
                    function breakNextBlock() {
                        if (context.blockIndex < blocks.length) {
                            const [newX, newY, newZ] = blocks[context.blockIndex];
                            setTimeout((() => {
                                _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.placeBlockWithMsgSending(newX, newY, newZ, 0);
                                context.blockIndex++;
                                breakNextBlock();
                            }), options["Delay"]);
                        } else {
                            context.blockIndex = 0;
                            if (options["Auto Disable"]) {
                                _moduleManager__WEBPACK_IMPORTED_MODULE_2__["default"].modules["Nuker"].disable();
                            } else {
                                context.onEnable();
                            }
                        }
                    }
                    breakNextBlock();
                }
            }
        },
        "./src/module/modules/misc/SpoofBlock.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => SpoofBlock
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class SpoofBlock extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("SpoofBlock", "Misc");
                    this.blockID = 0;
                }
                onRender() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.itemsManager[1][_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.itemsManager.selectedItem][0] = this.blockID;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.currentHandItemId = this.blockID;
                }
                onEnable() {
                    let moduleContext = this;
                    let menuContainer = document.createElement("div");
                    menuContainer.className = "blockSelector";
                    document.body.appendChild(menuContainer);
                    let itemContainer = document.createElement("div");
                    Object.assign(itemContainer.style, {
                        display: "flex",
                        flexWrap: "wrap",
                        justifyContent: "center"
                    });
                    menuContainer.appendChild(itemContainer);
                    function addButton(id) {
                        let button = document.createElement("button");
                        Object.assign(button.style, {
                            border: "none",
                            background: "none",
                            margin: "10px"
                        });
                        let img = document.createElement("img");
                        Object.assign(img.style, {
                            width: "40px",
                            height: "40px",
                            objectFit: "cover"
                        });
                        img.src = $assetsUrls["defaultSurvival/renderItems/" + id + ".png"];
                        button.appendChild(img);
                        button.addEventListener("click", (() => {
                            _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.itemsManager[1][_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.itemsManager.selectedItem][0] = id;
                            _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.currentHandItemId = id;
                            moduleContext.blockID = id;
                            menuContainer.remove();
                        }));
                        itemContainer.appendChild(button);
                    }
                    Object.keys(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.allItems).forEach((key => addButton(key)));
                }
            }
        },
        "./src/module/modules/misc/SpoofLevel.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => SpoofLevel
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class SpoofLevel extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("SpoofLevel", "Misc", {
                        Level: 999
                    });
                    this.ogLevel;
                }
                onEnable() {
                    if (_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user?.user?.lvl) this.ogLevel = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user.lvl;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user || {};
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user.lvl = this.options["Level"];
                }
                onDisable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user || {};
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.user.user.lvl = this.ogLevel;
                }
            }
        },
        "./src/module/modules/movement/Airjump.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Airjump
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Airjump extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Airjump", "Movement", null);
                }
                onEnable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.collision.__defineGetter__("isGrounded", (() => true));
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.collision.__defineSetter__("isGrounded", (() => true));
                }
                onDisable() {
                    delete _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.collision.isGrounded;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.collision.isGrounded = true;
                }
            }
        },
        "./src/module/modules/movement/Fly.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Fly
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Fly extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Fly", "Movement", {
                        "Vertical Speed": 5
                    });
                }
                onEnable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.gravity = 0;
                }
                onRender() {
                    if (_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.inputs.jump) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.velVec3.y = this.options["Vertical Speed"];
                    } else if (_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.inputs.crouch) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.velVec3.y = -this.options["Vertical Speed"];
                    } else {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.velVec3.y = 0;
                    }
                }
                onDisable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.gravity = 23;
                }
            }
        },
        "./src/module/modules/movement/NoClip.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => NoClip
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class NoClip extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("NoClip", "Movement");
                    this.realGameMode = 0;
                }
                onEnable() {
                    this.realGameMode = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.gameMode;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.switchGameMode(3);
                }
                onDisable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.switchGameMode(this.realGameMode);
                }
            }
        },
        "./src/module/modules/movement/NoFall.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => NoFall
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class NoFall extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("NoFall", "Movement");
                }
                onRender() {
                    let blockPos = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.clone().floor();
                    blockPos.y--;
                    let blockDirectlyUnderPlayer = !!_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.getBlock(...blockPos);
                    blockPos.y -= 2;
                    let blockUnderPlayer = !!_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.getBlock(...blockPos);
                    if (blockUnderPlayer && _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.velVec3.y < -6 && !blockDirectlyUnderPlayer) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position.y = blockPos.y + 1.5;
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.velVec3.y = .1;
                    }
                }
            }
        },
        "./src/module/modules/movement/Scaffold.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Scaffold
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Scaffold extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Scaffold", "Movement", null);
                }
                onRender() {
                    let blockPos = Object.values(_hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.position).splice(0, 3).map(Math.floor);
                    blockPos[1]--;
                    let holdingBlockID = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.currentHandItemId;
                    let blockUnderID = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.getBlock(...blockPos);
                    let replaceable = _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.allItems[blockUnderID]?.replaceable || false;
                    if ((blockUnderID == 0 || replaceable) && holdingBlockID) {
                        _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.chunkManager.placeBlockWithMsgSending(...blockPos, holdingBlockID);
                    }
                }
            }
        },
        "./src/module/modules/movement/Speed.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Speed
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Speed extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Speed", "Movement", {
                        Speed: 15
                    });
                }
                onEnable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.__defineGetter__("moveSpeed", (() => this.options["Speed"]));
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.__defineSetter__("moveSpeed", (() => this.options["Speed"]));
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.__defineGetter__("fastMoveSpeed", (() => this.options["Speed"]));
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.__defineSetter__("fastMoveSpeed", (() => this.options["Speed"]));
                }
                onDisable() {
                    delete _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.moveSpeed;
                    delete _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.fastMoveSpeed;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.moveSpeed = 4.5;
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.player.velocity.fastMoveSpeed = 6.4;
                }
            }
        },
        "./src/module/modules/movement/Velocity.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Velocity
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Velocity extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Velocity", "Movement", null);
                }
                get serverPacketHandlers() {
                    return _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.msgsListeners;
                }
                get velocityPacket() {
                    return Object.keys(this.serverPacketHandlers).find((key => this.serverPacketHandlers[key].toString().includes("velocity")));
                }
                onEnable() {
                    this.velocityHandler = this.velocityHandler || this.serverPacketHandlers[this.velocityPacket];
                    this.serverPacketHandlers[this.velocityPacket] = () => {};
                }
                onDisable() {
                    this.serverPacketHandlers[this.velocityPacket] = this.velocityHandler;
                }
            }
        },
        "./src/module/modules/visual/Arraylist.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => ArrayList
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _moduleManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/module/moduleManager.js");
            var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/events.js");
            class ArrayList extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Arraylist", "Visual");
                    this.namesMap = {};
                    this.arraylistContainer = null;
                    this.initialized = false;
                }
                update(name, enabled) {
                    if (enabled) {
                        if (!this.namesMap[name]) {
                            let moduleElement = document.createElement("div");
                            moduleElement.style.backgroundColor = "rgba(10, 10, 10, 0.7)";
                            moduleElement.style.color = "white";
                            moduleElement.style.padding = "2px 10px 2px 10px";
                            moduleElement.style.display = "flex";
                            moduleElement.style.alignItems = "center";
                            moduleElement.style.boxSizing = "border-box";
                            moduleElement.style.margin = "0";
                            moduleElement.style.fontFamily = "'Product Sans', sans-serif";
                            moduleElement.style.boxShadow = "rgb(0, 0, 0, 0.05) -5px 1px";
                            moduleElement.style.transition = "max-height 0.2s ease-in-out, opacity 0.2s ease-in-out";
                            moduleElement.style.overflow = "hidden";
                            moduleElement.style.maxHeight = "0";
                            moduleElement.style.opacity = "0";
                            let textElem = document.createElement("span");
                            textElem.style.fontWeight = "800";
                            textElem.style.fontSize = "16px";
                            textElem.style.backgroundImage = "var(--Fentify-accent-color)";
                            textElem.style.color = "transparent";
                            textElem.style.backgroundClip = "text";
                            textElem.innerHTML = name;
                            moduleElement.appendChild(textElem);
                            this.arraylistContainer.appendChild(moduleElement);
                            setTimeout((() => {
                                moduleElement.style.maxHeight = "50px";
                                moduleElement.style.opacity = "1";
                            }), 1);
                            this.namesMap[name] = moduleElement;
                        }
                    } else {
                        if (this.namesMap[name]) {
                            const moduleElement = this.namesMap[name];
                            moduleElement.style.maxHeight = "0";
                            moduleElement.style.opacity = "0";
                            setTimeout((() => {
                                this.arraylistContainer.removeChild(moduleElement);
                                delete this.namesMap[name];
                            }), 5);
                        }
                    }
                    const sortedElements = Object.values(this.namesMap).sort(((a, b) => this.measureElementWidth(b) - this.measureElementWidth(a)));
                    this.arraylistContainer.innerHTML = "";
                    sortedElements.forEach((element => {
                        this.arraylistContainer.appendChild(element);
                    }));
                }
                onEnable() {
                    if (!this.initialized) {
                        this.arraylistContainer = document.createElement("div");
                        this.arraylistContainer.style.flexDirection = "column";
                        this.arraylistContainer.style.position = "absolute";
                        this.arraylistContainer.style.zIndex = "1000";
                        this.arraylistContainer.style.display = "flex";
                        this.arraylistContainer.style.right = "5px";
                        this.arraylistContainer.style.top = "5px";
                        this.arraylistContainer.style.alignItems = "flex-end";
                        this.arraylistContainer.style.pointerEvents = "none";
                        this.arraylistContainer.style.textTransform = "lowercase";
                        this.arraylistContainer.style.border = "2px solid transparent";
                        this.arraylistContainer.style.borderImage = "var(--Fentify-accent-color)";
                        this.arraylistContainer.style.borderImageSlice = "1";
                        this.arraylistContainer.style.borderBottom = "0";
                        this.arraylistContainer.style.borderLeft = "0";
                        document.body.appendChild(this.arraylistContainer);
                        _events__WEBPACK_IMPORTED_MODULE_2__["default"].on("module.update", (module => {
                            this.update(module.name, module.isEnabled);
                        }));
                        this.initialized = true;
                    } else {
                        this.arraylistContainer.style.opacity = "1";
                    }
                }
                measureElementWidth(element) {
                    return element.getBoundingClientRect().width;
                }
                onDisable() {
                    this.arraylistContainer.style.opacity = "0";
                }
            }
        },
        "./src/module/modules/visual/BlockOutline.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => BlockOutline
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            var _utils_gameUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/utils/gameUtils.js");
            class BlockOutline extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Block Outline", "Movement", {
                        "Outline Color": "#81e1ff"
                    });
                }
                get selectedBlock() {
                    return _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld?.systemsManager.activeExecuteSystems.find((sys => sys?.currBlockPos !== undefined)) || undefined;
                }
                onRender() {
                    if (this?.selectedBlock?.mesh) {
                        let selectedColor = _utils_gameUtils__WEBPACK_IMPORTED_MODULE_2__["default"].hexToRgb(this.options["Outline Color"]);
                        if (this.selectedBlock.mesh.material.color.r !== selectedColor.r) {
                            this.onEnable();
                        }
                    }
                }
                onEnable() {
                    let selectedColor = _utils_gameUtils__WEBPACK_IMPORTED_MODULE_2__["default"].hexToRgb(this.options["Outline Color"]);
                    let selectedBlockMesh = this.selectedBlock.mesh;
                    Object.keys(selectedColor).forEach((function(key) {
                        selectedBlockMesh.material.color[key] = selectedColor[key];
                    }));
                }
                onDisable() {
                    this.selectedBlock.mesh.material.color.r = 1;
                    this.selectedBlock.mesh.material.color.g = 1;
                    this.selectedBlock.mesh.material.color.b = 1;
                }
            }
        },
        "./src/module/modules/visual/Chams.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Chams
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/hooks.js");
            class Chams extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Chams", "Visual", null);
                }
                onRender() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.playerIdToData.forEach((player => {
                        player.headObj3D.material.depthTest = false;
                        player.headObj3D.material.wireframe = true;
                    }));
                }
                onDisable() {
                    _hooks__WEBPACK_IMPORTED_MODULE_1__["default"].stores.gameState.gameWorld.server.playerIdToData.forEach((player => {
                        player.headObj3D.material.depthTest = true;
                        player.headObj3D.material.wireframe = false;
                    }));
                }
            }
        },
        "./src/module/modules/visual/ClickGUI.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => ClickGUI
            });
            var _module_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            var _moduleManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/module/moduleManager.js");
            var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/events.js");
            var _components_Panel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/module/modules/visual/components/Panel.js");
            var _styles_clickgui_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/module/modules/visual/styles/clickgui.css");
            class ClickGUI extends _module_js__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("ClickGUI", "Visual", {
                        "Accent Color 1": "rgb(64, 190, 255)",
                        "Accent Color 2": "rgb(129, 225, 255)",
                        "Button Color": "rgb(40, 40, 40, 0.9)",
                        "Hover Color": "rgb(50, 50, 50, 0.9)",
                        "Header Color": "rgb(0, 0, 0, 0.85)",
                        "Panel Color": "rgb(18 18 18)",
                        "Text Color": "#ffffff",
                        "Enable Animations": true
                    }, "ShiftRight");
                    this.GUILoaded = false;
                    this.panels = [];
                    this.blurredBackground = null;
                    this.updateColors();
                }
                updateAnimations() {
                    if (this.options["Enable Animations"]) {
                        document.body.classList.add("with-animations");
                    } else {
                        document.body.classList.remove("with-animations");
                    }
                }
                updateColors() {
                    document.body.style.setProperty("--Fentify-accent-color", `linear-gradient(90deg, ${this.options["Accent Color 1"]} 0%, ${this.options["Accent Color 2"]} 100%)`);
                    document.body.style.setProperty("--button-color", this.options["Button Color"]);
                    document.body.style.setProperty("--hover-color", this.options["Hover Color"]);
                    document.body.style.setProperty("--header-bg", this.options["Header Color"]);
                    document.body.style.setProperty("--panel-bg", this.options["Panel Color"]);
                    document.body.style.setProperty("--text-color", this.options["Text Color"]);
                }
                onEnable() {
                    document.pointerLockElement && document.exitPointerLock();
                    if (!this.GUILoaded) {
                        this.setupBackground();
                        this.createPanels();
                        this.setupEventListeners();
                        this.GUILoaded = true;
                        this.updateAnimations();
                    } else {
                        this.showGUI();
                        this.updateAnimations();
                    }
                }
                setupBackground() {
                    this.blurredBackground = document.createElement("div");
                    this.blurredBackground.className = "gui-background";
                    document.body.appendChild(this.blurredBackground);
                }
                createPanels() {
                    const panelConfigs = [ {
                        title: "Combat",
                        position: {
                            top: "100px",
                            left: "100px"
                        }
                    }, {
                        title: "Movement",
                        position: {
                            top: "100px",
                            left: "320px"
                        }
                    }, {
                        title: "Visual",
                        position: {
                            top: "100px",
                            left: "540px"
                        }
                    }, {
                        title: "Misc",
                        position: {
                            top: "100px",
                            left: "760px"
                        }
                    } ];
                    this.panels.forEach((panel => {
                        if (panel.panel && panel.panel.parentNode) {
                            panel.panel.parentNode.removeChild(panel.panel);
                        }
                    }));
                    this.panels = [];
                    panelConfigs.forEach((config => {
                        const panel = new _components_Panel_js__WEBPACK_IMPORTED_MODULE_3__["default"](config.title, config.position);
                        this.panels.push(panel);
                    }));
                    const modulesByCategory = {};
                    Object.values(_moduleManager_js__WEBPACK_IMPORTED_MODULE_1__["default"].modules).forEach((module => {
                        if (!modulesByCategory[module.category]) {
                            modulesByCategory[module.category] = [];
                        }
                        modulesByCategory[module.category].push(module);
                    }));
                    Object.entries(modulesByCategory).forEach((([category, modules]) => {
                        const panel = this.panels.find((p => p.header.textContent === category));
                        if (!panel) return;
                        modules.sort(((a, b) => b.name.length - a.name.length));
                        modules.forEach((module => panel.addButton(module)));
                    }));
                }
                setupEventListeners() {
                    _events__WEBPACK_IMPORTED_MODULE_2__["default"].on("module.update", (module => {
                        const panel = this.panels.find((p => p.header.textContent === module.category));
                        if (!panel) return;
                        const button = panel.buttons.find((btn => btn.textContent === module.name));
                        if (button) button.classList.toggle("enabled", module.isEnabled);
                    }));
                }
                showGUI() {
                    this.panels.forEach((panel => panel.show()));
                    this.blurredBackground.style.display = "block";
                }
                onDisable() {
                    this.panels.forEach((panel => panel.hide()));
                    this.blurredBackground.style.display = "none";
                }
                onSettingUpdate() {
                    this.updateColors();
                    this.updateAnimations();
                }
            }
        },
        "./src/module/modules/visual/Watermark.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Watermark
            });
            var _module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/module.js");
            class Watermark extends _module__WEBPACK_IMPORTED_MODULE_0__["default"] {
                constructor() {
                    super("Watermark", "Visual", {
                        Text: "Fentify"
                    });
                }
                onSettingUpdate() {
                    let watermarkElement = document.querySelector(".Fentify-overlay-title");
                    if (watermarkElement) watermarkElement.textContent = this.options["Text"];
                }
                onEnable() {
                    let watermarkElement = document.querySelector(".Fentify-overlay-title");
                    if (!watermarkElement) {
                        watermarkElement = document.createElement("div");
                        watermarkElement.className = "Fentify-overlay-title";
                        watermarkElement.textContent = this.options["Text"];
                        watermarkElement.style.position = "absolute";
                        watermarkElement.style.top = "0";
                        watermarkElement.style.left = "0";
                        watermarkElement.style.padding = "0.5em";
                        watermarkElement.style.userSelect = "none";
                        watermarkElement.style.display = "none";
                        watermarkElement.style.zIndex = "1000";
                        watermarkElement.style.textShadow = "var(--Fentify-accent-color) 0px 0px 10px";
                        watermarkElement.style.fontFamily = "'Product Sans', sans-serif";
                        watermarkElement.style.fontSize = "24px";
                        watermarkElement.style.background = "var(--Fentify-accent-color)";
                        watermarkElement.style.backgroundClip = "text";
                        watermarkElement.style.webkitFontSmoothing = "antialiased";
                        watermarkElement.style.webkitTextFillColor = "transparent";
                        document.body.appendChild(watermarkElement);
                    }
                    document.querySelector(".Fentify-overlay-title").style.display = "flex";
                }
                onDisable() {
                    document.querySelector(".Fentify-overlay-title").style.display = "none";
                }
            }
        },
        "./src/module/modules/visual/components/ModuleSettings.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => ModuleSettings
            });
            var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/events.js");
            class ModuleSettings {
                constructor(module, container) {
                    this.module = module;
                    this.container = container;
                    this.components = [];
                    this.initialized = false;
                    this.isOpen = false;
                }
                initialize() {
                    if (this.initialized || !this.module?.options) return;
                    Object.keys(this.module.options).forEach((key => {
                        const settingValue = this.module.options[key];
                        const settingType = typeof settingValue;
                        if (key.toLowerCase().includes("color")) {
                            this.addColorPicker(key);
                        } else if (settingType === "boolean" || settingValue === "true" || settingValue === "false") {
                            this.addCheckbox(key);
                        } else if (settingType === "string") {
                            this.addStringInput(key);
                        } else {
                            this.addNumberInput(key);
                        }
                    }));
                    this.components.forEach((component => component.style.display = "none"));
                    this.initialized = true;
                }
                toggle() {
                    this.isOpen = !this.isOpen;
                    this.components.forEach((component => {
                        component.style.display = this.isOpen ? "flex" : "none";
                        if (this.isOpen) {
                            this.container.style.marginBottom = "5px";
                        } else {
                            this.container.style.marginBottom = "0px";
                        }
                    }));
                }
                addNumberInput(name) {
                    const container = document.createElement("div");
                    container.className = "gui-setting-container";
                    const label = document.createElement("span");
                    label.className = "gui-setting-label";
                    label.textContent = name;
                    const input = document.createElement("input");
                    input.type = "text";
                    input.className = "gui-text-input";
                    input.value = this.module.options[name];
                    let lastValidValue = input.value;
                    input.addEventListener("input", (() => {
                        const value = input.value.trim();
                        if (!isNaN(value) && value !== "") {
                            lastValidValue = value;
                            this.module.options[name] = value;
                            _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("setting.update", this.module);
                        }
                    }));
                    input.addEventListener("blur", (() => {
                        if (isNaN(input.value) || input.value.trim() === "") {
                            input.value = lastValidValue;
                        }
                    }));
                    input.addEventListener("keydown", (e => {
                        if (e.key === "Enter") {
                            input.blur();
                        }
                    }));
                    container.appendChild(label);
                    container.appendChild(input);
                    this.container.appendChild(container);
                    this.components.push(container);
                }
                addStringInput(name) {
                    const container = document.createElement("div");
                    container.className = "gui-setting-container";
                    const label = document.createElement("span");
                    label.className = "gui-setting-label";
                    label.textContent = name;
                    const input = document.createElement("input");
                    input.type = "text";
                    input.className = "gui-text-input";
                    input.value = this.module.options[name];
                    input.addEventListener("input", (() => {
                        const value = input.value.trim();
                        this.module.options[name] = value;
                        _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("setting.update", this.module);
                    }));
                    container.appendChild(label);
                    container.appendChild(input);
                    this.container.appendChild(container);
                    this.components.push(container);
                }
                addCheckbox(name) {
                    const container = document.createElement("div");
                    container.className = "gui-setting-container";
                    const label = document.createElement("span");
                    label.className = "gui-setting-label";
                    label.textContent = name;
                    const checkbox = document.createElement("div");
                    checkbox.className = "gui-checkbox";
                    checkbox.classList.toggle("enabled", this.module.options[name] === true || this.module.options[name] === "true");
                    checkbox.addEventListener("click", (() => {
                        const wasChecked = checkbox.classList.contains("enabled");
                        checkbox.classList.toggle("enabled");
                        this.module.options[name] = (!wasChecked).toString();
                        _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("setting.update", this.module);
                    }));
                    container.appendChild(label);
                    container.appendChild(checkbox);
                    this.container.appendChild(container);
                    this.components.push(container);
                }
                addColorPicker(name) {
                    const container = document.createElement("div");
                    container.className = "gui-setting-container";
                    const label = document.createElement("span");
                    label.className = "gui-setting-label";
                    label.textContent = name;
                    const colorPickerBg = document.createElement("div");
                    colorPickerBg.className = "gui-color-picker";
                    colorPickerBg.style.background = this.module.options[name];
                    const colorPicker = document.createElement("input");
                    colorPicker.type = "color";
                    colorPicker.className = "gui-color-input";
                    colorPickerBg.appendChild(colorPicker);
                    colorPicker.addEventListener("input", (event => {
                        colorPickerBg.style.background = event.target.value;
                        this.module.options[name] = event.target.value;
                        _events__WEBPACK_IMPORTED_MODULE_0__["default"].emit("setting.update", this.module);
                    }));
                    container.appendChild(label);
                    container.appendChild(colorPickerBg);
                    this.container.appendChild(container);
                    this.components.push(container);
                }
            }
        },
        "./src/module/modules/visual/components/Panel.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => Panel
            });
            var _ModuleSettings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/modules/visual/components/ModuleSettings.js");
            class Panel {
                constructor(title, position = {
                    top: "200px",
                    left: "200px"
                }) {
                    this.panel = document.createElement("div");
                    this.panel.className = "gui-panel";
                    this.panel.style.top = position.top;
                    this.panel.style.left = position.left;
                    this.header = document.createElement("div");
                    this.header.className = "gui-header";
                    this.header.textContent = title;
                    this.panel.appendChild(this.header);
                    document.body.appendChild(this.panel);
                    this.buttons = [];
                    this.setupDragHandling();
                }
                setupDragHandling() {
                    let isDragging = false;
                    let offset = {
                        x: 0,
                        y: 0
                    };
                    this.header.addEventListener("mousedown", (e => {
                        isDragging = true;
                        offset.x = e.clientX - this.panel.offsetLeft;
                        offset.y = e.clientY - this.panel.offsetTop;
                    }));
                    document.addEventListener("mousemove", (e => {
                        if (!isDragging) return;
                        this.panel.style.left = e.clientX - offset.x + "px";
                        this.panel.style.top = e.clientY - offset.y + "px";
                    }));
                    document.addEventListener("mouseup", (() => isDragging = false));
                }
                addButton(module) {
                    const buttonContainer = document.createElement("div");
                    buttonContainer.className = "gui-button-container";
                    const btn = document.createElement("div");
                    btn.className = `gui-button ${module.isEnabled ? "enabled" : ""}`;
                    btn.textContent = module.name;
                    const settings = new _ModuleSettings_js__WEBPACK_IMPORTED_MODULE_0__["default"](module, buttonContainer);
                    btn.addEventListener("mousedown", (event => {
                        if (event.button === 0) {
                            module.toggle();
                            btn.classList.toggle("enabled", module.isEnabled);
                        }
                        if (event.button === 1) {
                            btn.textContent = "waiting for bind..";
                            module.waitingForBind = true;
                        }
                    }));
                    btn.addEventListener("contextmenu", (event => {
                        event.preventDefault();
                        settings.initialize();
                        settings.toggle();
                    }));
                    btn.setAttribute("tabindex", -1);
                    btn.addEventListener("keydown", (event => {
                        btn.textContent = module.name;
                        if (module.waitingForBind) {
                            event.preventDefault();
                            event.stopPropagation();
                            event.stopImmediatePropagation();
                            if (event.key === "Escape") {
                                module.keybind = null;
                            } else {
                                module.keybind = String(event.code);
                            }
                            module.waitingForBind = false;
                        }
                    }));
                    buttonContainer.appendChild(btn);
                    this.panel.appendChild(buttonContainer);
                    this.buttons.push(btn);
                    return btn;
                }
                show() {
                    this.panel.style.display = "block";
                }
                hide() {
                    this.panel.style.display = "none";
                }
            }
        },
        "./src/utils/gameUtils.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            var _hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/hooks.js");
            var _mathUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/mathUtils.js");
            const __WEBPACK_DEFAULT_EXPORT__ = {
                getClosestPlayer() {
                    let localPlayerPos = _hooks__WEBPACK_IMPORTED_MODULE_0__["default"].stores.gameState.gameWorld.player.position;
                    let playersData = _hooks__WEBPACK_IMPORTED_MODULE_0__["default"].stores.gameState.gameWorld.server.playerIdToData;
                    let playersWithDistances = [];
                    playersData.forEach((function(player, playerId) {
                        let distance = _mathUtils__WEBPACK_IMPORTED_MODULE_1__["default"].distanceBetween(localPlayerPos, {
                            x: player.position.x,
                            y: player.position.y,
                            z: player.position.z
                        });
                        player.id = playerId;
                        playersWithDistances.push({
                            player,
                            distance
                        });
                    }));
                    playersWithDistances.sort(((a, b) => a.distance - b.distance));
                    return playersWithDistances.map((item => item.player))[0];
                },
                hexToRgb(hex) {
                    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
                    return result ? {
                        r: parseInt(result[1], 16),
                        g: parseInt(result[2], 16),
                        b: parseInt(result[3], 16)
                    } : null;
                }
            };
        },
        "./src/utils/mathUtils.js": (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
            __webpack_require__.r(__webpack_exports__);
            __webpack_require__.d(__webpack_exports__, {
                default: () => __WEBPACK_DEFAULT_EXPORT__
            });
            const __WEBPACK_DEFAULT_EXPORT__ = {
                normalizeVector(vector) {
                    const magnitudeSquared = vector.x * vector.x + vector.y * vector.y + vector.z * vector.z;
                    if (magnitudeSquared > 0) {
                        const reciprocalMagnitude = 1 / Math.sqrt(magnitudeSquared);
                        return [ vector.x * reciprocalMagnitude, vector.y * reciprocalMagnitude, vector.z * reciprocalMagnitude ];
                    }
                    return vector;
                },
                distanceBetween(point1, point2) {
                    const xDifference = point2.x - point1.x;
                    const yDifference = point2.y - point1.y;
                    const zDifference = point2.z - point1.z;
                    return xDifference * xDifference + yDifference * yDifference + zDifference * zDifference;
                },
                distanceBetweenSqrt(pointA, pointB) {
                    return Math.sqrt(this.distanceBetween(pointA, pointB));
                }
            };
        }
    };
    var __webpack_module_cache__ = {};
    function __webpack_require__(moduleId) {
        var cachedModule = __webpack_module_cache__[moduleId];
        if (cachedModule !== undefined) {
            return cachedModule.exports;
        }
        var module = __webpack_module_cache__[moduleId] = {
            id: moduleId,
            exports: {}
        };
        __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
        return module.exports;
    }
    (() => {
        __webpack_require__.n = module => {
            var getter = module && module.__esModule ? () => module["default"] : () => module;
            __webpack_require__.d(getter, {
                a: getter
            });
            return getter;
        };
    })();
    (() => {
        __webpack_require__.d = (exports, definition) => {
            for (var key in definition) {
                if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
                    Object.defineProperty(exports, key, {
                        enumerable: true,
                        get: definition[key]
                    });
                }
            }
        };
    })();
    (() => {
        __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
    })();
    (() => {
        __webpack_require__.r = exports => {
            if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
                Object.defineProperty(exports, Symbol.toStringTag, {
                    value: "Module"
                });
            }
            Object.defineProperty(exports, "__esModule", {
                value: true
            });
        };
    })();
    (() => {
        __webpack_require__.nc = undefined;
    })();
    var __webpack_exports__ = {};
    (() => {
        __webpack_require__.r(__webpack_exports__);
        __webpack_require__.d(__webpack_exports__, {
            default: () => __WEBPACK_DEFAULT_EXPORT__
        });
        var _module_moduleManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/module/moduleManager.js");
        var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/events.js");
        var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/hooks.js");
        var _utils_gameUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/gameUtils.js");
        class Fentify {
            constructor() {
                this.version = "1.0.0";
                this.init();
            }
            init() {
                setInterval((() => {
                    _events__WEBPACK_IMPORTED_MODULE_1__["default"].emit("render");
                }), 1e3 / 60);
                document.addEventListener("keydown", (e => {
                    _events__WEBPACK_IMPORTED_MODULE_1__["default"].emit("keydown", e.code);
                }));
                _hooks__WEBPACK_IMPORTED_MODULE_2__["default"].init();
                _module_moduleManager__WEBPACK_IMPORTED_MODULE_0__["default"].init();
            }
            disable() {}
        }
        const __WEBPACK_DEFAULT_EXPORT__ = new Fentify;
    })();
})();