Enable Attack Button on Torn Profile Page

Enables the disabled button on Torn profile page when a player is in hospital and redirects to the attack page when the button is clicked

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Enable Attack Button on Torn Profile Page
// @namespace    https://lordrhino.co.uk/
// @version      1.2
// @description  Enables the disabled button on Torn profile page when a player is in hospital and redirects to the attack page when the button is clicked
// @match        https://www.torn.com/profiles.php?XID=*
// ==/UserScript==

(function () {
  'use strict';

  function getProfileID() {
    const url = new URL(location.href);
    const xid = url.searchParams.get('XID');
    if (xid && /^\d+$/.test(xid)) return xid;
    const m = location.href.match(/[?&]XID=(\d+)/i);
    return m ? m[1] : '';
  }
  const PROFILE_ID = getProfileID();

  function enableButton(button) {
    if (!button) return;
    if (button.classList.contains('disabled') || button.hasAttribute('disabled')) {
      button.classList.remove('disabled');
      button.classList.add('active');
      button.removeAttribute('aria-disabled');
      button.removeAttribute('disabled');
      button.removeAttribute('href');
      button.addEventListener('click', handleButtonClick);
      const svg = button.querySelector('svg');
      if (svg) {
        svg.removeAttribute('fill');
        svg.setAttribute('fill', 'url(#linear-gradient-dark-mode)');
      }
      button.style.border = '1px solid red';
      button.style.pointerEvents = 'auto';
      button.style.cursor = 'pointer';
      button.style.opacity = '1';
      button.style.filter = 'none';
    } else {
      button.addEventListener('click', handleButtonClick);
    }
  }

  function handleButtonClick(event) {
    event.preventDefault();
    if (!PROFILE_ID) {
      console.warn('Could not read XID from URL.');
      return;
    }
    window.location.href = `https://www.torn.com/loader.php?sid=attack&user2ID=${PROFILE_ID}`;
  }

  const check = setInterval(() => {
    const buttons = document.querySelectorAll('[id^="button0-profile-"]');
    if (buttons.length) {
      clearInterval(check);
      buttons.forEach(enableButton);
    }
  }, 250);
})();