checkArtsBeforeBattle

checking all equip before going to battle

// ==UserScript==
// @name         checkArtsBeforeBattle
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  checking all equip before going to battle
// @author       Salmon
// @license      MIT
// @include      https://my.lordswm.com/*
// @include      https://www.heroeswm.ru/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const createEl = (el, style, innerText, className, placeholder) => {
        let element = document.createElement(el);
        if (style) element.style = style;
        if (innerText) element.innerText = innerText;
        return element;
    }

    let language = navigator.language;
    if (language) language = language.split("-")[0];
    const languages = ["ru", "en", "uk"];
    if (!languages.includes(language)) {
        language = "en";
    }

    const links = ['https://my.lordswm.com', 'https://www.heroeswm.ru'];
    const link = location.href.slice(0, 22) === 'https://my.lordswm.com' ? links[0] : links[1];

    const fetch_xml = ( el, path ) => {
        const xhr = new XMLHttpRequest();
        xhr.open('get', `${link}/home.php`);
        xhr.setRequestHeader('Content-type', 'text/html; charset=windows-1251');
        if (xhr.overrideMimeType) {
            xhr.overrideMimeType('text/html; charset=windows-1251');
        }

        xhr.addEventListener('load', () => {
            var parser = new DOMParser();
            var doc = parser.parseFromString(xhr.responseText, "text/html");

            let equippedArtsCount = 0;
            const notEquipped = [];

            const head = {name: {en: "helmet", uk: "шолом", ru: "шлем"}, check: doc.getElementById("slot1")}
            const neck = {name: {en: "amulet", uk: "амулет", ru: "кулон"}, check: doc.getElementById("slot2")}
            const torso = {name: {en: "armor", uk: "броня", ru: "броня"}, check: doc.getElementById("slot3")}
            const back = {name: {en: "back", uk: "спина", ru: "спина"}, check: doc.getElementById("slot4")}
            const rHand = {name: {en: "right hand", uk: "права рука", ru: "правая рука"}, check: doc.getElementById("slot5")}
            const lHand = {name: {en: "left hand", uk: "ліва рука", ru: "левая рука"}, check: doc.getElementById("slot6")}
            const boots = {name: {en: "boots", uk: "ноги", ru: "сапоги"}, check: doc.getElementById("slot7")}
            const hRing = {name: {en: "first ring", uk: "перше кільце", ru: "первое кольцо"}, check: doc.getElementById("slot8")}
            const lRing = {name: {en: "second ring", uk: "друге кільце", ru: "второе кольцо"}, check: doc.getElementById("slot9")}
            const bag = {name: {en: "Bag", uk: "Сумка", ru: "Сумка"}, check: doc.getElementById("slot10")}
            const mirror = {name: {en: "Mirror", uk: "Дзеркало", ru: "Зеркало"}, check: doc.getElementById("slot11")};

            const mirrorInnerText = {en: "", uk: "", ru: ""};
            if (mirror.check.innerText == "") {
                mirrorInnerText.en = "Mirror is not equipped!";
                mirrorInnerText.uk = "Дзеркало не одягнуто!";
                mirrorInnerText.ru = "Зеркало не надето!";
            } else {
                mirrorInnerText.en = "Mirror is equipped";
                mirrorInnerText.uk = "Дзеркало одягнуто";
                mirrorInnerText.ru = "Зеркало надето";
            }

            const bagInnerText = {en: "", uk: "", ru: ""};
            if (bag.check.innerText == "") {
                bagInnerText.en = "Bag is not equipped!";
                bagInnerText.uk = "Сумку не одягнуто!";
                bagInnerText.ru = "Сумка не надета!";
            } else {
                bagInnerText.en = "Bag is equipped";
                bagInnerText.uk = "Сумку одягнуто";
                bagInnerText.ru = "Сумка надета";
            }

            const mainArtText = {en: "Equipped: ", uk: "Артів одягнуто: ", ru: "Артов надето: "};
            const notEquippedArtText = {en: "Not equipped: ", uk: "Не одягнуто: ", ru: "Не надето: "};

            const mirrorStyle = mirror.check.innerText == "" ? "color: red; font-size: 12px; cursor: pointer" : "color: green;font-size: 12px";
            const bagStyle = bag.check.innerText == "" ? "color: red;font-size: 12px; cursor: pointer" : "color: green;font-size: 12px";

            const arts = [head, neck, torso, back, rHand, lHand, boots, hRing,lRing];

            arts.forEach(art => {
                if (art.check.innerText !== "") {
                    equippedArtsCount += 1
                } else {
                    notEquipped.push(art.name[language]);
                }
            });

            const wrapper = createEl("div", `${path === "event" ? "display: flex; gap: 5px" : ""}`);
            const mainArtsBlock = createEl("div", `${equippedArtsCount < 9 ? "color: red; cursor: pointer; font-size: 12px" : "color: green; font-size: 12px"}`, `${mainArtText[language]} ${equippedArtsCount}/9`);
            const notEquippedBlock = createEl("div", "font-size: 12px; color: red; cursor: pointer", `${equippedArtsCount < 9 ? `${notEquippedArtText[language]} ${notEquipped}` : ""}`)
            const mirrorBlock = createEl("div", mirrorStyle, mirrorInnerText[language]);
            const bagBlock = createEl("div", bagStyle, bagInnerText[language]);


            wrapper.append(mainArtsBlock);
            wrapper.append(notEquippedBlock);
            wrapper.append(mirrorBlock);
            wrapper.append(bagBlock);

            wrapper.addEventListener("click", () => {location.href = `${link}/inventory.php`})

            el.append(wrapper);
        })
        xhr.send();
    }
    if (location.href.includes("pvp_guild")) {
        const h2 = [...document.getElementsByTagName("h2")][0];
        fetch_xml(h2, '');
    }

    if (location.href.includes("event")) {
        const eventHeader = document.getElementsByClassName("global_container_block_header")[0];
        fetch_xml(eventHeader, "event");
    }


})();