Cartel Empire - Quick Refills/Resets

Adds buttons to pages to allow you to quick use point refills and resets without being on the Supporter page. Change energyBarRefill to true to allow clicking the energy bar with 0 energy using your energy refill

目前為 2025-04-12 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Cartel Empire - Quick Refills/Resets
// @namespace    baccy.ce
// @version      0.1.4
// @description  Adds buttons to pages to allow you to quick use point refills and resets without being on the Supporter page. Change energyBarRefill to true to allow clicking the energy bar with 0 energy using your energy refill
// @author       Baccy
// @match        https://cartelempire.online/*
// @icon         https://cartelempire.online/images/icon-white.png
// @grant        GM.setValue
// @grant        GM.getValue
// @license      MIT
// ==/UserScript==


(async function() {
    'use strict';


    const energyBarRefill = true; //true; // Change to true to allow clicking the energy bar activating your energy refill if it is at 0 energy


    const now = new Date();
    now.setUTCHours(0, 0, 0, 0);
    const day = now.getUTCDate();

    const settings = await GM.getValue('pointsData', {});

    function energyBar() {
        if (settings.refillEnergy && settings.refillEnergy === day) return;
        const energyBar = document.querySelector('#energyProgress').parentElement;
        energyBar.addEventListener('click', async () => {
            const currentEnergy = document.querySelector('#currentEnergy');
            if (parseInt(currentEnergy.textContent) === 0) {
                const response = await fetch('https://cartelempire.online/Supporter/Refill/Energy', { method: 'POST' });
                if (response.ok) {
                    settings.refillEnergy = day;
                    await GM.setValue('pointsData', settings);
                    window.location.reload();
                }
            }
        });
    }

    async function addButtons() {
        let title = null;
        let url;
        let header = 1;
        let key;
        switch (location.pathname) {
            case '/Supporter':
                title = 'Supporter';
                break;
            case '/PetShop':
                title = 'Reset Pets';
                url = 'https://cartelempire.online/Supporter/ResetPetShop';
                key = 'resetPetSlots';
                break;
            case '/Town/Club':
                title = 'Reset Sicarios';
                url = 'https://cartelempire.online/Supporter/ResetClubRecruitment';
                key = 'resetSicarioRecruitmentSlots';
                break;
            case '/Casino/Blackjack':
                title = 'Refill Tokens';
                url = 'https://cartelempire.online/Supporter/ResetTokens';
                key = 'resetCasinoTokens';
                break;
            case '/Casino/Spinner':
                title = 'Refill Tokens';
                url = 'https://cartelempire.online/Supporter/ResetTokens';
                key = 'resetCasinoTokens';
                break;
            case '/Casino/Slots':
                title = 'Refill Tokens';
                url = 'https://cartelempire.online/Supporter/ResetTokens';
                key = 'resetCasinoTokens';
                break;
            case '/Casino/Lottery':
                title = 'Refill Tokens';
                url = 'https://cartelempire.online/Supporter/ResetTokens';
                key = 'resetCasinoTokens';
                header = 3;
                break;
            case '/Gym':
                title = 'Refill Energy';
                url = 'https://cartelempire.online/Supporter/Refill/Energy';
                key = 'refillEnergy';
                header = 0;
                break;
            case '/University':
                title = 'Refill Energy';
                url = 'https://cartelempire.online/Supporter/Refill/Energy';
                key = 'refillEnergy';
                header = 0;
                break;
            case '/Hospital':
                title = 'Refill Life';
                url = 'https://cartelempire.online/Supporter/Refill/Life';
                key = 'refillLife';
                header = 0;
                break;
            default:
                break;
        }
        if (title !== null) {
            if (title === 'Supporter') {
                const keys = ['resetPetSlots', 'refillLife', 'refillEnergy', 'resetCasinoTokens', 'resetSicarioRecruitmentSlots'];
                for (const key of keys) {
                    const el = document.getElementById(key);
                    if (el && el.classList.contains('disabled')) {
                        settings[key] = day;
                    }
                }
                await GM.setValue('pointsData', settings);
            } else {
                if (settings[key] && settings[key] === day) return;
                const headers = document.querySelectorAll('.header-section');
                if (headers[header]) {
                    headers[header].style.cssText = 'display: flex; justify-content: space-between;';
                    const button = document.createElement('button');
                    button.textContent = title;
                    button.style.cssText = 'background: #1e1e1e; color: #fff; border: 1px solid #555; padding: 10px 15px; border-radius: 5px; cursor: pointer; font-size: 14px;';
                    button.addEventListener('click', async () => {
                        button.style.pointerEvents = 'none';
                        button.style.opacity = '50%';
                        const response = await fetch(url, { method: 'POST' });
                        if (response.ok) {
                            settings[key] = day;
                            await GM.setValue('pointsData', settings);
                            window.location.reload();
                        } else {
                            button.style.pointerEvents = '';
                            button.style.opacity = '100%';
                        }
                    });
                    headers[header].appendChild(button);
                }
            }
        }
    }


    if (energyBarRefill) energyBar();
    addButtons();
})();