🏠 Home 

IdlePixel+ Plugin Template

Blank plugin with all IP+ methods, and custom message handling

// ==UserScript==
// @name         IdlePixel+ Plugin Template
// @namespace    luxferre.dev
// @version      1.2.1
// @description  Blank plugin with all IP+ methods, and custom message handling
// @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
// @require		 https://greasyfork.org/scripts/484046/code/IdlePixel%2B%20Custom%20Handling.js?anticache=20240721
// ==/UserScript==
(function() {
'use strict';
class TemplatePlugin extends IdlePixelPlusPlugin {
constructor() {
super("template", {
about: {
name: GM_info.script.name,
version: GM_info.script.version,
author: GM_info.script.author,
description: GM_info.script.description
},
config: [
{
id: "template",
label: "template",
type: "string",
max: 2000,
default: ""
}
]
});
this.previous = "";
}
onConfigsChanged() { }
onLogin() { }
onMessageReceived(data) { }
onVariableSet(key, valueBefore, valueAfter) { }
onChat(data) { }
onPanelChanged(panelBefore, panelAfter) { }
onCombatStart() { }
onCombatEnd() { }
onCustomMessagePlayerOffline(player, content) { }
onCustomMessageReceived(player, content, callbackId) {
const customData = Customs.parseCustom(player, content, callbackId)        // Parses custom data into an object, assumes the Anwinity Standard
if (!(customData.plugin === "--template--" || customData.anwinFormatted)){      // Checks if custom is formatted in the correct way, and from the correct plugin
return
}
if (customData.player === "--template--"){      // Checks if custom is received from the correct player
if (customData.command === "--template--"){     // Runs relevant command code, replace with switch statment if using many commands
console.log(customData.payload)
}
}
}
}
const plugin = new TemplatePlugin();
IdlePixelPlus.registerPlugin(plugin);
})();