x01 ONLY DISPLAY Active Player in BIG for Autodarts

Displays only the active player's points and throws and nothing else, please be aware that this script hides any and all controlls once active!

目前為 2024-03-23 提交的版本,檢視 最新版本

// ==UserScript==
// @name         x01 ONLY DISPLAY Active Player in BIG for Autodarts
// @version      0.2
// @description  Displays only the active player's points and throws and nothing else, please be aware that this script hides any and all controlls once active!
// @author       dotty-dev
// @license      MIT
// @match        *://*.autodarts.io/*
// @match        *://autodarts.io/*
// @namespace    https://gf.qytechs.cn/en/users/913506-dotty-dev
// ==/UserScript==
/*jshint esversion: 11 */

(function () {
  "use strict";

  const uiElements = {};

  const documentObserver = new MutationObserver((mutationRecords) => {
    if (mutationRecords[0]?.target.classList.contains("chakra-wrap__list")) {
      uiElements.regularContent = document.querySelector(
        "#ad-ext-player-display"
      ).parentElement.parentElement.parentElement;
      uiElements.turnRow = document.querySelector("#ad-ext-turn");
      uiElements.playerRow = document.querySelector("#ad-ext-player-display");
      uiElements.activePlayer = document.querySelector(
        ".ad-ext-player-active"
      ).parentElement;
      toggleScoreDisplay();
    }
  });

  documentObserver.observe(document, {
    childList: true,
    attributes: true,
    subtree: true,
    attributeFilter: ["class"],
  });

  const mutationObserver = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
      if (mutation.attributeName == "class") {
        if (mutation.target.classList.contains("ad-ext-player-active")) {
          uiElements.activePlayer = mutation.target.parentElement;
          bigScoreContainer.insertAdjacentElement(
            "afterbegin",
            uiElements.activePlayer
          );
          uiElements.playerRow.insertAdjacentElement(
            "afterbegin",
            document.querySelector(".ad-ext-player:not(.ad-ext-player-active)")
              .parentElement
          );
        }
      }
    });
  });

  const toggleScoreDisplay = () => {
    uiElements.activePlayer = document.querySelector(
      ".ad-ext-player-active"
    ).parentElement;

    if (document.querySelectorAll("style#active-player-big-score").length < 1) {
      document.head.insertAdjacentHTML(
        "beforeend",
        /*html*/ `
              <style id="active-player-big-score">
                 #big-score-container {
                  display: flex;
                  flex-direction: column;
                  gap: var(--chakra-space-4);
                  padding: var(--chakra-space-4);
                  width: 100%;
                  height: 100%;
                }

                #big-score-container .ad-ext-player-score {
                  margin: 0;
                }

                #big-score-container .ad-ext-player + div *:not(.game-shot-message) {
                  font-size: 3rem;
                  line-height: 3rem;
                }

                #big-score-container .ad-ext-player + div > div > div > div {
                  width: unset;
                  height: unset;
                  padding: 3px;
                }

                #big-score-container .ad-ext-player-score {
                  font-size: 18vh;
                  line-height: 18vh;
                }

                #big-score-container .ad-ext-player-score + *:not(.game-shot-message),
                #big-score-container .game-shot-message + * {
                  transform: scale(2);
                }

                #big-score-container table {
                  height: 100%;
                }


                #big-score-container table td {
                  min-width: 11.5vw !important;
                }

                #big-score-container #ad-ext-turn * {
                  font-size: 5rem;
                  line-height: 1.5;
                }

                #big-score-container .game-shot-animation .ad-ext-player-score {
                  font-size: 16vh;
                  line-height: 1.2;
                }

                #big-score-container .game-shot-animation .game-shot-message {
                  font-size: 8vh;
                  line-height: 1.5;
                }

                @media (orientation: landscape) {
                  #big-score-container .ad-ext-player-score {
                    font-size: 30vw;
                    line-height: 30vw;
                  }

                  #big-score-container .ad-ext-player table {
                    font-size: 5vw !important;
                  }
                }

                @media (orientation: portrait) {
                  #big-score-container .ad-ext-player {
                    flex-direction: row;
                    flex-wrap: wrap;
                  }

                  #big-score-container .ad-ext-player > .chakra-container {
                    height: unset !important;
                    width: 100%;
                    max-width: unset;
                  }

                  #big-score-container .ad-ext-player table {
                    font-size: calc(30vh / 6) !important;
                    width: 100%;
                    height: 100%;
                  }
                  
                  #big-score-container #ad-ext-turn {
                    display: grid;
                    grid-template-columns: 1fr 1fr 1fr 1fr;
                  }
                }
   
              </style>
              `
      );
    }

    if (document.querySelectorAll("#toggle-score-display").length < 1) {
      const extMenu = document.querySelector("#ad-ext-user-menu-extra");
      extMenu.style.display = "";
      let toggleButton = extMenu.parentElement
        .querySelector("button")
        .cloneNode();
      toggleButton.dataset.index++;
      toggleButton.innerHTML = "Toggle Score Display";
      toggleButton.style.display = "";
      toggleButton.id = "toggle-score-display";

      extMenu.insertAdjacentElement("afterend", toggleButton);
      toggleButton.addEventListener("click", toggleScoreDisplay);
    }

    if (document.querySelector("#big-score-container")) {
      console.log(uiElements.regularContent);
      mutationObserver.disconnect();
      uiElements.regularContent.style.display = "";
      uiElements.playerRow.insertAdjacentElement(
        "afterbegin",
        uiElements.activePlayer
      );
      uiElements.playerRow.insertAdjacentElement(
        "afterend",
        uiElements.turnRow
      );
      document.querySelector("#big-score-container").remove();
    } else {
      const gameModeElement = document.querySelector("#ad-ext-game-variant");

      if (gameModeElement && gameModeElement.textContent === "X01") {
        uiElements.regularContent.style.display = "none";

        const bigScoreContainer = document.createElement("div");

        bigScoreContainer.id = "big-score-container";

        bigScoreContainer.insertAdjacentElement(
          "afterbegin",
          uiElements.activePlayer
        );

        bigScoreContainer.insertAdjacentElement(
          "beforeend",
          uiElements.turnRow
        );

        if (document.querySelectorAll("#big-score-container").length === 0) {
          uiElements.regularContent.parentElement.insertAdjacentElement(
            "beforeend",
            bigScoreContainer
          );
        }

        mutationObserver.observe(uiElements.playerRow, {
          attributes: true,
          childList: true,
          subtree: true,
        });
      }
    }
  };
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址