Torn Extra Shortcuts

Add shortcuts to sidebar items-- or anything

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Torn Extra Shortcuts
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Add shortcuts to sidebar items-- or anything
// @author       Deviyl[3722358]
// @license      MIT
// @icon         https://raw.githubusercontent.com/deviyl/media/refs/heads/main/icons/devicon.png
// @match        https://www.torn.com/*
// ==/UserScript==

// Donations are always appreciated if you find this helpful. <3

(function() {
    'use strict';

    const SHORTCUTS = [
        ['[class*="money-positive___"]', 'https://www.torn.com/factions.php?step=your&type=1#/tab=armoury'],
        ['[class*="energy___"]',         'https://www.torn.com/gym.php'],
        ['[class*="nerve___"]',          'https://www.torn.com/page.php?sid=crimes#/'],
        ['[class*="happy___"]',          'https://www.torn.com/item.php#candy-items'],
        ['[class*="life___"]',           'https://www.torn.com/factions.php?step=your&type=1#/tab=armoury'],
    ];

    function wrap(sel, href) {
        const el = document.querySelector(sel);
        if (!el || el.closest('a')) return;
        const a = document.createElement('a');
        a.href = href;
        a.style.display = 'contents';
        el.parentNode.insertBefore(a, el);
        a.appendChild(el);
    }

    const init = () => SHORTCUTS.forEach(([sel, href]) => wrap(sel, href));

    new MutationObserver(init).observe(document.body, { childList: true, subtree: true });
    window.addEventListener('load', init);
    init();
})();