save time to click (Legacy Support)

Adding button to save your time (Supports older Firefox versions)

当前为 2025-02-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         save time to click (Legacy Support)
// @namespace    http://tampermonkey.net/
// @version      0.0.3
// @description  Adding button to save your time (Supports older Firefox versions)
// @match        https://www.edominacy.com/*/battlefield/*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    const PREFIX = {
        NAVY: "a#battleWeapons_25_",
        TANK: "a#battleWeapons_26_",
        SPECIAL_WEAPON: "a#battleWeapons_32_5"
    };

    // Replacing private fields with regular properties
    function WeaponQualityManager() {
        this.quality = 5;
        this.isInitial = true;
    }

    WeaponQualityManager.prototype.pickNextQuality = function (callback) {
        if (this.quality > 1) {
            this.quality--;
        } else {
            callback();
        }
    };

    WeaponQualityManager.prototype.getCurrentQuality = function () {
        return this.quality;
    };

    WeaponQualityManager.prototype.reset = function () {
        this.quality = 5;
        this.isInitial = true;
    };

    var weaponQualityManager = new WeaponQualityManager();

    function getProfileId() {
        var profileLink = document.querySelector("ul.dropdown-menu a[href*='/en/profile/']");
        if (profileLink) {
            var href = profileLink.href;
            var profileId = href.split("/").pop();
            console.log("Profile ID found:", profileId);
            return profileId;
        } else {
            console.log("Profile link not found!");
            return null;
        }
    }

    function selectWeapon(quality) {
        var weapon = document.querySelector(PREFIX.TANK + quality);
        if (!weapon) {
            weapon = document.querySelector(PREFIX.NAVY + quality);
        }
        return weapon;
    }

    function checkSpecialWeapon() {
        var specialWeapon = document.querySelector(PREFIX.SPECIAL_WEAPON);
        if (specialWeapon && !specialWeapon.classList.contains("disabled")) {
            console.log("Special weapon is available.");
            return specialWeapon;
        }
        console.log("Special weapon is not available.");
        return null;
    }

    function fighter(params) {
        console.log("Starting fighter interval...");
        var intervalId = setInterval(function () {
            console.log("Interval running...");

            var energy = document.getElementById("energyBarT");
            if (!energy) {
                console.log("Energy bar not found!");
                return;
            }

            var numberEnergy = parseInt(energy.innerText, 10);
            console.log("Energy:", numberEnergy);

            var energyBar = document.getElementById("battleEnergy");
            var countDown = document.querySelector(".countdown_row.countdown_amount");
            var profileId = getProfileId();
            if (!profileId) {
                console.log("Profile ID not found, stopping...");
                return;
            }

            var fightButton = document.getElementById("battleFight" + profileId);
            if (!fightButton) {
                console.log("Fight button not found for profile ID:", profileId);
                return;
            }

            if (!countDown || countDown.innerText === "00:00:00") {
                console.log("Countdown ended, stopping...");
                if (fightButton) {
                    fightButton.innerText = "FIGHT";
                }
                restoreDefaultButtonState(params);
                clearInterval(intervalId);
                console.info("STOPPED");
                return;
            }

            fightButton.innerText = "CLICKING";

            var weapon = checkSpecialWeapon();
            if (!weapon) {
                if (weaponQualityManager.isInitial) {
                    console.log("Trying quality", weaponQualityManager.getCurrentQuality());
                    weapon = selectWeapon(weaponQualityManager.getCurrentQuality());
                    if (!weapon) {
                        console.log("No weapon found for quality", weaponQualityManager.getCurrentQuality());
                        weaponQualityManager.pickNextQuality(function () {
                            console.log("No more weapons, stopping...");
                            restoreDefaultButtonState(params);
                            clearInterval(intervalId);
                        });
                        weapon = selectWeapon(weaponQualityManager.getCurrentQuality());
                    }
                    if (weapon) {
                        console.log("Weapon found, clicking...");
                        weapon.click();
                    }
                }
            } else {
                weapon.click();
            }

            if (numberEnergy < 1001) {
                console.log("Low energy, clicking energy bar...");
                if (!energyBar) {
                    console.log("No energy bar, stopping...");
                    fightButton.innerText = "FIGHT";
                    restoreDefaultButtonState(params);
                    clearInterval(intervalId);
                    console.info("STOPPED NO MORE ENERGY");
                    return;
                }
                energyBar.click();
            } else {
                console.log("Energy OK, clicking fight button...");
                fightButton.click();
            }
        }, 2500);

        return intervalId;
    }

    function restoreDefaultButtonState(params) {
        console.log("Restoring button state...");
        params.icon.className = "fa fa-fighter-jet";
        params.button.className = "btn btn-success";
        params.button.blur();
    }

    function appendChildrenToVs919() {
        console.log("Adding button to VS919 container...");
        var container = document.querySelector("div.vs919");
        if (!container) {
            console.log("VS919 container not found!");
            return;
        }

        container.style.display = "flex";
        var startStopButton = document.createElement("button");
        startStopButton.title = "Fight";
        startStopButton.className = "btn btn-success";

        var icon = document.createElement("i");
        icon.className = "fa fa-fighter-jet";
        icon.style.pointerEvents = "none";
        startStopButton.appendChild(icon);

        var interval = null;
        startStopButton.addEventListener("click", function (e) {
            console.log("Button clicked...");

            if (interval) {
                console.log("Stopping interval...");
                restoreDefaultButtonState({
                    button: e.target,
                    icon: icon
                });
                clearInterval(interval);
                interval = null;
                return;
            }

            console.log("Starting interval...");
            icon.className = "fa fa-pause";
            e.target.className = "btn btn-info";
            e.target.blur();
            interval = fighter({
                button: e.target,
                icon: icon,
                clearParentInterval: function () {
                    console.log("Clearing interval...");
                    clearInterval(interval);
                    interval = null;
                }
            });
        });

        container.appendChild(startStopButton);
    }

    appendChildrenToVs919();
})();

QingJ © 2025

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