您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Library which creates a modal for opening plugin panels.
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/491983/1356644/IdlePixel%2B%20Plugin%20Paneller.js
// ==UserScript== // @name IdlePixel+ Plugin Paneller // @namespace lbtechnology.info // @version 1.0.0 // @description Library which creates a modal for opening plugin panels. // @author Lux-Ferre // @license MIT // @match *://idle-pixel.com/login/play* // @grant none // ==/UserScript== (function() { if(window.Paneller) { // already loaded return; } class Paneller { constructor() { this.registered_panels = [] this.addStyles() this.createModal() } addStyles(){ let backgroundColour let textColour if ("ui-tweaks" in IdlePixelPlus.plugins){ backgroundColour = IdlePixelPlus.plugins["ui-tweaks"].config["color-chat-area"] textColour = IdlePixelPlus.plugins["ui-tweaks"].config["font-color-chat-area"] } else { backgroundColour = "white" textColour = "black" } $("head").append(` <style id="styles-paneller"> #panellerModalInner { background-color: ${backgroundColour}; color: ${textColour}; } #panellerModalHeader { padding: calc(var(--bs-modal-padding) - var(--bs-modal-header-gap) * .5); background-color: var(--bs-modal-header-bg); border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); border-top-right-radius: var(--bs-modal-inner-border-radius); border-top-left-radius: var(--bs-modal-inner-border-radius); } #panellerModal .modal-body { overflow-y: auto; } .panellerModalButton { background-color: RGBA(1, 150, 150, 0.5); margin-bottom: 2px; } </style> `) } registerPanel(panelName, displayName){ this.registered_panels.push({ name: panelName, display: displayName }) } createModal(){ const modalString = ` <div id="panellerModal" class="modal fade" role="dialog" tabindex="-1""> <div class="modal-dialog modal-dialog-centered" role="document"> <div id="panellerModalInner" class="modal-content"> <div id="panellerModalHeader" class="modal-header text-center"> <h3 class="modal-title w-100"><u>Panel Selector</u></h3> </div> <div class="modal-body"> <div id="panellerModalList" class="overflow-auto"></div> </div> </div> </div> </div> ` const modalElement = $.parseHTML(modalString) $(document.body).append(modalElement) } populateModal(){ const panellerModalList = $("#panellerModalList") panellerModalList.empty() this.registered_panels.forEach(panel => { const newItemString = `<div class="d-flex justify-content-between rounded-pill panellerModalButton" data-panelName="${panel.name}"><span class="panellerModalText">${panel.display}"</span></div>` const newItemElement = $.parseHTML(newItemString) panellerModalList.append(newItemElement) }) $(".panellerModalButton").attr("onclick", "IdlePixelPlus.setPanel(this.getAttribute('data-panelName'))") } } // Add to window and init window.Paneller = new Paneller(); })();