Scratch Admin Permissions

Allows all to get admin permissions (CLIENT-SIDED ONLY)

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Scratch Admin Permissions
// @namespace    http://tampermonkey.net/
// @version      5.1
// @description  Allows all to get admin permissions (CLIENT-SIDED ONLY)
// @author       Phil 🥹👍 and DynaHacks
// @license      MIT
// @match        https://scratch.mit.edu/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // A permanent watcher that overrides the property every time it's accessed
    function forceAdmin(obj) {
        if (!obj || obj.admin === true) return;

        Object.defineProperty(obj, 'admin', {
            get: () => true,
            set: () => {}, // Ignore attempts to reset to false
            configurable: true,
            enumerable: true
        });
    }

    // Monitor for the store appearing
    const observer = new MutationObserver(() => {
        // Look for the store anywhere in the window/app
        if (window.store && window.store.getState) {
            forceAdmin(window.store.getState().permissions);
        }
    });

    observer.observe(document.documentElement, { childList: true, subtree: true });

    // Also monitor the object directly if we find it
    setInterval(() => {
        try {
            if (window.store) forceAdmin(window.store.getState().permissions);
        } catch(e) {}
    }, 200);

    console.log("%c[Admin Granted] Admin has been granted to user.", "color: #00ff00; font-weight: bold;");
})();