7Placer

typescript pixelplace.io bot

// ==UserScript==
// @name          7Placer
// @description   typescript pixelplace.io bot
// @version       1.6.2
// @author        Azti
// @match         https://pixelplace.io/*
// @require       https://update.gf.qytechs.cn/scripts/498080/1395134/Hacktimer.js
// @require       https://pixelplace.io/js/jquery.min.js?v2=1
// @require       https://pixelplace.io/js/jquery-ui.min.js?v2=1
// @require       https://cdnjs.cloudflare.com/ajax/libs/toastify-js/1.6.1/toastify.js
// @grant         none
// @run-at        document-start
// @namespace https://gf.qytechs.cn/users/374503
// ==/UserScript==

/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./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 */   connect: () => (/* binding */ connect),
/* harmony export */   deleteAccount: () => (/* binding */ deleteAccount),
/* harmony export */   disconnect: () => (/* binding */ disconnect),
/* harmony export */   getAccounts: () => (/* binding */ getAccounts),
/* harmony export */   getAuth: () => (/* binding */ getAuth),
/* harmony export */   saveAccount: () => (/* binding */ saveAccount),
/* harmony export */   saveAuth: () => (/* binding */ saveAuth)
/* harmony export */ });
/* harmony import */ var _Auth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/auth/Auth.ts");
/* harmony import */ var _bot_Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/requests/get-painting.ts");
/* harmony import */ var _bot_util_websocket__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/bot/util/websocket.ts");





const window2 = window;
var LocalAccounts = new Map();
// 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 = window2.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_2__["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 connectedbot = window2.seven.bots.find((bot) => bot.generalinfo?.user.name == username);
    if (!username) {
        console.log('[7p] Missing bot username, connect("username")');
        return;
    }
    if (username == 'all') {
        for (const [username, account] of LocalAccounts) {
            // checks if bot is already connected
            const connectedbot = window2.seven.bots.find((bot) => bot.generalinfo?.user.name == username);
            const auth = new _Auth__WEBPACK_IMPORTED_MODULE_4__["default"](account);
            if (connectedbot) {
                console.log(`[7p] Account ${username} is already connected.`);
                continue;
            }
            new _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.WSBot(auth, username);
            await delay(500);
        }
        return;
    }
    if (!account) {
        console.log(`[7p] No account found with username ${username}`);
        return;
    }
    if (connectedbot) {
        console.log(`[7p] Account ${username} is already connected.`);
        return;
    }
    const auth = new _Auth__WEBPACK_IMPORTED_MODULE_4__["default"](account);
    new _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.WSBot(auth, username);
}
function disconnect(username) {
    const bot = window2.seven.bots.find((bot) => bot.generalinfo?.user.name == username);
    if (!username) {
        console.log('[7p] disconnect requires a username, disconnect("username")');
        return;
    }
    if (username == 'all') {
        if (window2.seven.bots.length == 1) {
            console.log('[7p] No bots connected.');
            return;
        }
        for (const bot of window2.seven.bots) {
            (0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_3__.closeBot)(bot);
        }
        return;
    }
    if (!bot) {
        console.log(`[7p] No bot connected with username ${username}`);
        return;
    }
    (0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_3__.closeBot)(bot);
}


/***/ }),

/***/ "./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 _util_websocket__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/util/websocket.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 _css_style__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/css/style.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/requests/get-painting.ts");






const seven = window.seven;
class Bot {
    constructor() {
        this.trackeriters = 0;
        this.lastplace = Date.now();
        this.botid = Bot.botIndex;
        Bot.botIndex += 1; // id for next bot
    }
    emit(event, params) {
        this.ws.send(`42["${event}",${params}]`);
    }
    async placePixel(x, y, color, client = false, tracker = true) {
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
        const canvascolor = canvas.getColor(x, y);
        if (canvascolor == color || canvascolor == 200) {
            return true;
        }
        while (Date.now() - this.lastplace < seven.pixelspeed) {
            await new Promise(resolve => setTimeout(resolve, 0));
        }
        this.emit('p', `[${x},${y},${color},1]`);
        this.lastplace = Date.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 bots = seven.bots;
        var tick = 0;
        while (true) {
            for (var i = 0; i < bots.length; i++) {
                const bot = bots[i];
                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(_css_style__WEBPACK_IMPORTED_MODULE_3__.trackercss);
        $('#canvas').ready(function () {
            // console.log(`[7p] created tracker: ${name}`)
            $('#painting-move').append(tracker);
        });
        return tracker;
    }
    set ws(wss) {
        this._ws = wss;
    }
    get ws() {
        return this._ws;
    }
}
Bot.botIndex = 0;
class WSBot extends Bot {
    constructor(auth, username) {
        super();
        this._auth = auth;
        this.username = username;
        this.startBot();
    }
    async startBot() {
        this.generalinfo = await (0,_requests_get_painting__WEBPACK_IMPORTED_MODULE_4__["default"])(this.auth.authId, this.auth.authKey, this.auth.authToken);
        this.tracker = this.createTracker();
        this.ws = await (0,_util_websocket__WEBPACK_IMPORTED_MODULE_0__.hookBot)(this);
    }
    get auth() {
        return this._auth;
    }
}
class Client extends Bot {
    constructor() {
        super();
        this.username = 'Client';
        Client.instance = this;
        this.tracker = this.createTracker();
        seven.bots.push(this);
    }
    static get Client() {
        return Client.instance;
    }
}


/***/ }),

/***/ "./src/bot/util/onmessage.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   onBotMessage: () => (/* binding */ onBotMessage),
/* harmony export */   onClientMessage: () => (/* binding */ onClientMessage)
/* harmony export */ });
/* harmony import */ var _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 _palive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/bot/util/palive.ts");
/* harmony import */ var _websocket__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/bot/util/websocket.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _auth_util_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./src/auth/util/commands.ts");
/* harmony import */ var _modules_defaultModules_SevenProtect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./src/modules/defaultModules/SevenProtect.ts");







const seven = window.seven;
// client
function onClientMessage(event) {
    const msg = event.data;
    const bot = _Bot__WEBPACK_IMPORTED_MODULE_0__.Client.instance;
    if (msg.startsWith("42")) {
        const msg = JSON.parse(event.data.substr(2));
        const type = msg[0];
        switch (type) {
            case "p":
                for (const pixel of msg[1]) {
                    const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["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_SevenProtect__WEBPACK_IMPORTED_MODULE_6__["default"].checkPixel(x, y, color);
                }
                break;
            case "canvas":
                for (const pixel of msg[1]) {
                    const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
                    const x = pixel[0];
                    const y = pixel[1];
                    const color = pixel[2];
                    canvas.updatePixel(x, y, color);
                }
                break;
        }
    }
}
// multibot
async function onBotMessage(event, bot) {
    const message = event.data;
    // game packets
    if (message.startsWith("42")) {
        const message = JSON.parse(event.data.substr(2));
        const type = message[0];
        const botid = bot.generalinfo.user.id;
        const botname = bot.username;
        switch (type) {
            case "server_time":
                bot.paliveServerTime = message[1]; // stores servertime for palive
                break;
            case "ping.alive":
                const hash = (0,_palive__WEBPACK_IMPORTED_MODULE_2__["default"])(bot.paliveServerTime, botid);
                console.log('[7p]', botname, ': pong =', hash, botid);
                bot.emit('pong.alive', `"${hash}"`);
                break;
            case "throw.error":
                if (message[1] == 49) {
                    console.log(`[7p] [Bot ${botname}] Error (${message[1]}): This auth is not valid! Deleting account from saved accounts...`);
                    (0,_auth_util_commands__WEBPACK_IMPORTED_MODULE_5__.deleteAccount)(botname);
                    (0,_websocket__WEBPACK_IMPORTED_MODULE_3__.closeBot)(bot);
                    return;
                }
                else if (message[1] == 16) {
                    (0,_websocket__WEBPACK_IMPORTED_MODULE_3__.closeBot)(bot);
                }
                console.log(`[7p] [Bot ${botname}] Pixelplace WS error: ${message[1]}`);
                break;
            case "canvas":
                console.log(`[7p] Succesfully connected to bot ${bot.username}`);
                seven.bots.push(bot);
                break;
        }
    }
    // start
    if (message.startsWith("0"))
        bot.ws.send('40');
    // auth
    if (message.startsWith("40"))
        bot.ws.send(`42["init",{"authKey":"${bot.auth.authKey}","authToken":"${bot.auth.authToken}","authId":"${bot.auth.authId}","boardId":${_canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance.ID}}]`);
    // keep alive
    if (message.startsWith("2"))
        bot.ws.send('3');
}


/***/ }),

/***/ "./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 */   closeBot: () => (/* binding */ closeBot),
/* harmony export */   hookBot: () => (/* binding */ hookBot)
/* harmony export */ });
/* harmony import */ var _Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _onmessage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/bot/util/onmessage.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/variables.ts");



const seven = window.seven;
// client
const customWS = window.WebSocket;
window.WebSocket = function (url, protocols) {
    const client = new _Bot__WEBPACK_IMPORTED_MODULE_0__.Client();
    const socket = new customWS(url, protocols);
    socket.addEventListener("message", (event) => { (0,_onmessage__WEBPACK_IMPORTED_MODULE_1__.onClientMessage)(event); });
    client.ws = socket;
    return socket;
};
// multibot
async function hookBot(bot) {
    console.log(`[7p] Attempting to connect account ${bot.username}`);
    const socket = new customWS("wss://pixelplace.io/socket.io/?EIO=4&transport=websocket");
    socket.addEventListener("message", (event) => { (0,_onmessage__WEBPACK_IMPORTED_MODULE_1__.onBotMessage)(event, bot); });
    socket.addEventListener("close", () => { _Bot__WEBPACK_IMPORTED_MODULE_0__.Bot.botIndex -= 1; });
    return socket;
}
function closeBot(bot) {
    if (bot instanceof _Bot__WEBPACK_IMPORTED_MODULE_0__.Client)
        return;
    if (!bot) {
        console.log('[7p] Cannot close bot that doesnt exist.');
        return;
    }
    bot.ws.close();
    const result = seven.bots.filter((checkedBot) => checkedBot.botid != bot.botid);
    seven.bots = result;
    console.log('[7placer] Ended bot ', bot.botid);
}


/***/ }),

/***/ "./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 _css_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/css/style.ts");
/* harmony import */ var _util_canvasloader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/util/canvasloader.ts");


class Canvas {
    constructor() {
        this._ID = this.ParseID();
        this._isProcessed = false;
        this._customCanvas = this.newPreviewCanvas();
    }
    static get instance() {
        if (!Canvas._instance) {
            Canvas._instance = new Canvas;
            (0,_util_canvasloader__WEBPACK_IMPORTED_MODULE_1__.processColors)();
        }
        return Canvas._instance;
    }
    newPreviewCanvas() {
        const canvas = $(`<canvas width="2500" height="2088">`).css(_css_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;
    }
    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) 
    }
}
/* 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");
/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/util/colors.ts");


async function processWater() {
    var image = await fetch('https://pixelplace.io/canvas/' + _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.ID + 'p.png?t200000=' + Date.now());
    if (!image.ok) {
        const canvas = document.getElementById('canvas');
        var waterArray = Array.from({ length: canvas.width }, () => Array.from({ length: canvas.height }, () => 1));
        return waterArray;
    }
    const blob = await image.blob();
    const bitmap = await createImageBitmap(blob);
    const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
    var waterArray = Array.from({ length: canvas.width }, () => Array.from({ length: canvas.height }, () => 1));
    const context = canvas.getContext('2d');
    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 startTotalTime = performance.now();
    const waterArray = await processWater();
    const startColorsTime = performance.now();
    const canvas = document.getElementById('canvas');
    const ctx = canvas.getContext('2d');
    const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    const pixelData = imageData.data;
    var CanvasArray = Array.from({ length: canvas.width }, () => Array.from({ length: canvas.height }, () => 1));
    if (waterArray.length > 1) {
        CanvasArray = waterArray;
    }
    for (let y = 0; y < canvas.height; y++) {
        for (let x = 0; x < canvas.width; x++) {
            if (CanvasArray[x][y] == 200) {
                continue;
            }
            const pixelIndex = (y * canvas.width + x) * 4;
            const r = pixelData[pixelIndex];
            const g = pixelData[pixelIndex + 1];
            const b = pixelData[pixelIndex + 2];
            const colornum = (r << 16) | (g << 8) | b;
            const colorIndex = _colors__WEBPACK_IMPORTED_MODULE_1__.colors.indexOf(colornum);
            CanvasArray[x][y] = colorIndex;
        }
    }
    console.log(CanvasArray);
    _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.canvasArray = CanvasArray;
    const finalTotalTime = performance.now() - startTotalTime;
    const finalColorsTime = performance.now() - startColorsTime;
    const finalWaterTime = startColorsTime - startTotalTime;
    console.log(`[7p PROCESSING] Total Time: ${finalTotalTime}ms, Colors Time: ${finalColorsTime}ms, Water Time: ${finalWaterTime}ms`);
}


/***/ }),

/***/ "./src/canvas/util/colors.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   colors: () => (/* binding */ colors)
/* harmony export */ });
const colors = [
    0xFFFFFF,
    0xC4C4C4,
    0x888888,
    0x555555,
    0x222222,
    0x000000,
    0x006600,
    0x22B14C,
    0x02BE01,
    0x51E119,
    0x94E044,
    0xFBFF5B,
    0xE5D900,
    0xE6BE0C,
    0xE59500,
    0xA06A42,
    0x99530D,
    0x633C1F,
    0x6B0000,
    0x9F0000,
    0xE50000,
    0xFF3904,
    0xBB4F00,
    0xFF755F,
    0xFFC49F,
    0xFFDFCC,
    0xFFA7D1,
    0xCF6EE4,
    0xEC08EC,
    0x820080,
    0x5100FF,
    0x020763,
    0x0000EA,
    0x044BFF,
    0x6583CF,
    0x36BAFF,
    0x0083C7,
    0x00D3DD,
    0x45FFC8,
    0x003638,
    0x477050,
    0x98FB98,
    0xFF7000,
    0xCE2939,
    0xFF416A,
    0x7D26CD,
    0x330077,
    0x005BA1,
    0xB5E8EE,
    0x1B7400,
    0x75CEA9,
    0x34EB6B,
    0xFFCC00,
    0xBB276C,
    0xFF7EBB,
    0x440414,
    0x591C91,
    0xC1A162,
    0xCAFF70,
    0x013182,
    0xA6A6A6,
    0x6F6F6F,
    0x3A3A3A,
    0x4D082C
];


/***/ }),

/***/ "./src/css/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/css/style.ts");
/* harmony import */ var _modules_defaultModules_SevenImageTools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SevenImageTools.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_SevenImageTools__WEBPACK_IMPORTED_MODULE_1__.botImage)(x, y, image);
        // console.log(image)
    }).on('dragover', false);
}


/***/ }),

/***/ "./src/css/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/index.ts":
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {

"use strict";

;// ./package.json
const package_namespaceObject = {"rE":"1.6.2"};
// EXTERNAL MODULE: ./src/canvas/Canvas.ts
var Canvas = __webpack_require__("./src/canvas/Canvas.ts");
// EXTERNAL MODULE: ./src/util/ExternalLoader.ts
var ExternalLoader = __webpack_require__("./src/util/ExternalLoader.ts");
;// ./src/index.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('7Placer Loaded! Version:', package_namespaceObject.rE);
(0,ExternalLoader.loadCss)('https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css');
window.onload = () => {
    Toastify({
        text: '7Placer Loaded!',
    }).showToast();
    Canvas["default"].instance;
};


/***/ }),

/***/ "./src/modules/defaultModules/SevenImageTools.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 */ });
/* 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 _SevenQueue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SevenQueue.ts");
/* harmony import */ var _canvas_util_colors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/canvas/util/colors.ts");
/* harmony import */ var _SevenSorting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/SevenSorting.ts");





function getColorDistance(c1, c2) {
    // Image Color
    const r1 = (c1 >> 16) & 0xFF;
    const g1 = (c1 >> 8) & 0xFF;
    const b1 = c1 & 0xFF;
    // Pixelplace Color
    const r2 = (c2 >> 16) & 0xFF;
    const g2 = (c2 >> 8) & 0xFF;
    const b2 = c2 & 0xFF;
    return (r1 - r2) ** 2 + (g1 - g2) ** 2 + (b1 - b2) ** 2;
}
function findClosestColor(color) {
    let minDistance = Infinity;
    let colorNumber;
    let index = 0;
    for (const pxpColor of _canvas_util_colors__WEBPACK_IMPORTED_MODULE_4__.colors) {
        const distance = getColorDistance(color, pxpColor);
        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);
}
async function ImageToPixels(image) {
    const result = [];
    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);
    const pixelData = imageData.data;
    for (let y = 0; y < canvas.height; y++) {
        for (let x = 0; x < canvas.width; x++) {
            const pixelIndex = (y * canvas.width + x) * 4;
            const r = pixelData[pixelIndex];
            const g = pixelData[pixelIndex + 1];
            const b = pixelData[pixelIndex + 2];
            const a = pixelData[pixelIndex + 3];
            const colornum = (r << 16) | (g << 8) | b;
            if (a < 1) {
                continue; // ignore transparent pixels
            }
            const color = findClosestColor(colornum);
            result.push({ x, y, color });
        }
    }
    return result;
}
async function botImage(x, y, image) {
    const bitmap = await createImageBitmap(image);
    const processed = await ImageToPixels(bitmap);
    previewCanvasImage(x, y, image);
    (0,_SevenSorting__WEBPACK_IMPORTED_MODULE_3__["default"])(processed, window.seven.order);
    processed.forEach((pixel) => _SevenQueue__WEBPACK_IMPORTED_MODULE_2__["default"].add(pixel.x + x, pixel.y + y, pixel.color, true));
}


/***/ }),

/***/ "./src/modules/defaultModules/SevenProtect.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 _SevenQueue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SevenQueue.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)) {
                _SevenQueue__WEBPACK_IMPORTED_MODULE_1__["default"].add(x, y, pixel.color, false);
            }
        });
    }
}
Protector.protected = [];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Protector);


/***/ }),

/***/ "./src/modules/defaultModules/SevenQueue.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 _SevenProtect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/SevenProtect.ts");




const seven = window.seven;
class Queue {
    constructor() {
        Queue.performance = performance.now();
    }
    static add(x, y, color, protection, atStart = false, client = false) {
        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 clear() {
        // console.log('Queue cleared: ', seven.queue)
        seven.queue = [];
    }
    static async start() {
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
        const protector = new _SevenProtect__WEBPACK_IMPORTED_MODULE_3__["default"];
        if (!canvas.isProcessed) {
            console.log('[7p] Error starting queue: Canvas has not been processed yet.');
            Queue.stop();
            return;
        }
        seven.inprogress = true;
        while (seven.inprogress) {
            // console.log(performance.now() - Queue.performance)
            Queue.performance = performance.now();
            const pixel = seven.queue[0];
            if (pixel.client) {
                var bot = _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Client.instance;
            }
            else {
                var bot = await _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Bot.findAvailableBot();
            }
            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() {
        seven.inprogress = false;
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
        canvas.previewCanvas.clearRect(0, 0, 3000, 3000);
        _SevenProtect__WEBPACK_IMPORTED_MODULE_3__["default"].clear();
        Queue.clear();
    }
}


/***/ }),

/***/ "./src/modules/defaultModules/SevenSorting.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 seven = window.seven;
function sort(array, order) {
    switch (seven.order) {
        case 'rand':
            array.sort(() => Math.random() - 0.5);
            return array;
        case 'colors':
            array.sort((a, b) => a.color - b.color);
            return array;
        case 'vertical':
            array.sort((a, b) => a.x - b.x);
            return array;
        case 'horizontal':
            array.sort((a, b) => a.y - b.y);
            return array;
        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;
            });
            return array;
    }
}


/***/ }),

/***/ "./src/modules/defaultModules/SevenSquareMaker.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 _SevenQueue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/SevenQueue.ts");
/* harmony import */ var _SevenSorting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SevenSorting.ts");


function BotSquare(x1, y1, x2, y2, color) {
    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 = (0,_SevenSorting__WEBPACK_IMPORTED_MODULE_1__["default"])(result, window.seven.order);
    result.forEach((pixel) => {
        _SevenQueue__WEBPACK_IMPORTED_MODULE_0__["default"].add(pixel.x, pixel.y, pixel.color, true);
    });
}


/***/ }),

/***/ "./src/modules/defaultModules/defaultKeys.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _css_drop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/css/drop.ts");
/* harmony import */ var _util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
/* harmony import */ var _SevenQueue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SevenQueue.ts");
/* harmony import */ var _SevenSquareMaker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SevenSquareMaker.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;
            _SevenQueue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
            break;
        case (66):
            if (!event.altKey)
                return;
            (0,_css_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,_SevenSquareMaker__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 */ _SevenSquareMaker__WEBPACK_IMPORTED_MODULE_2__.BotSquare),
/* harmony export */   ImageToPixels: () => (/* reexport safe */ _SevenImageTools__WEBPACK_IMPORTED_MODULE_0__.ImageToPixels),
/* harmony export */   botImage: () => (/* reexport safe */ _SevenImageTools__WEBPACK_IMPORTED_MODULE_0__.botImage)
/* harmony export */ });
/* harmony import */ var _SevenImageTools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/SevenImageTools.ts");
/* harmony import */ var _SevenQueue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SevenQueue.ts");
/* harmony import */ var _SevenSquareMaker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SevenSquareMaker.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 */ });
/* 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: [],
    pixelspeed: 21,
    queue: [],
    inprogress: false,
    protect: false,
    tickspeed: 1000,
    order: 'fromCenter',
    saveAuth: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.saveAuth,
    getAuth: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.getAuth,
    saveAccount: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.saveAccount,
    getAccounts: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.getAccounts,
    deleteAccount: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.deleteAccount,
    connect: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.connect,
    disconnect: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.disconnect,
};


/***/ }),

/***/ "./src sync recursive ^(?%21.*global\\.d).+":
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var map = {
	".": "./src/index.ts",
	"./": "./src/index.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/onmessage": "./src/bot/util/onmessage.ts",
	"./bot/util/onmessage.ts": "./src/bot/util/onmessage.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",
	"./canvas/util/colors": "./src/canvas/util/colors.ts",
	"./canvas/util/colors.ts": "./src/canvas/util/colors.ts",
	"./css/drop": "./src/css/drop.ts",
	"./css/drop.ts": "./src/css/drop.ts",
	"./css/style": "./src/css/style.ts",
	"./css/style.ts": "./src/css/style.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/SevenImageTools": "./src/modules/defaultModules/SevenImageTools.ts",
	"./modules/defaultModules/SevenImageTools.ts": "./src/modules/defaultModules/SevenImageTools.ts",
	"./modules/defaultModules/SevenProtect": "./src/modules/defaultModules/SevenProtect.ts",
	"./modules/defaultModules/SevenProtect.ts": "./src/modules/defaultModules/SevenProtect.ts",
	"./modules/defaultModules/SevenQueue": "./src/modules/defaultModules/SevenQueue.ts",
	"./modules/defaultModules/SevenQueue.ts": "./src/modules/defaultModules/SevenQueue.ts",
	"./modules/defaultModules/SevenSorting": "./src/modules/defaultModules/SevenSorting.ts",
	"./modules/defaultModules/SevenSorting.ts": "./src/modules/defaultModules/SevenSorting.ts",
	"./modules/defaultModules/SevenSquareMaker": "./src/modules/defaultModules/SevenSquareMaker.ts",
	"./modules/defaultModules/SevenSquareMaker.ts": "./src/modules/defaultModules/SevenSquareMaker.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).+";

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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] = {
/******/ 			// no module.id needed
/******/ 			// 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/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 });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// 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");
/******/ 	
/******/ })()
;

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址