您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Creates a panel for backing up IP+ Configs
当前为
- // ==UserScript==
- // @name IdlePixelPlus Config Backup
- // @namespace lbtechnology.info
- // @version 1.0.0
- // @description Creates a panel for backing up IP+ Configs
- // @author Lux-Ferre
- // @license MIT
- // @match *://idle-pixel.com/login/play*
- // @grant none
- // @require https://greasyfork.org/scripts/441206-idlepixel/code/IdlePixel+.js?anticache=20220905
- // ==/UserScript==
- (function() {
- 'use strict';
- class IPPBackupPlugin extends IdlePixelPlusPlugin {
- constructor() {
- super("IPPBackup", {
- about: {
- name: GM_info.script.name,
- version: GM_info.script.version,
- author: GM_info.script.author,
- description: GM_info.script.description
- }
- });
- this.previous = "";
- }
- createPanel(){
- IdlePixelPlus.addPanel("ippbackup", "Backup/Restore Panel", function() {
- let content = `<div>`
- content += `<br/>`
- IdlePixelPlus.forEachPlugin(plugin=>{
- const id = plugin.id
- content += `<div>`
- content += `<label for='${id}_text'><p style="-webkit-text-stroke:1px cadetblue;">${id}:  </p></label>`
- content += `<input id="${id}_text" type="text" style="width: 90%; float:right" readonly>`
- content += `</div>`
- })
- content += `<input type="button" value="Load All" onClick="IdlePixelPlus.plugins.IPPBackup.loadAll()" id="load_all_button">`
- content += `<input type="button" value="Backup All" onClick="IdlePixelPlus.plugins.IPPBackup.backupAll()" id="backup_all_button">`
- content += `<input type="button" value="Restore All" onClick="IdlePixelPlus.plugins.IPPBackup.restoreAll()" id="restore_all_button">`
- content += `</div>`
- return content
- });
- }
- loadAll(){
- IdlePixelPlus.forEachPlugin(plugin=>{
- const id = plugin.id
- let stored = localStorage.getItem(`idlepixelplus.${id}.config`);
- if (stored == null){
- stored = "";
- }
- const plugin_textbox = `#${id}_text`
- $(plugin_textbox).val(stored)
- })
- }
- backupAll(){
- var data = {}
- IdlePixelPlus.forEachPlugin(plugin=>{
- const id = plugin.id
- let stored = localStorage.getItem(`idlepixelplus.${id}.config`);
- if (stored != null){
- data[id] = stored;
- }
- })
- prompt("Config Backup:", JSON.stringify(data))
- }
- restoreAll(){
- var data = {}
- const raw_input = prompt("Paste backup here:")
- const config_obj = JSON.parse(raw_input)
- for (const [key, value] of Object.entries(config_obj)) {
- localStorage.setItem(`idlepixelplus.${key}.config`, value);
- }
- }
- onLogin(){
- this.createPanel()
- const lastMenuItem = $("#menu-bar-buttons > .hover-menu-bar-item").last();
- lastMenuItem.after(`
- <div onclick="IdlePixelPlus.setPanel('ippbackup')" class="hover hover-menu-bar-item">
- <p>💾 PLUGIN BACKUP</p>
- </div>
- `)
- }
- }
- const plugin = new IPPBackupPlugin();
- IdlePixelPlus.registerPlugin(plugin);
- })();