// ==UserScript==
// @name 7Placer
// @description typescript pixelplace.io bot
// @version 2.0.1
// @author Azti
// @include /^https:\/\/pixelplace.io\/\d+-/
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js
// @require https://update.greasyfork.org/scripts/498080/1395134/Hacktimer.js
// @require https://cdnjs.cloudflare.com/ajax/libs/toastify-js/1.12.0/toastify.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/src/rgbquant.min.js
// @grant none
// @run-at document-start
// @namespace https://greasyfork.org/users/374503
// ==/UserScript==
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/css-loader/dist/cjs.js!./src/GUI/GUIStyle.css":
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports
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, "@import url(https://fonts.cdnfonts.com/css/verdana);"]);
// Module
___CSS_LOADER_EXPORT___.push([module.id, `:root {
--gui-main-color: #7300ff;
--gui-main-color-fade: color-mix(in oklab, var(--gui-main-color), #000)
}
/* GUI */
#sevenGUI {
all: initial;
background-color: #1C1C1C;
height: 40vh;
width: 50vh;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: absolute;
border: #262626;
border-style: solid;
border-width: 0.4vh;
user-select: none;
display: flex;
flex-direction: column;
z-index: 1000;
}
#sevenGUIheader {
color: var(--gui-main-color);
text-align: center;
font-family: Verdana, Tahoma, sans-serif;
background-color: #1a1a1a;
font-size: 1.5vh;
}
#sevenGUIheader:hover {
cursor: move;
}
#rainbowBar {
all: revert;
height: 0.3vh;
width: 100%;
background: linear-gradient(90deg, rgba(0,140,255,1) 0%, rgba(96,39,147,1) 21%, rgba(140,77,78,1) 63%, rgba(181,181,0,1) 100%);
}
#generalContainer {
display: flex;
flex-grow: 1; /* Takes remaining space */
min-height: 0;
}
/* SIDE BAR */
#sideBarContainer {
height: 100%;
width: 10vh;
background-color: #161616;
display: flex;
flex-flow: column;
align-items: center;
position: relative;
}
#sideBarTabContainer {
display: flex;
flex-flow: column;
flex-grow: 1;
width: 100%;
overflow-y: overlay;
scrollbar-width: thin;
scrollbar-color: grey #161616;
direction: rtl;
}
.sideBarTab {
height: 7vh;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
}
.sideBarTab img {
object-fit: contain;
width: 100%;
filter: invert(1) brightness(0.45);
height: 80%;
}
.sideBarTab.selected {
background-color: #1C1C1C;
}
.sideBarTab.selected img {
filter: invert(1) brightness(1);
}
#tabButton_settings {
position: relative;
bottom: 0;
}
/* TAB STUFF */
.GUITabContainer {
all: revert;
display: flex;
flex-wrap: wrap;
flex-grow: 1;
flex-direction: column;
position: relative;
padding: 3%;
gap: 3%;
}
.GUISubmenu {
all: revert;
min-width: 25%;
max-width: 45%;
box-sizing: border-box;
flex-grow: 1;
position: relative;
background-color: #151515;
border: #252525;
border-width: 0.3vh;
border-style: solid;
display: flex;
}
.submenuInside {
display: flex;
all: revert;
overflow-x: hidden;
flex-grow: 1;
padding-top: 2%;
scrollbar-color: rgb(91, 91, 91) rgb(48, 48, 48);
scrollbar-width: thin;
padding: 2%;
min-width: 0;
max-width: 100%;
}
.submenuTitle {
all: revert;
position: absolute;
top: -1.9vh;
left: 5%;
color: white;
font-weight: bold;
font-family: 'Verdana', sans-serif;
font-size: 1vh;
}
/* Toggle */
.toggleContainer {
display: flex;
flex-direction: row;
justify-content: left;
align-items: center;
gap: 5%;
padding-left: 7%;
overflow: hidden;
margin-top: 3%;
}
.toggleSquare {
padding-left: 5%;
padding-bottom: 5%;
background: rgb(58, 58, 58);
border: solid #000000 0.2vh;
}
.toggleContainer.toggled .toggleSquare {
background: linear-gradient(180deg, var(--gui-main-color) 0%, var(--gui-main-color-fade) 100%);
}
.toggleName {
color: rgb(219, 219, 219);
font-family: 'Verdana', sans-serif;
font-size: 1vh;
margin: 3%;
}
/* text */
.textContainer {
width: 100%;
font-size: 1vh;
justify-content: center;
display: flex;
flex-direction: row;
justify-content: left;
overflow: hidden;
margin-top: 3%;
justify-content: center;
}
.textContainer > p {
color: rgb(219, 219, 219);
font-family: 'Verdana', sans-serif;
font-size: 1vh;
margin: 3%;
}
/* Drop Image */
.dropImage {
position: relative;
display: flex;
height: 7vh;
width: 80%;
align-self: center;
margin-left: auto;
margin-right: auto;
background-color: #242424;
border: 0.3vh solid var(--gui-main-color);
justify-content: center;
align-items: center;
margin-top: 5%;
color: white;
font-family: Verdana, sans-serif;
font-size: 1vh;
}
/* Button */
.button {
position: relative;
display: flex;
height: 1.7vh;
width: 80%;
background: linear-gradient(180deg, rgb(76, 75, 75) 0%, rgb(25, 25, 25) 100%);
border: 0.2vh solid #000000;
justify-content: center;
align-items: center;
justify-self: center;
margin-top: 5%;
color: white;
font-family: Verdana, sans-serif;
font-size: 1vh;
}
.button:active {
background: linear-gradient(180deg, rgb(31, 31, 31) 0%, rgb(25, 25, 25) 100%)
}
/* Input */
.inputContainer {
display: flex;
position: relative;
justify-content: center;
margin-top: 5%;
width: 7vh;
margin-left: auto;
margin-right: auto;
}
.inputContainer input {
text-align: center;
height: 1.7vh;
width: 100%;
background-color: #2b2b2b;
border: 1px solid #000;
color: white;
font-family: Verdana, Tahoma, sans-serif;
font-size: 1.1vh;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Select */
.submenuInside select {
background: linear-gradient(180deg, rgb(76, 75, 75) 0%, rgb(25, 25, 25) 100%);
border: none;
color: rgb(203, 203, 203);
font-family: Verdana, Tahoma, sans-serif;
height: 1.7vh;
width: 80%;
display: block;
margin: 5% auto;
font-size: 1vh;
}
select option {
background: rgb(25, 25, 25);
color: #fff;
}
/* ColorSelect */
.colorPicker {
font-family: Verdana, sans-serif;
font-size: 1vh;
color: white;
text-align: center;
}
.colorPicker input {
height: 1.7vh;
width: 80%;
margin-top: 0.2vh;
}
input[type="color"]::-webkit-color-swatch-wrapper {
padding: 0;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/api.js":
/***/ ((module) => {
"use strict";
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
var list = [];
// return the list of modules as css string
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("");
};
// import a list of modules into the list
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) => {
"use strict";
module.exports = function (i) {
return i[1];
};
/***/ }),
/***/ "./src/GUI/GUIStyle.css":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./node_modules/css-loader/dist/cjs.js!./src/GUI/GUIStyle.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_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, options);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A && _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.locals ? _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.locals : undefined);
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/***/ ((module) => {
"use strict";
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: identifier,
updater: 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) => {
"use strict";
var memo = {};
/* istanbul ignore next */
function getTarget(target) {
if (typeof memo[target] === "undefined") {
var styleTarget = document.querySelector(target);
// Special case to return head of iframe instead of iframe itself
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
try {
// This will throw an exception if access to iframe is blocked
// due to cross-origin restrictions
styleTarget = styleTarget.contentDocument.head;
} catch (e) {
// istanbul ignore next
styleTarget = null;
}
}
memo[target] = styleTarget;
}
return memo[target];
}
/* istanbul ignore next */
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) => {
"use strict";
/* istanbul ignore next */
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__) => {
"use strict";
/* istanbul ignore next */
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) => {
"use strict";
/* istanbul ignore next */
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)))), " */");
}
// For old IE
/* istanbul ignore if */
options.styleTagTransform(css, styleElement, options.options);
}
function removeStyleElement(styleElement) {
// istanbul ignore if
if (styleElement.parentNode === null) {
return false;
}
styleElement.parentNode.removeChild(styleElement);
}
/* istanbul ignore next */
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) => {
"use strict";
/* istanbul ignore next */
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/GUI/GUICore.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MainGUI: () => (/* binding */ MainGUI),
/* harmony export */ Submenu: () => (/* binding */ Submenu),
/* harmony export */ Tab: () => (/* binding */ Tab)
/* harmony export */ });
/* harmony import */ var _dragElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/dragElement.ts");
class MainGUI {
constructor() {
this._tabs = new Map();
this._createMainGUI();
}
createTab(name, tab_image) {
if (this._tabs.has(name))
return;
const created_tab = new Tab(this, name, tab_image);
this._tabs.set(name, created_tab);
return created_tab;
}
switchTab(name) {
const tab = this._tabs.get(name);
this._tabs.forEach((tab) => {
tab.hide();
});
tab.show();
}
getTab(name) {
return this._tabs.get(name);
}
_createMainGUI() {
// main gui elements
let GUI_core = `
<div id='sevenGUI' style="display: none;">
<div id="sevenGUIheader">7PLACER</div>
<div id="rainbowBar"></div>
<div id="generalContainer">
<div id="sideBarContainer">
<div id="sideBarTabContainer"></div>
</div>
</div>
</div>
`;
$("body").append(GUI_core);
(0,_dragElement__WEBPACK_IMPORTED_MODULE_0__["default"])($("#sevenGUI")[0]);
// menu toggle
const toggle_gui_button = $('<a href="#" title="Seven Opener" class="grey margin-top-button"><img src="https://infonutricional.tomatelavida.com.co/wp-content/uploads/2023/06/postobon_informacion_nutriconallogo-7up.png" alt="icon"></a>');
toggle_gui_button.css("border-color", "var(--gui-main-color)");
$("#menu-buttons").append(toggle_gui_button);
let toggle = false;
toggle_gui_button.on("click", () => {
if (toggle) {
$('#sevenGUI').css("display", "none");
toggle = false;
}
else {
$('#sevenGUI').css({ "display": "flex", "top": "50%", "left": "50%", "transform": "translate(-50%, -50%)" });
toggle = true;
}
});
// settings tab
const settings_tab = this.createTab('settings', 'https://upload.wikimedia.org/wikipedia/commons/d/dc/Settings-icon-symbol-vector.png');
settings_tab.tab_button.appendTo('#sideBarContainer');
}
;
static get instance() {
if (!this._instance) {
this._instance = new MainGUI;
}
return this._instance;
}
}
;
class Tab {
constructor(main_gui, name, tab_image) {
this._submenus = new Map();
this._main_gui = main_gui;
this._createTab(name, tab_image);
}
;
createSubmenu(name) {
if (this._submenus.has(name))
return;
const created_submenu = new Submenu(this, name);
this._submenus.set(name, created_submenu);
return created_submenu;
}
getSubmenu(name) {
return this._submenus.get(name);
}
show() {
this._tab_button.addClass("selected");
this._submenu_container.css("display", "flex");
}
hide() {
this._tab_button.removeClass("selected");
this._submenu_container.css("display", "none");
}
_createTab(name, tab_image) {
this._tab_button = $(`<div class="sideBarTab" id="tabButton_${name}"><img src="${tab_image}" class="sideBarTab" draggable="false"></div>`);
this._tab_button.on("click", () => {
this._main_gui.switchTab(name);
});
$("#sideBarTabContainer").append(this._tab_button);
this._submenu_container = $(`<div class="GUITabContainer" id="tab_${name}">`).css("display", "none");
$("#generalContainer").append(this._submenu_container);
}
;
get submenu_container() {
return this._submenu_container;
}
get tab_button() {
return this._tab_button;
}
}
class Submenu {
constructor(parent_tab, name) {
this._parent_tab = parent_tab;
this._createSubmenu(name);
}
createToggle(name, default_state, callback) {
const container = $(`<div class="toggleContainer" id="toggle_${name}"></div>`);
container.append('<div class="toggleSquare"></div>');
container.append(`<p class="toggleName">${name}</p>`);
this._submenu_inside.append(container);
if (default_state) {
container.addClass("toggled");
}
let state = default_state;
container.on("click", () => {
if (state) {
state = false;
container.removeClass("toggled");
}
else {
state = true;
container.addClass("toggled");
}
callback(state);
});
return container;
}
createButton(name, callback) {
const button = $(`<div class="button" id="button_${name}">${name}</div>`);
this._submenu_inside.append(button);
button.on("click", () => {
callback();
});
return button;
}
createDrop(label, onFile) {
const drop_container = $(`<div class="dropImage">${label}</div>`);
drop_container.on("dragover", function (event) {
event.preventDefault();
});
drop_container.on("drop", function (event) {
event.preventDefault();
const file = event.originalEvent.dataTransfer.files[0];
if (file.type.startsWith("image/")) {
const reader = new FileReader();
reader.onload = function (e) {
drop_container.html(`<img src="${e.target.result}" style="max-width: 100%; max-height: 100%;">`);
};
reader.readAsDataURL(file);
onFile(file);
}
});
this._submenu_inside.append(drop_container);
return drop_container;
}
createInput(placeholder, type, onType) {
const input = $(`<input class="input" type="${type}" placeholder="${placeholder}">`);
input.on("input", () => {
onType(input.val());
});
this._submenu_inside.append($(`<div class="inputContainer"></div>`).append(input));
return input;
}
createText(text) {
const container = $(`<div class="textContainer">`);
const text_elem = container.append(`<p>${text}</p>`);
this._submenu_inside.append(container);
return text_elem;
}
createSelect(default_value, options, onChange) {
const selector = $(`<select id="selector_${default_value}"></select>`);
selector.append(`<option value="">${default_value}</option>`);
for (const option of options) {
selector.append(`<option value="${option.value}">${option.label}</option>`);
}
selector.on("change", () => {
const value = selector.val();
if (value == "")
return;
onChange(value);
});
this._submenu_inside.append(selector);
return selector;
}
createColor(label, default_color, onChange) {
const color_selector = $(`<input type="color" value="${default_color}" />`);
const container = $(`<div class="colorPicker"><div>${label}</div></div>`).append(color_selector);
color_selector.on("input", () => {
onChange(color_selector.val());
});
this._submenu_inside.append(container);
return color_selector;
}
_createSubmenu(name) {
this._submenu_element = $(`<div class="GUISubmenu" id="submenu_${name}">`);
this._submenu_element.append(`<p class="submenuTitle">${name}</p>`);
this._submenu_inside = $('<div class="submenuInside">');
this._submenu_element.append(this._submenu_inside);
this._parent_tab.submenu_container.append(this._submenu_element);
}
}
/***/ }),
/***/ "./src/GUI/TAB_Botting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/index.ts");
/* harmony import */ var _modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
/* harmony import */ var _GUICore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/GUI/GUICore.ts");
$(function () {
const GUI = _GUICore__WEBPACK_IMPORTED_MODULE_2__.MainGUI.instance;
const TAB = GUI.createTab("Botting", "https://pngimg.com/d/android_logo_PNG5.png");
GUI.switchTab("Botting");
const image_submenu = TAB.createSubmenu("Images");
let current_image;
let current_image_x;
let current_image_y;
image_submenu.createDrop("Drop Image", dropped_image => {
current_image = dropped_image;
});
image_submenu.createInput("X", "number", x_coord => {
current_image_x = parseInt(x_coord);
});
image_submenu.createInput("Y", "number", y_coord => {
current_image_y = parseInt(y_coord);
});
const dithering_options = [
{ label: "None", value: "None" },
{ label: "FloydSteinberg", value: "FloydSteinberg" },
{ label: "FalseFloydSteinberg", value: "FalseFloydSteinberg" },
{ label: "Stucki", value: "Stucki" },
{ label: "Atkinson", value: "Atkinson" },
{ label: "Jarvis", value: "Jarvis" },
{ label: "Burkes", value: "Burkes" },
{ label: "Sierra", value: "Sierra" },
{ label: "TwoSierra", value: "TwoSierra" },
{ label: "SierraLite", value: "SierraLite" },
];
image_submenu.createSelect("-- select dithering --", dithering_options, (value) => {
if (value == "None") {
window.seven.dither = null;
return;
}
window.seven.dither = value;
});
image_submenu.createButton("Start", () => {
(0,_modules__WEBPACK_IMPORTED_MODULE_0__.botImage)(current_image_x, current_image_y, current_image);
});
image_submenu.createButton("Stop", () => {
_modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
});
const protecting_submenu = TAB.createSubmenu("Protecting");
protecting_submenu.createToggle("Protect", false, (state) => {
window.seven.protect = state;
});
protecting_submenu.createToggle("Agressive protection", false, (state) => {
window.seven.agressive_protection = state;
});
const square_submenu = TAB.createSubmenu("Squares");
let square_x1;
let square_y1;
let square_x2;
let square_y2;
square_submenu.createText("Select color as usual");
square_submenu.createInput('X1', "number", text => {
square_x1 = parseInt(text);
});
square_submenu.createInput('Y1', "number", text => {
square_y1 = parseInt(text);
});
square_submenu.createInput('X2', "number", text => {
square_x2 = parseInt(text);
});
square_submenu.createInput('Y2', "number", text => {
square_y2 = parseInt(text);
});
square_submenu.createButton("Start", () => {
(0,_modules__WEBPACK_IMPORTED_MODULE_0__.BotSquare)(square_x1, square_y1, square_x2, square_y2, (0,_modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__["default"])()[2]);
});
square_submenu.createButton("Stop", () => {
_modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
});
});
/***/ }),
/***/ "./src/GUI/TAB_Settings.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _GUICore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/GUI/GUICore.ts");
/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./package.json");
$(function () {
const gui = _GUICore__WEBPACK_IMPORTED_MODULE_1__.MainGUI.instance;
const tab = gui.getTab("settings");
const bot_settings = tab.createSubmenu("bot settings");
bot_settings.createText("pixel speed default is 21");
const pixelspeed_input = bot_settings.createInput(`pixel speed`, "number", (number) => {
number = parseInt(number);
if (number < 16.5)
number = 16.5;
window.seven.pixelspeed = number;
});
const sort_options = [
{ label: "none", value: "none" },
{ label: "random", value: "rand" },
{ label: "colors", value: "colors" },
{ label: "vertical", value: "vertical" },
{ label: "horizontal", value: "horizontal" },
{ label: "circle", value: "circle" },
];
bot_settings.createSelect('-- select sorting --', sort_options, value => {
window.seven.order = value;
});
bot_settings.createColor("GUI Color Picker", "", color => {
$(":root").css("--gui-main-color", color);
});
tab.createSubmenu("version").createText("7Placer version " + _package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE);
});
/***/ }),
/***/ "./src/GUI/dragElement.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ dragElement)
/* harmony export */ });
// W3SCHOOLS
function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById(elmnt.id + "header")) {
// if present, the header is where you move the DIV from:
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
}
else {
// otherwise, move the DIV from anywhere inside the DIV:
elmnt.onmousedown = dragMouseDown;
}
function dragMouseDown(e) {
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}
function closeDragElement() {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
}
/***/ }),
/***/ "./src/GUI/drop.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ createDropArea: () => (/* binding */ createDropArea)
/* harmony export */ });
/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/style.ts");
/* harmony import */ var _modules_defaultModules_ImageTools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/ImageTools.ts");
/* harmony import */ var _modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
function createDropArea() {
const dropobject = $('<div>').text('Drop Image').css(_style__WEBPACK_IMPORTED_MODULE_0__.drop);
const [x, y] = (0,_modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_2__["default"])();
$('body').append(dropobject);
dropobject.on("click", function () {
dropobject.remove();
});
dropobject.on("drop", async function (event) {
event.preventDefault();
event.stopPropagation();
const image = event.originalEvent.dataTransfer.files[0];
dropobject.remove();
await (0,_modules_defaultModules_ImageTools__WEBPACK_IMPORTED_MODULE_1__.botImage)(x, y, image);
// console.log(image)
}).on('dragover', false);
}
/***/ }),
/***/ "./src/GUI/style.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ canvascss: () => (/* binding */ canvascss),
/* harmony export */ drop: () => (/* binding */ drop),
/* harmony export */ trackercss: () => (/* binding */ trackercss)
/* harmony export */ });
const trackercss = {
top: '0px',
left: '0px',
borderColor: 'rgb(138,43,226)',
color: 'rgb(138,43,226)',
backgroundColor: 'black',
opacity: '60%',
display: 'none',
transition: 'all 0.06s ease-in-out',
pointerEvents: 'none'
};
// design by 0vc4
const drop = {
width: 'calc(100% - 2em)',
height: 'calc(100% - 2em)',
position: 'fixed',
left: '0px',
top: '0px',
backgroundColor: 'rgba(0, 0, 0, 0.533)',
zIndex: '9999-',
display: 'flex',
color: 'white',
fontSize: '48pt',
justifyContent: 'center',
alignItems: 'center',
border: '3px white dashed',
borderRadius: '18px',
margin: '1em',
};
const canvascss = {
position: 'absolute',
pointerEvents: 'none',
left: '0px',
top: '0px',
imageRendering: 'pixelated',
opacity: '50%',
animation: 'blink 3s ease-out infinite'
};
const blink = document.createElement("style");
blink.type = "text/css";
blink.innerText = `
@keyframes blink {
0% { opacity: .30; }
50% { opacity: .10; }
100% { opacity: .30; }
}`;
document.head.appendChild(blink);
/***/ }),
/***/ "./src/auth/Auth.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Auth)
/* harmony export */ });
class Auth {
constructor(authObj) {
this.authKey = authObj.authKey;
this.authId = authObj.authId;
this.authToken = authObj.authToken;
}
}
/***/ }),
/***/ "./src/auth/util/commands.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ deleteAccount: () => (/* binding */ deleteAccount),
/* harmony export */ public_commands: () => (/* binding */ public_commands)
/* harmony export */ });
/* harmony import */ var _Auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/auth/Auth.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/requests/get-painting.ts");
/* harmony import */ var _bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/bot/util/websocket.ts");
var LocalAccounts = new Map();
const public_commands = {
saveAuth,
getAuth,
saveAccount,
getAccounts,
deleteAccount,
connect,
connectAll,
disconnect,
disconnectAll,
};
// save changes in localstorage
function storagePush() {
const obj = Object.fromEntries(LocalAccounts);
localStorage.setItem('LocalAccounts', JSON.stringify(obj));
}
// restore localstorage to localaccounts
function storageGet() {
const storedAccounts = localStorage.getItem('LocalAccounts');
if (storedAccounts) {
const parsedAccounts = JSON.parse(storedAccounts);
LocalAccounts = new Map(Object.entries(parsedAccounts));
}
else
LocalAccounts = new Map();
}
async function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
// saves from params
function saveAuth(username, authId, authKey, authToken, print = true) {
if (!authId || !authKey || !authToken) {
console.log('[7p] saveAuth usage: saveAuth(username, authId, authKey, authToken)');
return;
}
const account = { authId, authKey, authToken };
LocalAccounts.set(username, account);
storagePush();
if (print)
console.log('Auth saved. Saved list: ', LocalAccounts);
}
// returns client's auth
async function getAuth(print = true) {
const cookieStore = window.cookieStore;
const authToken = await cookieStore.get("authToken");
const authKey = await cookieStore.get("authKey");
const authId = await cookieStore.get("authId");
if (authToken == null || authKey == null || authId == null) {
console.log('[7p] Please login first!');
return;
}
if (print)
console.log(`authId = "${authId.value}", authKey = "${authKey.value}", authToken = "${authToken.value}"`);
return { authToken: authToken.value, authKey: authKey.value, authId: authId.value };
}
// saves auth from client cookies
async function saveAccount() {
storageGet();
const AuthObj = await getAuth(false);
const userinfo = await (0,_requests_get_painting__WEBPACK_IMPORTED_MODULE_1__["default"])(AuthObj.authId, AuthObj.authKey, AuthObj.authToken);
saveAuth(userinfo.user.name, AuthObj.authId, AuthObj.authKey, AuthObj.authToken, false);
console.log('Auth saved. Saved list: ', LocalAccounts);
}
// logs saved auths
function getAccounts() {
storageGet();
if (!LocalAccounts || LocalAccounts.size == 0) {
console.log('No accounts found');
return;
}
console.log(`Found ${LocalAccounts.size} accounts`);
console.log(LocalAccounts);
}
// deletes auths
function deleteAccount(identifier) {
if (identifier == null) {
console.log('deleteAccount usage: deleteAccount(user or index)');
return;
}
storageGet();
if (typeof identifier == 'string') {
if (identifier == 'all') {
LocalAccounts.forEach((value, key) => {
LocalAccounts.delete(key);
});
return;
}
if (!LocalAccounts.has(identifier)) {
console.log(`[7p] Error deleting: No account with name ${identifier}`);
return;
}
LocalAccounts.delete(identifier);
console.log(`[7p] Deleted account ${identifier}.`);
console.log(LocalAccounts);
}
if (typeof identifier == 'number') {
const keys = Array.from(LocalAccounts.keys());
if (identifier > keys.length) {
console.log(`[7p] Error deleting: No account with index ${identifier}`);
return;
}
LocalAccounts.delete(keys[identifier]);
console.log(`Deleted account ${identifier}`);
console.log(LocalAccounts);
}
storagePush();
}
async function connect(username) {
storageGet();
const account = LocalAccounts.get(username);
const seven = window.seven;
if (!username) {
console.log('[7p] Missing bot username, connect("username")');
return;
}
if (!account) {
console.log(`[7p] No account found with username ${username}`);
return;
}
if (seven.bots.has(username)) {
console.log(`[7p] Account ${username} is already connected.`);
return;
}
const auth = new _Auth__WEBPACK_IMPORTED_MODULE_3__["default"](account);
(0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__.createBot)(auth, username);
}
async function connectAll() {
storageGet();
const seven = window.seven;
for (const [username, account] of LocalAccounts) {
if (seven.bots.has(username)) {
console.log(`[7p] Account ${username} is already connected.`);
continue;
}
const auth = new _Auth__WEBPACK_IMPORTED_MODULE_3__["default"](account);
(0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__.createBot)(auth, username);
await delay(500);
}
}
function disconnect(username) {
const seven = window.seven;
const bot = seven.bots.get(username);
if (!username) {
console.log('[7p] disconnect requires a username, disconnect("username")');
return;
}
if (!bot) {
console.log(`[7p] No bot connected with username ${username}`);
return;
}
;
bot.kill();
}
function disconnectAll() {
const seven = window.seven;
if (seven.bots.size == 5) {
console.log('[7p] No bots connected.');
return;
}
;
seven.bots.forEach((bot, name) => {
if (name == "Client") {
return;
}
;
bot.kill();
});
}
/***/ }),
/***/ "./src/bot/Bot.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Bot: () => (/* binding */ Bot),
/* harmony export */ Client: () => (/* binding */ Client),
/* harmony export */ WSBot: () => (/* binding */ WSBot)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _GUI_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/GUI/style.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/requests/get-painting.ts");
/* harmony import */ var _util_MessageHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./src/bot/util/MessageHandler.ts");
/* harmony import */ var _modules_defaultModules_Protect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/modules/defaultModules/Protect.ts");
/* harmony import */ var _auth_util_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./src/auth/util/commands.ts");
class Bot {
constructor(websocket) {
this.trackeriters = 0;
this.lastplace = performance.now();
this._ws = websocket;
this.handler = new _util_MessageHandler__WEBPACK_IMPORTED_MODULE_6__.MessageHandler(this, this.ws);
}
;
emit(event, params) {
this.ws.send(`42["${event}",${params}]`);
}
;
kill() {
const seven = window.seven;
seven.bots.delete(this.username);
if (this._ws.readyState == 1) {
this._ws.close();
}
;
}
;
async placePixel(x, y, color, client = false, tracker = true) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const canvascolor = canvas.getColor(x, y);
const seven = window.seven;
if (canvascolor == color || canvascolor == 200) {
return true;
}
;
while (performance.now() - this.lastplace < seven.pixelspeed) {
await new Promise(resolve => setTimeout(resolve, 0));
}
;
console.log(performance.now() - this.lastplace);
this.emit('p', `[${x},${y},${color},1]`);
this.lastplace = performance.now();
if (tracker && this.trackeriters >= 6) {
$(this.tracker).css({ top: y, left: x, display: 'block' });
this.trackeriters = 0;
}
;
this.trackeriters += 1;
return true;
}
;
static async findAvailableBot() {
const seven = window.seven;
const bots = seven.bots;
var tick = 0;
while (true) {
for (const [_, bot] of bots) {
if (Date.now() - bot.lastplace >= seven.pixelspeed) {
// console.log(`[7p] found available bot: ${bot.username}, ${ Date.now() - bot.lastplace }`);
return bot;
}
;
}
;
tick += 1;
if (tick == seven.tickspeed) {
tick = 0;
await new Promise(resolve => setTimeout(resolve, 0));
}
;
}
;
}
createTracker() {
const tracker = $('<div class="track" id="bottracker">').text(`[7P] ${this.username}`).css(_GUI_style__WEBPACK_IMPORTED_MODULE_2__.trackercss);
$('#canvas').ready(function () {
// console.log(`[7p] created tracker: ${name}`)
$('#painting-move').append(tracker);
});
return tracker;
}
;
get ws() {
return this._ws;
}
;
}
class WSBot extends Bot {
constructor(auth, username, websocket) {
super(websocket);
this._auth = auth;
this.username = username;
this.startBot();
}
async startBot() {
this.generalinfo = await (0,_requests_get_painting__WEBPACK_IMPORTED_MODULE_3__["default"])(this.auth.authId, this.auth.authKey, this.auth.authToken);
this.tracker = this.createTracker();
this.internalListeners();
}
get auth() {
return this._auth;
}
;
internalListeners() {
this.handler.on('server_time', (data) => {
this.paliveServerTime = data[1]; // stores servertime for palive
});
// this.handler.on('ping.alive', () => {
// const hash = getPalive(this.paliveServerTime, this.botid);
// console.log('[7p]', this.username, ': pong =', hash, this.botid)
// this.emit('pong.alive', `"${hash}"`);
// })
this.handler.on('throw.error', (data) => {
if (data[1] == 49) {
console.log(`[7p] [Bot ${this.username}] Error (${data[1]}): This auth is not valid! Deleting account from saved accounts...`);
(0,_auth_util_commands__WEBPACK_IMPORTED_MODULE_5__.deleteAccount)(this.username);
this.kill();
return;
}
else if (data[1] == 16) {
this.kill();
}
;
console.log(`[7p] [Bot ${this.username}] Pixelplace WS error: ${data[1]}`);
});
this.handler.on('canvas', () => {
const seven = window.seven;
console.log(`[7p] Succesfully connected to bot ${this.username}`);
seven.bots.set(this.username, this);
});
this.handler.on(2, () => {
this.ws.send('3');
});
this.handler.on('start', () => {
this.ws.send('40');
});
this.handler.on('init', () => {
this.emit('init', `{"authKey":"${this.auth.authKey}","authToken":"${this.auth.authToken}","authId":"${this.auth.authId}","boardId":${_canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.ID}}`);
});
}
}
class Client extends Bot {
constructor(websocket) {
super(websocket);
Client.instance = this;
this.start();
}
;
static get Client() {
return Client.instance;
}
;
start() {
const seven = window.seven;
this.username = 'Client';
this.tracker = this.createTracker();
this.internalListeners();
seven.bots.set(this.username, this);
}
;
internalListeners() {
// Bot canvas array updater
this.handler.on('p', (data) => {
for (const pixel of data[1]) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const x = pixel[0];
const y = pixel[1];
const color = pixel[2];
const id = pixel[4];
canvas.updatePixel(x, y, color);
_modules_defaultModules_Protect__WEBPACK_IMPORTED_MODULE_4__["default"].checkPixel(x, y, color);
}
});
// Rewrites some pixels after loading (I think because of cache lag)
this.handler.on("canvas", (data) => {
for (const pixel of data[1]) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const x = pixel[0];
const y = pixel[1];
const color = pixel[2];
canvas.updatePixel(x, y, color);
}
;
});
}
;
}
;
/***/ }),
/***/ "./src/bot/util/MessageHandler.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ MessageHandler: () => (/* binding */ MessageHandler)
/* harmony export */ });
class MessageHandler {
constructor(bot, websocket) {
this._listeners = new Map();
this._bot = bot;
this._websocket = websocket;
this._startHandler();
}
;
on(message_type, callback) {
if (!this._listeners.has(message_type))
this._listeners.set(message_type, []);
this._listeners.get(message_type).push(callback);
}
;
cancel(func) {
this._listeners.forEach((value) => {
value.filter((listener) => {
listener != func;
});
});
}
;
_startHandler() {
this._websocket.addEventListener('message', event => this._handleMessage(event));
}
_handleMessage(message) {
message = message.data;
if (message.startsWith('42')) {
message = JSON.parse(message.slice(2));
const message_type = message[0];
this._fire(message_type, message);
return;
}
if (message.startsWith('0')) {
this._fire('start');
return;
}
if (message.startsWith('40')) {
this._fire('init');
}
this._fire(message);
}
;
_fire(message_type, data) {
if (!this._listeners.has(message_type))
return;
this._listeners.get(message_type).forEach((listener) => {
listener(data);
});
}
;
}
;
/***/ }),
/***/ "./src/bot/util/palive.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ getPalive),
/* harmony export */ getTDelay: () => (/* binding */ getTDelay)
/* harmony export */ });
// credits to symmetry
function randomString(charList, num) {
return Array.from({ length: num }, () => charList.charAt(Math.floor(Math.random() * charList.length))).join('');
}
function randomString1(num) {
const charList = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
return randomString(charList, num);
}
function randomString2(num) {
const charList = 'gmbonjklezcfxta1234567890GMBONJKLEZCFXTA';
return randomString(charList, num);
}
function randInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
const paliveCharmap = {
"0": "g",
"1": "n",
"2": "b",
"3": "r",
"4": "z",
"5": "s",
"6": "l",
"7": "x",
"8": "i",
"9": "o",
};
function getPalive(serverTime, userId) {
const tDelay = getTDelay(serverTime);
const sequenceLengths = [6, 5, 9, 4, 5, 3, 6, 6, 3];
const currentTimestamp = Math.floor(Date.now() / 1000) + tDelay - 5400;
const timestampString = currentTimestamp.toString();
const timestampCharacters = timestampString.split('');
let result = '';
for (let i = 0; i < sequenceLengths.length; i++) {
const sequenceNumber = sequenceLengths[i];
result += randInt(0, 1) == 1 ? randomString2(sequenceNumber) : randomString1(sequenceNumber);
const letter = paliveCharmap[parseInt(timestampCharacters[i])];
result += randInt(0, 1) == 0 ? letter.toUpperCase() : letter;
}
result += userId.toString().substring(0, 1) + (randInt(0, 1) == 1 ? randomString2(randInt(4, 20)) : randomString1(randInt(4, 25)));
return result + "0=";
}
function getTDelay(serverTime) {
const currentTime = new Date().getTime() / 1e3;
return Math.floor(serverTime - currentTime);
}
/***/ }),
/***/ "./src/bot/util/websocket.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ createBot: () => (/* binding */ createBot)
/* harmony export */ });
/* harmony import */ var _Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
// client
function hookClient() {
const unmodifiedWS = window.WebSocket;
window.WebSocket = function (url, protocols) {
const socket = new unmodifiedWS(url, protocols);
socket.addEventListener("open", () => new _Bot__WEBPACK_IMPORTED_MODULE_0__.Client(socket));
socket.addEventListener("close", hookClient);
// client.handler = new MessageHandler(client, socket)
return socket;
};
}
hookClient();
// multibot
async function createBot(auth, username) {
console.log(`[7p] Attempting to connect account ${username}`);
const socket = new WebSocket("wss://pixelplace.io/socket.io/?EIO=4&transport=websocket");
const bot = new _Bot__WEBPACK_IMPORTED_MODULE_0__.WSBot(auth, username, socket);
socket.addEventListener("close", () => { bot.kill(); });
}
/***/ }),
/***/ "./src/canvas/Canvas.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Canvas: () => (/* binding */ Canvas),
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _GUI_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/style.ts");
/* harmony import */ var _modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/index.ts");
/* harmony import */ var _util_canvasloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/canvas/util/canvasloader.ts");
class Canvas {
constructor() {
this._ID = this.ParseID();
this._isProcessed = false;
this._customCanvas = this.newPreviewCanvas();
this._colors = this.getPalette();
}
static get instance() {
if (!Canvas._instance) {
Canvas._instance = new Canvas;
(0,_util_canvasloader__WEBPACK_IMPORTED_MODULE_2__.processColors)();
}
return Canvas._instance;
}
newPreviewCanvas() {
const canvas = $(`<canvas width="2500" height="2088">`).css(_GUI_style__WEBPACK_IMPORTED_MODULE_0__.canvascss);
$('#canvas').ready(function () {
$('#painting-move').append(canvas);
});
const ctx = canvas[0].getContext("2d");
return ctx;
}
ParseID() {
return parseInt(window.location.href.split("/").slice(-1)[0].split("-")[0]);
}
get previewCanvas() {
return this._customCanvas;
}
get canvasArray() {
return this._canvasArray;
}
get isProcessed() {
return this._isProcessed;
}
set isProcessed(bool) {
this._isProcessed = bool;
}
get ID() {
return this._ID;
}
get colors() {
return this._colors;
}
set canvasArray(array) {
this._canvasArray = array;
this.isProcessed = true;
}
getColor(x, y) {
try {
return this.canvasArray[x][y];
}
catch {
return 200;
}
;
}
updatePixel(x, y, color) {
if (!this._isProcessed)
return;
this.canvasArray[x][y] = color;
// console.log(this.getColor(x, y), "->", color)
}
getPalette() {
const palette_buttons = document.querySelectorAll("#palette-buttons a");
let unsorted_array = [];
palette_buttons.forEach((color) => {
let id = color.getAttribute('data-id');
let colorhex = color.getAttribute('title');
unsorted_array.push({ color: colorhex, id: parseInt(id) });
});
unsorted_array.sort((a, b) => { return a.id - b.id; });
let result = [];
unsorted_array.forEach((colorobj) => {
result.push((0,_modules__WEBPACK_IMPORTED_MODULE_1__.hex2rgb)(colorobj.color));
});
return result;
}
;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Canvas);
/***/ }),
/***/ "./src/canvas/util/canvasloader.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ processColors: () => (/* binding */ processColors),
/* harmony export */ processWater: () => (/* binding */ processWater)
/* harmony export */ });
/* harmony import */ var _Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
async function processWater() {
const pixelplace_canvas = document.getElementById('canvas');
var waterArray = Array.from({ length: pixelplace_canvas.width }, () => Array.from({ length: pixelplace_canvas.height }, () => 1));
var image = await fetch('https://pixelplace.io/canvas/' + _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.ID + 'p.png?t200000=' + Date.now());
if (!image.ok) {
return waterArray;
}
const blob = await image.blob();
const bitmap = await createImageBitmap(blob);
const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
const context = canvas.getContext('2d', { "willReadFrequently": true });
context.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height);
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
return new Promise((resolve) => {
if (bitmap.width == 1 && bitmap.height == 1) { // custom canvases ?
resolve(waterArray);
}
for (let y = 0; y < canvas.height; y++) {
for (let x = 0; x < canvas.width; x++) {
const index = (y * imageData.width + x) * 4;
var r = imageData.data[index];
var g = imageData.data[index + 1];
var b = imageData.data[index + 2];
if (r == 204 && g == 204 && b == 204) {
waterArray[x][y] = 200;
}
}
}
console.log(waterArray);
resolve(waterArray);
});
}
async function processColors() {
const start_total_time = performance.now();
const canvas = _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const pixelplace_canvas = document.getElementById('canvas');
const ctx = pixelplace_canvas.getContext('2d', { "willReadFrequently": true });
const imageData = ctx.getImageData(0, 0, pixelplace_canvas.width, pixelplace_canvas.height);
const pixelData = imageData.data;
const start_water_time = performance.now();
const waterArray = await processWater();
const final_water_time = performance.now() - start_water_time;
var CanvasArray = Array.from({ length: pixelplace_canvas.width }, () => Array.from({ length: pixelplace_canvas.height }, () => 1));
const start_color_time = performance.now();
if (waterArray.length > 1) {
CanvasArray = waterArray;
}
for (let y = 0; y < pixelplace_canvas.height; y++) {
for (let x = 0; x < pixelplace_canvas.width; x++) {
if (CanvasArray[x][y] == 200) {
continue;
}
const pixelIndex = (y * pixelplace_canvas.width + x) * 4;
const r = pixelData[pixelIndex];
const g = pixelData[pixelIndex + 1];
const b = pixelData[pixelIndex + 2];
const colorIndex = canvas.colors.findIndex(color => color[0] === r && color[1] === g && color[2] === b);
CanvasArray[x][y] = colorIndex;
}
}
console.log(CanvasArray);
_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.canvasArray = CanvasArray;
// Logging
const final_total_time = performance.now() - start_total_time;
const final_colors_time = performance.now() - start_color_time;
console.log(`[7p PROCESSING] Total Time: ${final_total_time}ms, Colors Time: ${final_colors_time}ms, Water Time: ${final_water_time}ms`);
Toastify({
text: `Canvas loaded!`,
style: {
background: "#1a1a1a",
border: "solid rgb(0, 255, 81)"
},
}).showToast();
}
/***/ }),
/***/ "./src/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./package.json");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _util_ExternalLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/util/ExternalLoader.ts");
// @ts-ignore (GLOBAL IMPORT)
const context = __webpack_require__("./src sync recursive ^(?%21.*global\\.d).+");
context.keys().forEach(context);
Object.defineProperty(window.console, 'log', {
configurable: false,
enumerable: true,
writable: false,
value: console.log
});
console.log(`%c7Placer Loaded! Version: ${_package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE}`, 'color: chartreuse; font-size: 60px; font-style: italic;');
(0,_util_ExternalLoader__WEBPACK_IMPORTED_MODULE_2__.loadCss)('https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css');
const intervalId = setInterval(() => {
if (document.getElementById('canvas')) {
clearInterval(intervalId);
Toastify({
text: `7Placer ${_package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE} Loaded! Loading canvas...`,
style: {
background: "#1a1a1a",
border: "solid var(--gui-main-color)"
},
callback: () => {
Toastify({
text: `Click me to join the discord.`,
destination: "https://discord.gg/3fXfQp7Rms",
newWindow: true,
style: {
background: "#1a1a1a",
border: "solid var(--gui-main-color)"
},
}).showToast();
}
}).showToast();
_canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
}
}, 100);
/***/ }),
/***/ "./src/modules/defaultModules/ImageTools.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ ImageToPixels: () => (/* binding */ ImageToPixels),
/* harmony export */ botImage: () => (/* binding */ botImage),
/* harmony export */ hex2rgb: () => (/* binding */ hex2rgb)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _Sorting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/Sorting.ts");
function hex2rgb(hex) {
const r = parseInt(hex.slice(1, 3), 16);
const g = parseInt(hex.slice(3, 5), 16);
const b = parseInt(hex.slice(5, 7), 16);
return [r, g, b];
}
// function getColorDistance(c1: {r: number, g: number, b: number}, c2: [r: number, g: number, b: number]) {
// return (c1.r - c2[0]) ** 2 + (c1.g - c2[1]) ** 2 + (c1.b - c2[2]) ** 2;
// }
// function findClosestColor(color: {r: number, g: number, b: number}, palette: [r: number, g: number, b:number][]) {
// let minDistance = Infinity;
// let colorNumber: number
// let index = 0
// for (const palette_color of palette) {
// const distance = getColorDistance(color, palette_color);
// if (distance < minDistance) {
// minDistance = distance;
// colorNumber = index
// }
// index += 1
// }
// return colorNumber;
// }
function previewCanvasImage(x, y, image) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const ctx = canvas.previewCanvas;
const img = new Image();
img.onload = function () {
ctx.drawImage(img, x, y);
};
img.src = URL.createObjectURL(image);
}
const workerCode = `
function getColorDistance(c1, c2) {
return (c1.r - c2[0]) ** 2 + (c1.g - c2[1]) ** 2 + (c1.b - c2[2]) ** 2;
}
function findClosestColor(color, palette) {
let minDistance = Infinity;
let colorNumber
let index = 0
for (const palette_color of palette) {
const distance = getColorDistance(color, palette_color);
if (distance < minDistance) {
minDistance = distance;
colorNumber = index
}
index += 1
}
return colorNumber;
}
self.onmessage = function (e) { // {imageData: ImageData, palette: [r, g, b][], y_division_last: number, x_division_last: number}
const pixelData = e.data.imageData.data
const result = []
for (let y = 0; y < e.data.y_division_last; y++) {
for (let x = 0; x < e.data.x_division_last; x++) {
const pixelIndex = (y * e.data.imageData.width + x) * 4;
const r = pixelData[pixelIndex];
const g = pixelData[pixelIndex + 1];
const b = pixelData[pixelIndex + 2];
const a = pixelData[pixelIndex + 3];
if (a < 1) {
continue; // ignore transparent pixels
};
const color = findClosestColor({r, g, b}, e.data.palette);
result.push({x, y, color});
};
}
self.postMessage(result);
};
`;
const blob = new Blob([workerCode], { type: 'application/javascript' });
const blobUrl = URL.createObjectURL(blob);
function imageData2array(imageData, thread_amount, palette) {
const t0 = performance.now();
return new Promise(resolve => {
const workers_global_result = [];
let workers = 0;
let workers_done = 0;
for (let divison_y = 0; divison_y < imageData.height; divison_y += (imageData.height / thread_amount)) {
const y_division_last = divison_y + (imageData.height / thread_amount);
for (let division_x = 0; division_x < imageData.width; division_x += (imageData.width / thread_amount)) {
const x_division_last = division_x + (imageData.width / thread_amount);
const worker = new Worker(blobUrl);
workers += 1;
worker.postMessage({ imageData: imageData, palette: palette, y_division_last: y_division_last, x_division_last: x_division_last });
worker.onmessage = function (e) {
const worker_pixels = e.data;
worker.terminate();
workers_done += 1;
console.log(workers_done);
worker_pixels.forEach((pixel) => {
workers_global_result.push(pixel);
});
if (workers == workers_done) {
console.log(`ImageData processed in ${performance.now() - t0} ms`);
resolve(workers_global_result);
}
};
}
}
})
.then((final_result) => {
return final_result;
});
}
async function ImageToPixels(image, dither, palette) {
const processing_toast = Toastify({
text: `Processing image...`,
duration: 100000,
style: {
background: "#1a1a1a",
border: "solid var(--gui-main-color)"
},
}).showToast();
const canvas = new OffscreenCanvas(image.width, image.height);
const ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0, image.width, image.height);
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
if (dither) {
const quant = new RgbQuant({ palette: _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.colors });
quant.sample(imageData);
quant.reduce(imageData, 1, dither);
}
const array = await imageData2array(imageData, 2, palette || _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.colors);
processing_toast.hideToast();
Toastify({
text: `Image processed!`,
style: {
background: "#1a1a1a",
border: "solid rgb(0, 255, 81)"
},
}).showToast();
return array;
}
async function botImage(x, y, image) {
if (!x || !y || !image)
return;
const seven = window.seven;
const bitmap = await createImageBitmap(image);
let processed = await ImageToPixels(bitmap, window.seven.dither);
previewCanvasImage(x, y, image);
processed = await (0,_Sorting__WEBPACK_IMPORTED_MODULE_3__["default"])(processed, seven.order);
processed.forEach((pixel) => {
pixel.x += x;
pixel.y += y;
});
_Queue__WEBPACK_IMPORTED_MODULE_2__["default"].bulkAdd(processed, true);
}
/***/ }),
/***/ "./src/modules/defaultModules/Protect.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
class Protector {
protect(x, y, color) {
Protector.protected.push({ x: x, y: y, color: color });
}
static clear() {
Protector.protected = [];
}
static checkPixel(x, y, color) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
if (Protector.protected.length == 0) {
return;
}
function isInsideProtected(pixel) {
if (pixel.x == x && pixel.y == y) {
return true;
}
return false;
}
function isSameColor(pixel) {
const canvasColor = canvas.getColor(x, y);
if (canvasColor == pixel.color) {
return true;
}
return false;
}
Protector.protected.forEach((pixel) => {
if (isInsideProtected(pixel) && !isSameColor(pixel)) {
_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].add(x, y, pixel.color, false, window.seven.agressive_protection);
}
});
}
}
Protector.protected = [];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Protector);
/***/ }),
/***/ "./src/modules/defaultModules/Queue.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Queue)
/* harmony export */ });
/* harmony import */ var _bot_Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _Protect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/Protect.ts");
class Queue {
constructor() {
Queue.performance = performance.now();
}
static add(x, y, color, protection, atStart = false, client = false) {
const seven = window.seven;
const pixel = { x: x, y: y, color: color, protected: protection, client: client };
if (atStart)
seven.queue.unshift(pixel);
else {
seven.queue.push(pixel);
}
;
if (seven.queue.length == 1)
Queue.start();
}
;
static bulkAdd(pixel_array, protection, atStart = false, client = false) {
const seven = window.seven;
pixel_array.forEach(pixel => {
pixel.protected = protection;
pixel.client = client;
});
if (!atStart) {
seven.queue = seven.queue.concat(pixel_array);
}
else {
seven.queue.unshift(...pixel_array);
}
if (seven.queue.length == pixel_array.length)
Queue.start();
}
;
static clear() {
const seven = window.seven;
// console.log('Queue cleared: ', seven.queue);
seven.queue = [];
}
;
static async start() {
const seven = window.seven;
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
const protector = new _Protect__WEBPACK_IMPORTED_MODULE_3__["default"];
if (!canvas.isProcessed) {
Toastify({
text: `Canvas has not been processed yet.`,
style: {
background: "#1a1a1a",
border: "solid rgb(255, 0, 0)",
},
}).showToast();
console.log('[7p] Error starting queue: Canvas has not been processed yet.');
Queue.stop();
return;
}
seven.inprogress = true;
let tick = 0;
while (seven.inprogress) {
// console.log(performance.now() - Queue.performance);
Queue.performance = performance.now();
const pixel = seven.queue[0];
let bot;
if (pixel.client) {
bot = _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Client.instance;
}
else {
bot = await _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Bot.findAvailableBot();
}
;
// Anti lag when skipping (fix it pls)
const canvas_color = canvas.getColor(pixel.x, pixel.y);
if (pixel.color == canvas_color) {
tick += 1;
}
else
tick = 0;
if (tick == 100) {
await new Promise(resolve => setTimeout(resolve, 0));
tick = 0;
}
;
await bot.placePixel(pixel.x, pixel.y, pixel.color);
var indexOfRemoval = seven.queue.indexOf(pixel);
seven.queue.splice(indexOfRemoval, 1);
if (pixel.protected && seven.protect) {
protector.protect(pixel.x, pixel.y, pixel.color);
}
if (seven.queue.length == 0) {
seven.inprogress = false;
console.log('[7p] Queue done.');
}
;
}
;
}
;
static stop() {
const seven = window.seven;
seven.inprogress = false;
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
canvas.previewCanvas.clearRect(0, 0, 3000, 3000);
_Protect__WEBPACK_IMPORTED_MODULE_3__["default"].clear();
Queue.clear();
}
;
}
;
/***/ }),
/***/ "./src/modules/defaultModules/Sorting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ sort)
/* harmony export */ });
const workerCode = `
self.onmessage = function (e) { // {array: {x: number, y: number, color: number}[], order: string}
let array = e.data.array
switch (e.data.order) {
case 'none':
break
case 'rand':
array.sort(() => Math.random() - 0.5);
break
case 'colors':
array.sort((a, b) => a.color - b.color);
break
case 'vertical':
array.sort((a, b) => a.x - b.x);
break
case 'horizontal':
array.sort((a, b) => a.y - b.y);
break
default:
case 'circle':
const CX = Math.floor((array[0].x + array[array.length - 1].x) / 2);
const CY = Math.floor((array[0].y + array[array.length - 1].y) / 2);
array.sort((a, b) => {
const distanceA = Math.sqrt((a.x - CX) ** 2 + (a.y - CY) ** 2);
const distanceB = Math.sqrt((b.x - CX) ** 2 + (b.y - CY) ** 2);
return distanceA - distanceB;
});
}
self.postMessage(array)
};
`;
const blob = new Blob([workerCode], { type: 'application/javascript' });
const blobUrl = URL.createObjectURL(blob);
async function sort(array, order) {
const pixel_array = await new Promise(resolve => {
let t0 = performance.now();
let sorting_toast = Toastify({
text: `Sorting...`,
duration: 100000,
style: {
background: "#1a1a1a",
border: "solid var(--gui-main-color)"
},
}).showToast();
const worker = new Worker(blobUrl);
worker.postMessage({ array: array, order: order });
worker.onmessage = function (e) {
resolve(e.data);
console.log(`Sorted in ${performance.now() - t0}`);
sorting_toast.hideToast();
clearTimeout(long_sort_timeout);
};
let long_sort_timeout = setTimeout(() => {
Toastify({
text: `If sorting is taking too long consider using "sort: none"`,
duration: 10000,
style: {
background: "#1a1a1a",
border: "solid rgb(255, 251, 0)"
},
}).showToast();
}, 7000);
});
return pixel_array;
}
/***/ }),
/***/ "./src/modules/defaultModules/SquareMaker.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BotSquare: () => (/* binding */ BotSquare)
/* harmony export */ });
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _Sorting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Sorting.ts");
async function BotSquare(x1, y1, x2, y2, color) {
if (!x1 || !y1 || !x2 || !y2 || color === undefined)
return;
const seven = window.seven;
var result = [];
if (x2 < x1)
[x1, x2] = [x2, x1];
if (y2 < y1)
[y1, y2] = [y2, y1];
for (let x = x1; x <= x2; x++) {
for (let y = y1; y <= y2; y++) {
result.push({ x, y, color });
}
}
result = await (0,_Sorting__WEBPACK_IMPORTED_MODULE_1__["default"])(result, seven.order);
result.forEach((pixel) => {
_Queue__WEBPACK_IMPORTED_MODULE_0__["default"].add(pixel.x, pixel.y, pixel.color, true);
});
Toastify({
text: `Square from ${x1}, ${y1} TO ${x2}, ${y2} with color ID ${color}`,
style: {
background: "#1a1a1a",
border: "solid var(--gui-main-color)"
},
}).showToast();
}
/***/ }),
/***/ "./src/modules/defaultModules/defaultKeys.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _GUI_drop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/drop.ts");
/* harmony import */ var _util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _SquareMaker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SquareMaker.ts");
var coord1 = null;
$(document).on('keyup', function (event) {
if ($(':input[type="text"]').is(':focus'))
return; //; prevent with chat open
switch (event.which) {
case (87):
if (!event.altKey)
return;
_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
break;
case (66):
if (!event.altKey)
return;
(0,_GUI_drop__WEBPACK_IMPORTED_MODULE_0__.createDropArea)();
break;
case 88:
const [x, y, color] = (0,_util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__["default"])();
if (coord1 == null) {
coord1 = { x: x, y: y };
return;
}
(0,_SquareMaker__WEBPACK_IMPORTED_MODULE_2__.BotSquare)(coord1.x, coord1.y, x, y, color);
coord1 = null;
break;
// add more
}
});
/***/ }),
/***/ "./src/modules/defaultModules/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BotSquare: () => (/* reexport safe */ _SquareMaker__WEBPACK_IMPORTED_MODULE_2__.BotSquare),
/* harmony export */ ImageToPixels: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.ImageToPixels),
/* harmony export */ botImage: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.botImage),
/* harmony export */ hex2rgb: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.hex2rgb)
/* harmony export */ });
/* harmony import */ var _ImageTools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/ImageTools.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _SquareMaker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SquareMaker.ts");
/* harmony import */ var _defaultKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/defaultKeys.ts");
/***/ }),
/***/ "./src/modules/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BotSquare: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.BotSquare),
/* harmony export */ ImageToPixels: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.ImageToPixels),
/* harmony export */ botImage: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.botImage),
/* harmony export */ hex2rgb: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.hex2rgb)
/* harmony export */ });
/* harmony import */ var _defaultModules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/index.ts");
// custom exports
/***/ }),
/***/ "./src/modules/util/getClientMouse.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ getClientMouse)
/* harmony export */ });
function getClientMouse() {
const coordinates = $('#coordinates').text();
const [x, y] = coordinates.split(',').map(coord => parseInt(coord.trim()));
const selectedcolor = $('#palette-buttons a.selected').data('id');
return [x, y, selectedcolor];
}
/***/ }),
/***/ "./src/requests/get-painting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ getPainting)
/* harmony export */ });
/* harmony import */ var _getCookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/requests/getCookie.ts");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
async function getPainting(authId, authKey, authToken) {
const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
const originalAuthId = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authId');
const originalAuthKey = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authKey');
const originalAuthToken = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authToken');
document.cookie = `authId=${authId}; path=/`;
document.cookie = `authKey=${authKey}; path=/`;
document.cookie = `authToken=${authToken}; path=/`;
try {
const response = await fetch(`https://pixelplace.io/api/get-painting.php?id=${canvas.ID}&connected=1`, {
headers: {
'Accept': 'application/json, text/javascript, */*; q=0.01',
},
credentials: 'include'
});
const json = response.json();
return json;
}
finally {
document.cookie = `authId=${originalAuthId}; path=/`;
document.cookie = `authKey=${originalAuthKey}; path=/`;
document.cookie = `authToken=${originalAuthToken}; path=/`;
}
}
/***/ }),
/***/ "./src/requests/getCookie.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ getCookie)
/* harmony export */ });
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2)
return parts.pop().split(';').shift();
}
/***/ }),
/***/ "./src/requests/ping.ts":
/***/ (() => {
// to do
/***/ }),
/***/ "./src/util/ExternalLoader.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ loadCss: () => (/* binding */ loadCss)
/* harmony export */ });
function loadCss(url) {
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = url;
link.media = 'all';
head.appendChild(link);
}
/***/ }),
/***/ "./src/variables.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/auth/util/commands.ts");
window.seven = {
bots: new Map(),
pixelspeed: 21,
queue: [],
inprogress: false,
protect: false,
tickspeed: 1000,
order: 'fromCenter',
multi: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.public_commands,
dither: null,
agressive_protection: false,
};
/***/ }),
/***/ "./src sync recursive ^(?%21.*global\\.d).+":
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var map = {
".": "./src/index.ts",
"./": "./src/index.ts",
"./GUI/GUICore": "./src/GUI/GUICore.ts",
"./GUI/GUICore.ts": "./src/GUI/GUICore.ts",
"./GUI/GUIStyle.css": "./src/GUI/GUIStyle.css",
"./GUI/TAB_Botting": "./src/GUI/TAB_Botting.ts",
"./GUI/TAB_Botting.ts": "./src/GUI/TAB_Botting.ts",
"./GUI/TAB_Settings": "./src/GUI/TAB_Settings.ts",
"./GUI/TAB_Settings.ts": "./src/GUI/TAB_Settings.ts",
"./GUI/dragElement": "./src/GUI/dragElement.ts",
"./GUI/dragElement.ts": "./src/GUI/dragElement.ts",
"./GUI/drop": "./src/GUI/drop.ts",
"./GUI/drop.ts": "./src/GUI/drop.ts",
"./GUI/style": "./src/GUI/style.ts",
"./GUI/style.ts": "./src/GUI/style.ts",
"./auth/Auth": "./src/auth/Auth.ts",
"./auth/Auth.ts": "./src/auth/Auth.ts",
"./auth/util/commands": "./src/auth/util/commands.ts",
"./auth/util/commands.ts": "./src/auth/util/commands.ts",
"./bot/Bot": "./src/bot/Bot.ts",
"./bot/Bot.ts": "./src/bot/Bot.ts",
"./bot/util/MessageHandler": "./src/bot/util/MessageHandler.ts",
"./bot/util/MessageHandler.ts": "./src/bot/util/MessageHandler.ts",
"./bot/util/palive": "./src/bot/util/palive.ts",
"./bot/util/palive.ts": "./src/bot/util/palive.ts",
"./bot/util/websocket": "./src/bot/util/websocket.ts",
"./bot/util/websocket.ts": "./src/bot/util/websocket.ts",
"./canvas/Canvas": "./src/canvas/Canvas.ts",
"./canvas/Canvas.ts": "./src/canvas/Canvas.ts",
"./canvas/util/canvasloader": "./src/canvas/util/canvasloader.ts",
"./canvas/util/canvasloader.ts": "./src/canvas/util/canvasloader.ts",
"./index": "./src/index.ts",
"./index.ts": "./src/index.ts",
"./modules": "./src/modules/index.ts",
"./modules/": "./src/modules/index.ts",
"./modules/defaultModules": "./src/modules/defaultModules/index.ts",
"./modules/defaultModules/": "./src/modules/defaultModules/index.ts",
"./modules/defaultModules/ImageTools": "./src/modules/defaultModules/ImageTools.ts",
"./modules/defaultModules/ImageTools.ts": "./src/modules/defaultModules/ImageTools.ts",
"./modules/defaultModules/Protect": "./src/modules/defaultModules/Protect.ts",
"./modules/defaultModules/Protect.ts": "./src/modules/defaultModules/Protect.ts",
"./modules/defaultModules/Queue": "./src/modules/defaultModules/Queue.ts",
"./modules/defaultModules/Queue.ts": "./src/modules/defaultModules/Queue.ts",
"./modules/defaultModules/Sorting": "./src/modules/defaultModules/Sorting.ts",
"./modules/defaultModules/Sorting.ts": "./src/modules/defaultModules/Sorting.ts",
"./modules/defaultModules/SquareMaker": "./src/modules/defaultModules/SquareMaker.ts",
"./modules/defaultModules/SquareMaker.ts": "./src/modules/defaultModules/SquareMaker.ts",
"./modules/defaultModules/defaultKeys": "./src/modules/defaultModules/defaultKeys.ts",
"./modules/defaultModules/defaultKeys.ts": "./src/modules/defaultModules/defaultKeys.ts",
"./modules/defaultModules/index": "./src/modules/defaultModules/index.ts",
"./modules/defaultModules/index.ts": "./src/modules/defaultModules/index.ts",
"./modules/index": "./src/modules/index.ts",
"./modules/index.ts": "./src/modules/index.ts",
"./modules/util/getClientMouse": "./src/modules/util/getClientMouse.ts",
"./modules/util/getClientMouse.ts": "./src/modules/util/getClientMouse.ts",
"./requests/get-painting": "./src/requests/get-painting.ts",
"./requests/get-painting.ts": "./src/requests/get-painting.ts",
"./requests/getCookie": "./src/requests/getCookie.ts",
"./requests/getCookie.ts": "./src/requests/getCookie.ts",
"./requests/ping": "./src/requests/ping.ts",
"./requests/ping.ts": "./src/requests/ping.ts",
"./util/ExternalLoader": "./src/util/ExternalLoader.ts",
"./util/ExternalLoader.ts": "./src/util/ExternalLoader.ts",
"./variables": "./src/variables.ts",
"./variables.ts": "./src/variables.ts"
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "./src sync recursive ^(?%21.*global\\.d).+";
/***/ }),
/***/ "./package.json":
/***/ ((module) => {
"use strict";
module.exports = {"rE":"2.0.1"};
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __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/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/nonce */
/******/ (() => {
/******/ __webpack_require__.nc = undefined;
/******/ })();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module is referenced by other modules so it can't be inlined
/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
/******/
/******/ })()
;