Sends custom messages to an account and logs received customs
当前为
// ==UserScript==
// @name IdlePixel Custom Interactor
// @namespace lbtechnology.info
// @version 1.0.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://greasyfork.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: "reciever",
label: "Account to send custom messages to.",
type: "string",
max: 2000,
default: ""
}
]
});
this.previous = "";
}
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.plugins.custominteractor.sendCustom()" title="Custom message">Custom </a>
`);
}
onCustomMessageReceived(player, content, callbackId) {
console.log(`${player}: ${content}`)
}
sendCustom(){
const reciever = this.getConfig("reciever")
let customPrompt = window.prompt()
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(reciever, payload)
}
}
const plugin = new CustomInteractorPlugin();
IdlePixelPlus.registerPlugin(plugin);
})();