Collab-VM Turnstile JS Extension

makes it so xtoys can see if you actually take a turn on collabvm via hacky webhook stuff. Special thanks to Elijahr. MODIFY THE USERSCRIPT TO CONTAIN YOUR PRIVATE WEBHOOK ID BEFORE USING

// ==UserScript==
// @name         Collab-VM Turnstile JS Extension
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  makes it so xtoys can see if you actually take a turn on collabvm via hacky webhook stuff. Special thanks to Elijahr. MODIFY THE USERSCRIPT TO CONTAIN YOUR PRIVATE WEBHOOK ID BEFORE USING
// @author       Wulf715, ElijahR.dev
// @match        https://computernewb.com/collab-vm/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=computernewb.com
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';
    let mo = new MutationObserver((mutationList, observer) => {
        for (const mutation of mutationList) if (mutation.type === "attributes" && mutation.attributeName === "style") {
            console.log("VM was opened or closed (probably lol)");
            let vm = window.collabvm.getVM();
            if (vm === null) return;
            window.hasTurn = false;
            vm.on('turn', () => {
                window.hasTurn = (vm.users.find(u => u.username === vm.username).turn === 0);
                if (window.hasTurn === true) {
                    fetch('https://webhook.xtoys.app/YourWebhookHere?action=start');
                }
                if (window.hasTurn === false) {
                    fetch('https://webhook.xtoys.app/YourWebhookHere?action=stop');
                }
            });
        }
    });
    mo.observe(document.getElementById("vmview"), {attributes: true});

})();