您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide items, auto saved, reset buttom
// ==UserScript== // @name Hide Roblox Items // @namespace khanh_dev // @version 1.0 // @description Hide items, auto saved, reset buttom // @match https://www.roblox.com/my/avatar* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; const STORAGE_KEY = 'hiddenItemsList'; function getHiddenItems() { return JSON.parse(localStorage.getItem(STORAGE_KEY) || '[]'); } function saveHiddenItems(list) { localStorage.setItem(STORAGE_KEY, JSON.stringify(list)); } function createStyledResetButton() { if (document.getElementById('reset-hidden-items')) return; const btnReset = document.createElement('button'); btnReset.id = 'reset-hidden-items'; btnReset.textContent = 'Reset Hided Items'; btnReset.style.position = 'fixed'; btnReset.style.top = '80px'; btnReset.style.right = '1050px'; btnReset.style.zIndex = '9999'; btnReset.style.padding = '10px 20px'; btnReset.style.fontSize = '14px'; btnReset.style.fontWeight = 'bold'; btnReset.style.color = '#fff'; btnReset.style.backgroundColor = '#333'; btnReset.style.border = 'none'; btnReset.style.borderRadius = '8px'; btnReset.style.cursor = 'pointer'; btnReset.style.boxShadow = '0 2px 6px rgba(0,0,0,0.3)'; btnReset.style.transition = 'background-color 0.2s ease'; btnReset.onmouseenter = () => { btnReset.style.backgroundColor = '#555'; }; btnReset.onmouseleave = () => { btnReset.style.backgroundColor = '#333'; }; btnReset.onclick = () => { localStorage.removeItem(STORAGE_KEY); const allItems = document.querySelectorAll('li.item-card, li.list-item'); allItems.forEach(item => { item.style.display = ''; }); }; document.body.appendChild(btnReset); } function enhanceItems() { const hiddenItems = getHiddenItems(); const items = document.querySelectorAll('li.item-card, li.list-item'); items.forEach(item => { if (item.classList.contains('enhanced')) return; item.classList.add('enhanced'); item.style.position = 'relative'; const thumb = item.querySelector('.item-card-thumb-container'); const itemName = thumb?.getAttribute('data-item-name')?.trim(); if (itemName && hiddenItems.includes(itemName)) { item.style.display = 'none'; return; } const btnHide = document.createElement('button'); btnHide.textContent = 'Hide'; btnHide.title = 'Hide this item'; btnHide.style.position = 'absolute'; btnHide.style.top = '4px'; btnHide.style.right = '4px'; btnHide.style.padding = '2px 8px'; btnHide.style.fontSize = '12px'; btnHide.style.background = '#ff4d4d'; btnHide.style.color = '#fff'; btnHide.style.border = 'none'; btnHide.style.borderRadius = '4px'; btnHide.style.cursor = 'pointer'; btnHide.style.display = 'none'; btnHide.style.zIndex = '10'; btnHide.onclick = (e) => { e.stopPropagation(); if (itemName) { const updated = [...hiddenItems, itemName]; saveHiddenItems(updated); } item.style.display = 'none'; }; item.appendChild(btnHide); item.addEventListener('mouseenter', () => { btnHide.style.display = 'block'; }); item.addEventListener('mouseleave', () => { btnHide.style.display = 'none'; }); }); } createStyledResetButton(); const observer = new MutationObserver(() => { enhanceItems(); }); observer.observe(document.body, { childList: true, subtree: true }); enhanceItems(); })();