MC百科丨后台 GUI 处理辅助

给顶栏加个按钮,以便在模组间切换

作者
WuzgXY-GitHub
日安装量
0
总安装量
50
评分
0 0 0
版本
0.1
创建于
2023-01-17
更新于
2023-01-17
许可证
CC BY-NC-SA 3.0
适用于

MC百科丨后台 GUI 处理辅助

给顶栏加个按钮,以便在模组间或本模组各 GUI 间(未实现)切换

仅对 GUI 及 8860 前的模组有效

别反复点

十分钟瞎写的,仅供自用,懒得更新

依赖 jQuery 但是 MC 百科有所以我这也没写 require

目前进度:全是 bug 懒得写了,代码见下

// ==UserScript== // @name MC百科丨后台 GUI 处理辅助 // @namespace WuzgXY-MCMOD-GUIAssist // @version 0.1.0 // @description 给顶栏加个按钮,以便在模组间切换 // @author WuzgXY // @match https://admin.mcmod.cn/ // @require https://www.mcmod.cn/static/public/js/jquery-2.1.0.min.js // @require https://cdn.bootcdn.net/ajax/libs/bootstrap-select/1.13.18/js/bootstrap-select.min.js // @license CC BY-NC-SA 3.0 // ==/UserScript==

// 必须异步加载!https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver/observe

(function () { "use strict";

var leftButtonList = document.getElementsByName("menuJump");
for (var i in leftButtonList)
{
    if (leftButtonList[i].getAttribute("data-page") == "pageModGUI")
    {
        leftButtonList[i].addEventListener("click", () =>
        {
            setTimeout(() =>
            {
                var innerFirstPanel = '<div class="panel panel-default">' + $(".panel.panel-default")[1].innerHTML + '</div>'; // 直接拿到整个 innerHTML,强过请求 https://admin.mcmod.cn/frame/pageModGUI/
                document.onmousedown = (event) =>
                {
                    if (event.target.tagName == "I") // 如果点了编辑
                    {
                        var classId = $("#class-version-list")[0].selectedIndex;
                        setTimeout(() =>
                        {
                            var buttonIntermod = '<button id="buttonIntermod" class="btn btn-primary action-btn" style="display: none; margin-right: 8px;">切换模组</button>';
                            var buttonIntergui = '<button id="buttonIntergui" class="btn btn-primary action-btn" style="display: none;">本模组内切换 GUI</button>';
                            $(".panel-default")[0].innerHTML += buttonIntermod + " " + buttonIntergui; //  + "<br>"
                            $("#buttonIntermod")[0].addEventListener("click", () =>
                            {
                                appendSelect();
                            }, false); // 这个 addEventListener 怎么点击一次自动销毁啊??还把另一个按钮一块也销毁了??
                            $("#buttonIntergui")[0].addEventListener("click", () =>
                            {
                                appendSelect();
                                setTimeout(() =>
                                {
                                    $("#class-version-list").selectpicker("val", classId.toString());
                                }, 1000);
                            }, false);
                            function appendSelect()
                            {
                                console.log(1);
                                if ($(".panel-default")[2]) { console.log(111); $(".panel-default")[1].remove(); } // 已有一个去掉原来的
                                $(".panel-default")[0].innerHTML += innerFirstPanel;
                                $(".dropdown-toggle")[1].remove(); // 去掉多的那个选框

                                function selectOnchanged() // 直接来自 plugins.js?v=16
                                {
                                    var t = $("#class-version-list").attr("data-frame"), e = $("#class-version-list").attr("data-page"), a = {};
                                    var n = {}, i = $("#class-version-list").attr("data-name");
                                    a.length > 0 && (n = $.parseJSON(a)), i && (n[i] = $("#class-version-list").val()), setPage(e, t, n);
                                }
                                selectOnchanged();
                            }
                            buttonIntermod = $("#buttonIntermod")[0];
                            buttonIntergui = $("#buttonIntergui")[0];
                            $(".panel-default")[0].appendChild(buttonIntermod);
                            $(".panel-default")[0].appendChild(buttonIntergui);
                            $("#buttonIntermod").show();
                            $("#buttonIntergui").show();
                        }, 1000);
                    }
                }
            }, 2000);
        }, false);
        break;
    }
}
console.log("成功启动 WuzgGUIAssist");

})();