2024-08-22 18:22:52 +02:00
|
|
|
import { encode } from "html-entities";
|
|
|
|
|
|
|
|
function execute(client, event, args) {
|
|
|
|
var name = args.toLowerCase();
|
|
|
|
|
|
|
|
var command = client.commands.filter(c=>(c.name.toLowerCase()==name || c.command.toLowerCase()==name))[0];
|
|
|
|
var module = client.modules.filter(m=>m.name.toLowerCase()==name)[0];
|
|
|
|
var specific = command ?? module ?? false;
|
|
|
|
|
|
|
|
var config = client.cache.get(event.sender.roomId) ?? {};
|
|
|
|
|
|
|
|
if(args != "") {
|
|
|
|
if(!module) {
|
|
|
|
client.reply(event, `Module "${args}" not found.\nRun "${process.env.PREFIX}help" for a list of commands and modules.`);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(config[module.name] !== undefined)
|
|
|
|
config[module.name] = !config[module.name];
|
|
|
|
else
|
|
|
|
config[module.name] = false;
|
|
|
|
|
|
|
|
var state = (config[module.name] ? "En" : "Dis") + "abled";
|
|
|
|
|
2024-08-23 11:57:03 +02:00
|
|
|
var reply = state + " " + module.name;
|
|
|
|
var replyHTML = `<b>${state}</b> <code>${encode(module.name)}</code>`;
|
2024-08-22 18:22:52 +02:00
|
|
|
|
|
|
|
client.cache.set(event.sender.roomId, config);
|
|
|
|
client.reply(event, reply, replyHTML);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2024-08-23 11:57:03 +02:00
|
|
|
var modules = client.modules.map(m=>m.name);
|
|
|
|
var enabled = modules.filter(m=>config[m]!==false);
|
|
|
|
|
|
|
|
var reply = `enabled modules:\n${enabled.join(", ")}`;
|
|
|
|
var replyHTML = `enabled modules:<br><code>${enabled.join("</code>, <code>")}</code>`;
|
|
|
|
|
|
|
|
reply += `\navailable modules:\n${modules.join(", ")}`;
|
|
|
|
replyHTML += `<br>available modules:<br><code>${modules.join("</code>, <code>")}</code>`;
|
2024-08-22 18:22:52 +02:00
|
|
|
|
|
|
|
client.reply(event, reply, replyHTML);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default {
|
|
|
|
command: "toggle",
|
|
|
|
name: "toggle",
|
|
|
|
admin: true,
|
|
|
|
desc: "toggle a module on or off in current channel",
|
|
|
|
execute
|
|
|
|
}
|