Eval Script

8/28/2022, 8:19:50 PM

От 02.09.2022. Виж последната версия.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        Eval Script
// @namespace   Wolfy0615
// @match       https://mppclone.com/*
// @match       https://multiplayerpiano.com/*
// @grant       none
// @version     1.3
// @author      Wolfy0615
// @require     https://greasyfork.org/scripts/450595-utilinspectforbrowser/code/UtilInspectForBrowser.js
// @description 8/28/2022, 8:19:50 PM
// ==/UserScript==

// Why the require? Minified code is scary.
// Unminified code is avalible here: https://gist.github.com/Wolfy0615/e2617aca7cece2c2f067f3082fc37b5c?permalink_comment_id=4287505#gistcomment-4287505
// Please note: Some function names etc. may seem odd, but the file is realitivly small. This module comes straight from NodeJS and was *compiled* for the browser.
// This means I did not write that code myself, it was simply compiled to the file so it could work for the browser.

function handleMessage(msg) {
    let client = MPP.client;
    let token = localStorage.token;
    if (client) {
        if (msg.a.startsWith(">") && msg.p._id == client.getOwnParticipant()._id) {
            try {
                let localStorage = {};
                window.localStorage = {};
                let evaled = eval(msg.a.substring(1).trim());
                client.sendArray([{
                    m: 'a',
                    message: `✔️ ${typeof evaled} ${window.inspect(evaled)}`.substring(0, 512).replaceAll(token, "[REDACTED]").replaceAll("\n", " ")
                }])
            } catch (err) {
                if (err) {
                    client.sendArray([{
                        m: 'a',
                        message: `❌ ${typeof err} ${err}`
                    }]);
                }
            }
        }
    }
}
 
function init() {
    MPP.client.on("a", msg => { handleMessage(msg); });
}
 
const checkInterval = setInterval(() => {
    if (window.MPP) {
        clearInterval(checkInterval);
        init();
    }
}, 200);