您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
(NOT SAFE) but if you get ban you can sign up with new email and WD to old FaucetPay (read desc)
// ==UserScript== // @name Starlavinia Auto (ON) // @namespace https://example.com/starlavinia-autofaucet // @version 1.4 // @description (NOT SAFE) but if you get ban you can sign up with new email and WD to old FaucetPay (read desc) // @author 👽 // @match https://starlavinia.name.tr/faucet // @grant none // @license MIT // @run-at document-idle // ==/UserScript== (function () { 'use strict'; var stopped = false; var refreshed = false; // Prevent event bubbling & default function stopEvent(e) { e.stopPropagation(); e.preventDefault(); } // ===== Blocking Overlay ===== function blockPage(message) { if (document.getElementById('autoBlockerOverlay')) return; // Already blocked var overlay = document.createElement('div'); overlay.id = 'autoBlockerOverlay'; overlay.style.position = 'fixed'; overlay.style.top = '0'; overlay.style.left = '0'; overlay.style.right = '0'; overlay.style.bottom = '0'; overlay.style.background = 'rgba(0, 0, 0, 0.85)'; overlay.style.color = 'white'; overlay.style.fontSize = '24px'; overlay.style.zIndex = '9999999'; overlay.style.display = 'flex'; overlay.style.alignItems = 'center'; overlay.style.justifyContent = 'center'; overlay.style.flexDirection = 'column'; overlay.style.userSelect = 'none'; overlay.innerHTML = '<div>🔒 ' + message + '</div><div style="font-size:16px; margin-top:10px;">Please wait...</div>'; document.body.appendChild(overlay); // Prevent scrolling document.body.style.overflow = 'hidden'; // Prevent clicks and keyboard events bubbling through overlay.addEventListener('click', stopEvent, true); window.addEventListener('keydown', stopEvent, true); window.addEventListener('mousedown', stopEvent, true); } // Stop script and refresh after delay with UI blocked function stopAndRefresh(delayMs, message) { stopped = true; refreshed = true; blockPage(message); setTimeout(function () { location.reload(); }, delayMs); } // ===== Error and Lock Detection ===== var errorObserver = new MutationObserver(function () { if (refreshed || stopped) return; // Detect "Failed! Please reload the page." inside badge or any div with emoji var failBadge = Array.prototype.slice.call(document.querySelectorAll('div.mb-2.badge.bg-danger')) .find(function (el) { return el.textContent.trim() === "Failed! Please reload the page."; }); var failDiv = Array.prototype.slice.call(document.querySelectorAll('div')) .find(function (el) { return el.textContent.trim() === "🔒 Failed! Please reload the page."; }); // Detect "You've been locked for 10 minutes." var lockBadge = Array.prototype.slice.call(document.querySelectorAll('div.mb-2.badge.bg-danger')) .find(function (el) { return el.textContent.indexOf("You've been locked for 10 minutes.") !== -1; }); if ((failBadge || failDiv) && !refreshed) { console.warn('🛑 Failed detected, blocking UI and refreshing in 15 seconds...'); stopAndRefresh(15000, 'Failed! Please reload the page.'); } if (lockBadge && !refreshed) { console.warn('🔒 Locked for 10 minutes, blocking UI and refreshing in 10 minutes...'); stopAndRefresh(600000, "You've been locked for 10 minutes."); } }); errorObserver.observe(document.body, { childList: true, subtree: true }); // ===== Click OK Button with 2s delay ===== var okObserver = new MutationObserver(function () { if (stopped) return; var okBtn = document.querySelector('button.swal2-confirm.swal2-styled'); if (okBtn && okBtn.offsetParent !== null && !okBtn.dataset.clicked) { okBtn.dataset.clicked = 'true'; console.log('🕒 OK button detected — clicking in 2 seconds...'); setTimeout(function () { if (!stopped && okBtn.offsetParent !== null) { console.log('✅ Clicking OK button'); okBtn.click(); } }, 2000); } }); okObserver.observe(document.body, { childList: true, subtree: true }); // ===== Wait for Verified badge, click Claim after 7s ===== var verifiedObserver = new MutationObserver(function () { if (stopped) return; var verifiedBadge = document.querySelector('div.mb-2.badge.bg-success'); if (verifiedBadge) { console.log('✔ Verified badge found, clicking Claim in 7 seconds...'); setTimeout(function () { if (stopped) return; var claimBtn = document.querySelector('button.btn.mt-4.h-10.w-full.bg-primary'); if (claimBtn) { console.log('🔘 Clicking Claim button'); claimBtn.click(); } }, 7000); verifiedObserver.disconnect(); // run only once } }); verifiedObserver.observe(document.body, { childList: true, subtree: true }); })();