Scratch Admin Permissions

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

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

Advertisement:

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

Advertisement:

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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;");
})();