MooMoo.io Click Through Store

Click Through Store

Stan na 17-03-2023. Zobacz najnowsza wersja.

// ==UserScript==
// @name         MooMoo.io Click Through Store
// @description  Click Through Store
// @author       WEIRD
// @icon         https://moomoo.io/img/favicon.png?v=1
// @match        *://*.moomoo.io/*
// @run-at       document-start
// @grant        unsafeWindow
// @license      MIT
// @version      0.1
// @namespace    https://greasyfork.org/users/999838
// ==/UserScript==

(() => {
    unsafeWindow.clickThroughStore = true

    document.addEventListener("DOMContentLoaded", () => {
        const style = document.createElement("style")
        style.innerHTML = `
            .joinAlBtn {
                pointer-events: all !important;
            }
            .storeItem {
                pointer-events: none !important;
            }`
        document.head.appendChild(style)

        window.addEventListener("contextmenu", e => e.preventDefault())

        function waitForElm(selector) {
            return new Promise(resolve => {
                if (document.querySelector(selector)) {
                    return resolve(document.querySelector(selector));
                }

                const observer = new MutationObserver(mutations => {
                    if (document.querySelector(selector)) {
                        resolve(document.querySelector(selector));
                        observer.disconnect();
                    }
                });

                observer.observe(document.body, {
                    childList: true,
                    subtree: true
                });
            });
        }

        function triggerMouseEvent(node, eventType) {
            var clickEvent = document.createEvent('MouseEvents');
            clickEvent.initEvent(eventType, true, true);
            node.dispatchEvent(clickEvent);
        }

        waitForElm("#storeHolder").then(storeHolder => {
            if (unsafeWindow.customStore) {
                waitForElm("#customStoreHolder").then(customStoreHolder => {
                    customStoreHolder.addEventListener("mousedown", () => {
                        triggerMouseEvent(document.getElementById("gameCanvas"), "mousedown")
                    })
                    customStoreHolder.addEventListener("mouseup", () => {
                        triggerMouseEvent(document.getElementById("gameCanvas"), "mouseup")
                    })
                })
            } else {
                storeHolder.addEventListener("mousedown", event => {
                    triggerMouseEvent(document.getElementById("gameCanvas"), "mousedown")
                })
                storeHolder.addEventListener("mouseup", event => {
                    triggerMouseEvent(document.getElementById("gameCanvas"), "mouseup")
                })
            }
        })
    })
})()