您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sends custom messages to an account and logs received customs
当前为
// ==UserScript== // @name IdlePixel Custom Interactor // @namespace lbtechnology.info // @version 1.3.0 // @description Sends custom messages to an account and logs received customs // @author Lux-Ferre // @license MIT // @match *://idle-pixel.com/login/play* // @grant none // @require https://gf.zukizuki.org/scripts/441206-idlepixel/code/IdlePixel+.js?anticache=20220905 // ==/UserScript== (function() { 'use strict'; class CustomInteractorPlugin extends IdlePixelPlusPlugin { constructor() { super("custominteractor", { about: { name: GM_info.script.name, version: GM_info.script.version, author: GM_info.script.author, description: GM_info.script.description }, config: [ { id: "receiver", label: "Default account to send custom messages to.", type: "string", max: 20, default: "" }, { id: "textareaLines", label: "Number of lines to display on custom panel.", type: "integer", min: 1, max: 30, default: 10 } ] }); this.previous = ""; } createPanel(){ IdlePixelPlus.addPanel("interactor", "Custom Message Interactor", function() { let content = `<div>` content += `<br/>` content += `<form onsubmit='event.preventDefault(); IdlePixelPlus.plugins.custominteractor.sendCustom()'>` content += `<label for='interactor_name_in'><p style="-webkit-text-stroke:1px cadetblue;">Recipient:  </p></label>` content += `<input type="text" id="interactor_name_in"><br/>` content += `<label for='interactor_command_in'><p style="-webkit-text-stroke:1px cadetblue;">Custom Command:  </p></label>` content += `<input type="text" id="interactor_command_in"><br/><br/>` content += `<input type="submit" value="Send">` content += `</form>` content += `<br/>` content += `<br/>` content += `<p><p style="-webkit-text-stroke:1px cadetblue;">Most recently received customs:</p></p>` content += `<textarea id="customs_received" wrap="off" rows="10" cols="75" readonly></textarea>` content += `</div>` return content }); } onLogin(){ const onlineCount = $(".top-bar .gold:not(#top-bar-admin-link)"); onlineCount.before(` <a href="#" class="hover float-end link-no-decoration" onclick="event.preventDefault(); IdlePixelPlus.setPanel('interactor')" title="Custom Message Interactor">Custom </a> `); this.createPanel() $("#interactor_name_in").val(this.getConfig("receiver")) } onCustomMessageReceived(player, content, callbackId) { const output_string = `${player}: ${content}` console.log(output_string) const textOutput = $("#customs_received") const lines = textOutput.val().split('\n') lines.unshift(output_string) if(lines.length > this.getConfig("textareaLines")){ lines.pop() } const newText = lines.join('\n') textOutput.val(newText) } sendCustom(){ const recipient = $("#interactor_name_in").val() const customPrompt = $("#interactor_command_in").val() $("#interactor_command_in").val("") const content = `interactor:${customPrompt}` const payload = { content: content, onResponse: function(player, content, callbackId) { return true; }, onOffline: function(player, content) { console.log(content) }, timeout: 2000 // callback expires after 2 seconds } IdlePixelPlus.sendCustomMessage(recipient, payload) } } const plugin = new CustomInteractorPlugin(); IdlePixelPlus.registerPlugin(plugin); })();