FlatMMO+ Reminders

Adds reminders to the game

// ==UserScript==
// @name         FlatMMO+ Reminders
// @namespace    com.dounford.flatmmo.reminder
// @version      0.0.3
// @description  Adds reminders to the game
// @author       Dounford
// @license      MIT
// @match        *://flatmmo.com/play.php*
// @grant        none
// @require      https://update.greasyfork.org/scripts/544062/FlatMMOPlus.js
// ==/UserScript==
 
(function() {
    'use strict';
	const ding = new Audio("https://github.com/Dounford-Felipe/DHM-Idle-Again/raw/refs/heads/main/ding.wav");
 
    class RemindersPlugin extends FlatMMOPlusPlugin {
        constructor() {
            super("reminders", {
                about: {
                    name: "Reminder",
                    version: "0.0.1",
                    author: "Dounford",
                    description: "Adds reminders to the game"
                },
                config: [
                    {
						id: "pingVolume",
						label: "Ping Volume",
						type: "range",
						min: 0,
						max: 100,
						step: 1,
						default: 100,
					},
                ]
            });
        }
 
        
        onLogin(){
            ding.volume = this.config.pingVolume / 100;

            window.FlatMMOPlus.registerCustomChatCommand("reminder", (command, data='') => {
				if (data === "") {
                    this.showText("You need to specify the duration")
					return;
				}
                let duration;
                let text = "Reminder";
                const space = data.indexOf(" ");
				if (space <= 0) {
					duration = parseInt(data) ;
				} else {
					duration = parseInt(data.substring(0, space));
					text += ": " + data.substring(space + 1);
				}

                this.showText(`Reminder created (${duration} minutes)`);

                setTimeout(()=>{
                    this.showText(text, "orange");
                    ding.play();
                }, duration * 60 * 1000);

			}, `Sets an reminder. Usage: /reminder <minutes> [text (optional)]`);
        }

        onConfigsChanged() {
            ding.volume = this.config.pingVolume / 100;
		}

        showText(text, color = "orange") {
            if("flatChat" in FlatMMOPlus.plugins) {
                FlatMMOPlus.plugins.flatChat.showWarning(text, color);
            } else {
                add_to_chat("", "", "", color, text);
            }
        }
    }
 
    const plugin = new RemindersPlugin();
    FlatMMOPlus.registerPlugin(plugin);
 
})();