robloxscripts.com ad blocker detection bypass

Bypasses the ad blocker detection for robloxscripts.com

2024-04-09 기준 버전입니다. 최신 버전을 확인하세요.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         robloxscripts.com ad blocker detection bypass
// @namespace    http://tampermonkey.net/
// @version      2024-04-09
// @description  Bypasses the ad blocker detection for robloxscripts.com
// @run-at       document-start
// @author       noam01
// @match        https://robloxscripts.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=robloxscripts.com
// @antifeature  Forced ads
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    let ad_detect = false;
    let observer = new MutationObserver((list,obs)=>{
        list.forEach(ch=>{
            if (ch.addedNodes) {
                ch.addedNodes.forEach(node=>{
                    if (node.nodeName == "#comment" && node.data.trim().toLowerCase() == "code for ad blocking detection") {
                        ad_detect = true;
                    } else if (node.nodeName == "#comment" && node.data.trim().toLowerCase() == "code for ad blocking detection end") {
                        observer.disconnect();
                    }
                    if (node.nodeName == "SCRIPT" && ad_detect) {
                        node.remove();
                    }
                })
            }
        })
    });
    observer.observe(document.body,{
        attributes: false, childList: true, subtree: true
    });
})();