Draggable Keystokes Modified

Adds draggable keystrokes.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Draggable Keystokes Modified
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Adds draggable keystrokes.
// @author       Blueify, Gnosis
// @match        https://bloxd.io/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bloxd.io
// @grant        GM_setValue
// @grant        GM_getValue
// @license      MIT
// @ Modified from https://greasyfork.org/scripts/480712-draggable-keystokes
// ==/UserScript==

(function() {
    'use strict';

    const keystrokescontainer = document.createElement('div');
    keystrokescontainer.style.zIndex = '10000';
    keystrokescontainer.style.width = '300px';
    keystrokescontainer.style.height = '170px';
    keystrokescontainer.style.transform = 'translate(-50%, -50%)';
    keystrokescontainer.style.backgroundColor = '#000000';
    keystrokescontainer.style.position = 'fixed';
    keystrokescontainer.style.left = GM_getValue('left') ? (GM_getValue('left') + 'px') : '50%';
    keystrokescontainer.style.top = GM_getValue('top') ? (GM_getValue('top') + 'px') : '50%';
    keystrokescontainer.style.opacity = '70%';
    window.addEventListener('load', () => document.body.appendChild(keystrokescontainer));

    let isDragging = false;

    keystrokescontainer.addEventListener('mousedown', (event) => {
        if (event.target.nodeName !== 'INPUT') {
            isDragging = true;
        }
    });

    document.addEventListener('mousemove', (event) => {
        if (isDragging) {
            const left = event.clientX;
            const top = event.clientY;

            keystrokescontainer.style.left = left + 'px';
            keystrokescontainer.style.top = top + 'px';

            GM_setValue('left', left);
            GM_setValue('top', top);
        }
    });

    document.addEventListener('mouseup', () => {
        isDragging = false;
    });

    const wkey = document.createElement('div');
    wkey.style.position = 'fixed';
    wkey.style.color = '#ffffff';
    wkey.textContent = 'W';
    wkey.style.top = '5px';
    wkey.style.transform = 'translate(-50%)';
    wkey.style.left = '50%';
    wkey.style.zIndex = '10000';
    wkey.style.fontWeight = 'bold';
    wkey.style.borderRadius = '10px';
    wkey.style.backgroundColor = '#66ccff';
    wkey.style.fontSize = '24px';
    wkey.style.height = '50px';
    wkey.style.width = '50px';
    wkey.style.textAlign = 'center';
    wkey.style.lineHeight = '50px';


    const skey = document.createElement('div');
    skey.style.position = 'fixed';
    skey.style.color = '#ffffff';
    skey.textContent = 'S';
    skey.style.top = '60px';
    skey.style.left = '50%';
    skey.style.transform = 'translateX(-50%)';
    skey.style.zIndex = '10000';
    skey.style.fontWeight = 'bold';
    skey.style.borderRadius = '10px';
    skey.style.backgroundColor = '#66ccff';
    skey.style.fontSize = '24px';
    skey.style.height = '50px';
    skey.style.width = '50px';
    skey.style.textAlign = 'center';
    skey.style.lineHeight = '50px';

    const akey = document.createElement('div');
    akey.style.position = 'fixed';
    akey.style.color = '#ffffff';
    akey.textContent = 'A';
    akey.style.top = '60px';
    akey.style.left = '31.5%';
    akey.style.transform = 'translateX(-50%)';
    akey.style.zIndex = '10000';
    akey.style.fontWeight = 'bold';
    akey.style.borderRadius = '10px';
    akey.style.backgroundColor = '#66ccff';
    akey.style.fontSize = '24px';
    akey.style.height = '50px';
    akey.style.width = '50px';
    akey.style.textAlign = 'center';
    akey.style.lineHeight = '50px';

    const dkey = document.createElement('div');
    dkey.style.position = 'fixed';
    dkey.style.color = '#ffffff';
    dkey.textContent = 'D';
    dkey.style.top = '60px';
    dkey.style.left = '68%';
    dkey.style.transform = 'translateX(-50%)';
    dkey.style.zIndex = '10000';
    dkey.style.fontWeight = 'bold';
    dkey.style.borderRadius = '10px';
    dkey.style.backgroundColor = '#66ccff';
    dkey.style.fontSize = '24px';
    dkey.style.height = '50px';
    dkey.style.width = '50px';
    dkey.style.textAlign = 'center';
    dkey.style.lineHeight = '50px';

    const lmb = document.createElement('div');
    lmb.style.position = 'fixed';
    lmb.style.color = '#ffffff';
    lmb.textContent = 'LMB';
    lmb.style.top = '115px';
    lmb.style.left = '260px';
    lmb.style.transform = 'translateX(-50%)';
    lmb.style.zIndex = '10000';
    lmb.style.fontWeight = 'bold';
    lmb.style.borderRadius = '10px';
    lmb.style.backgroundColor = '#66ccff';
    lmb.style.fontSize = '18px';
    lmb.style.height = '50px';
    lmb.style.width = '50px';
    lmb.style.textAlign = 'center';
    lmb.style.lineHeight = '50px';

    const rmb = document.createElement('div');
    rmb.style.position = 'fixed';
    rmb.style.color = '#ffffff';
    rmb.textContent = 'RMB';
    rmb.style.top = '60px';
    rmb.style.left = '260px';
    rmb.style.transform = 'translateX(-50%)';
    rmb.style.zIndex = '10000';
    rmb.style.fontWeight = 'bold';
    rmb.style.borderRadius = '10px';
    rmb.style.backgroundColor = '#66ccff';
    rmb.style.fontSize = '18px';
    rmb.style.height = '50px';
    rmb.style.width = '50px';
    rmb.style.textAlign = 'center';
    rmb.style.lineHeight = '50px';

    const shift = document.createElement('div');
    shift.style.position = 'fixed';
    shift.style.color = '#ffffff';
    shift.textContent = 'SPRINT';
    shift.style.top = '115px';
    shift.style.left = '40px';
    shift.style.transform = 'translateX(-50%)';
    shift.style.zIndex = '10000';
    shift.style.fontWeight = 'bold';
    shift.style.borderRadius = '10px';
    shift.style.backgroundColor = '#66ccff';
    shift.style.fontSize = '10px';
    shift.style.height = '50px';
    shift.style.width = '50px';
    shift.style.textAlign = 'center';
    shift.style.lineHeight = '50px';

    const crouch = document.createElement('div');
    crouch.style.position = 'fixed';
    crouch.style.color = '#ffffff';
    crouch.textContent = 'CROUCH';
    crouch.style.top = '60px';
    crouch.style.left = '40px';
    crouch.style.transform = 'translateX(-50%)';
    crouch.style.zIndex = '10000';
    crouch.style.fontWeight = 'bold';
    crouch.style.borderRadius = '10px';
    crouch.style.backgroundColor = '#66ccff';
    crouch.style.fontSize = '10px';
    crouch.style.height = '50px';
    crouch.style.width = '50px';
    crouch.style.textAlign = 'center';
    crouch.style.lineHeight = '50px';

    const space = document.createElement('div');
    space.style.position = 'fixed';
    space.style.color = '#ffffff';
    space.textContent = '_____';
    space.style.top = '115px';
    space.style.left = '50%';
    space.style.transform = 'translateX(-50%)';
    space.style.zIndex = '10000';
    space.style.fontWeight = 'bold';
    space.style.borderRadius = '10px';
    space.style.backgroundColor = '#66ccff';
    space.style.fontSize = '18px';
    space.style.height = '50px';
    space.style.width = '160px';
    space.style.textAlign = 'center';
    space.style.lineHeight = '50px';

    // Add the elements to the body and the clientMainMenu
    keystrokescontainer.appendChild(wkey);
    keystrokescontainer.appendChild(skey);
    keystrokescontainer.appendChild(akey);
    keystrokescontainer.appendChild(dkey);
    keystrokescontainer.appendChild(lmb);
    keystrokescontainer.appendChild(rmb);
    keystrokescontainer.appendChild(space);
    keystrokescontainer.appendChild(shift);
    keystrokescontainer.appendChild(crouch);

    document.addEventListener('keydown', (event) => {
        if (event.code === 'KeyW') {
            wkey.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'KeyS') {
            skey.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'KeyA') {
            akey.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'KeyD') {
            dkey.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'Space') {
            space.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'ShiftLeft') {
            shift.style.backgroundColor = '#3366ff';
        }
        else if (event.code === 'KeyC' || event.code === 'KeyZ' || event.key === 'Control') {
            crouch.style.backgroundColor = '#3366ff';
        }
    });

    document.addEventListener('keyup', (event) => {
        if (event.code === 'KeyW') {
            wkey.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'KeyS') {
            skey.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'KeyA') {
            akey.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'KeyD') {
            dkey.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'Space') {
            space.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'ShiftLeft') {
            shift.style.backgroundColor = '#66ccff';
        }
        else if (event.code === 'KeyC' || event.code === 'KeyZ' || event.key === 'Control') {
            crouch.style.backgroundColor = '#66ccff';
        }
    });

    document.addEventListener('mousedown', (event) => {
        if (event.button === 0) {
            lmb.style.backgroundColor = '#3366ff';
        }
        if (event.button === 2) {
            rmb.style.backgroundColor = '#3366ff';
        }
    });

    document.addEventListener('mouseup', (event) => {
        if (event.button === 0) {
            lmb.style.backgroundColor = '#66ccff';
        }
        if (event.button === 2) {
            rmb.style.backgroundColor = '#66ccff';
        }
    });

    document.addEventListener('keyup', function(event) {
        if (event.key === '`') {
            if (keystrokescontainer.style.visibility === 'hidden') {
                keystrokescontainer.style.visibility = 'visible';
            } else {
                keystrokescontainer.style.visibility = 'hidden';
            }
        }
    });
})();