您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Overlay da Missão para o site WPlace
// ==UserScript== // @name TESTE 01 // @namespace http://tampermonkey.net/ // @version 1.1 // @description Overlay da Missão para o site WPlace // @author Víkish // @match https://wplace.live/* // @icon https://www.google.com/s2/favicons?sz=64&domain=partidomissao // @grant none // ==/UserScript== (function() { 'use strict'; function isEditableElement(el) { if (!el) return false; const tag = el.tagName.toLowerCase(); return ( tag === 'input' || tag === 'textarea' || el.isContentEditable ); } function isVisible(el) { return !!(el && el.offsetWidth > 0 && el.offsetHeight > 0); } function findPaletteButton() { const btns = Array.from(document.querySelectorAll('button, a')); return btns.find(b => b.textContent.trim().toLowerCase().includes('pintar')); } // dispara eventos de pointer (em vez de .click()) para não causar zoom function safeClick(el) { if (!el) return; const rect = el.getBoundingClientRect(); const opts = { bubbles: true, clientX: rect.x+5, clientY: rect.y+5 }; el.dispatchEvent(new PointerEvent("pointerdown", opts)); el.dispatchEvent(new PointerEvent("pointerup", opts)); } (function(){ function enterKeyHandler(e){ try{ if (!(e.key === 'Enter' || e.keyCode === 13)) return; if (isEditableElement(document.activeElement)) return; if (e.ctrlKey || e.metaKey || e.altKey) return; e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); const paintBtn = findPaletteButton(); if (!paintBtn) return; const closeButtons = Array.from(document.querySelectorAll('button.btn.btn-circle.btn-sm')) .filter(isVisible); const closeIcon = closeButtons.length ? closeButtons[0] : null; const isOpen = !!closeIcon; if (isOpen) { safeClick(closeIcon); setTimeout(()=>{ try { if (document.activeElement && typeof document.activeElement.blur === 'function') document.activeElement.blur(); } catch(e){} }, 30); } else { safeClick(paintBtn); } }catch(err){} } function enterKeyUpBlocker(e){ try{ if (!(e.key === 'Enter' || e.keyCode === 13)) return; if (isEditableElement(document.activeElement)) return; if (e.ctrlKey || e.metaKey || e.altKey) return; e.preventDefault(); e.stopImmediatePropagation(); e.stopPropagation(); }catch(err){} } document.addEventListener('keydown', enterKeyHandler, { passive: false, capture: true }); document.addEventListener('keyup', enterKeyUpBlocker, { passive: false, capture: true }); })(); })();