splix-js-demodularizer

A vile trick that may aid you in executing your beloved scripts in the novel version of the client

Fra 16.11.2023. Se den seneste versjonen.

Dette scriptet burde ikke installeres direkte. Det er et bibliotek for andre script å inkludere med det nye metadirektivet // @require https://updategreasyfork.deno.dev/scripts/478491/1281561/splix-js-demodularizer.js

// ==UserScript==
// @name         splix-js-demodularizer
// @namespace    http://tampermonkey.net/
// @version      0.2.0
// @description  A vile trick that may aid you in executing your beloved scripts in the novel version of the client
// @author       You
// @match        https://splix.io/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=splix.io
// @grant        none
// @run-at       document-start
// ==/UserScript==

await (async function() {
    'use strict';

    if (window.jsDemodularized) return;

    const version = "0.2.0";
    const demodularizerVersion = localStorage.getItem("demodularizerVersion");
    const clientCode = localStorage.getItem("clientCode");

    if (demodularizerVersion === version) {
        document.open("text/html");
        document.write(clientCode);
        document.close();
        window.jsDemodularized = true;
    } else {
        window.stop();

        async function getContent(path) {
            let response = await fetch("https://raw.githubusercontent.com/jespertheend/splix/2849a9e86b491d3835e77d32d0e2d967ef9609c4/client/" + path);
            return response.text();
        }

        const globals = (await getContent("src/globals.js")).replace("IS_DEV_BUILD = true", "IS_DEV_BUILD = false");
        const serverSelection = (await getContent("src/network/serverSelection.js")).replaceAll("export ", "");
        const main = "'use strict';\n" + globals + serverSelection + (await getContent("src/main.js")).replace(/.*/, "").substr(1).replace(/.*/, "").substr(1);
        const html = (await getContent("index.html")).substr(1).replace(/.*/, "").substr(1).replace(/<script.*?\/main.*?<\/script>/, "").replace("</body>", `<script>${main}</script></body>`)


        localStorage.setItem("clientCode", html);
        localStorage.setItem("demodularizerVersion", version);
        location.reload();
    }
})();