thelounge/src/plugins/inputs/index.js
2020-03-21 22:55:36 +02:00

65 lines
1 KiB
JavaScript

const clientSideCommands = ["/collapse", "/expand"];
const passThroughCommands = [
"/as",
"/bs",
"/cs",
"/ho",
"/hs",
"/join",
"/ms",
"/ns",
"/os",
"/rs",
];
const userInputs = [
"action",
"away",
"ban",
"connect",
"ctcp",
"disconnect",
"ignore",
"invite",
"kick",
"kill",
"list",
"mode",
"msg",
"nick",
"notice",
"part",
"quit",
"raw",
"rejoin",
"topic",
"whois",
].reduce(function (plugins, name) {
const plugin = require(`./${name}`);
plugin.commands.forEach((command) => plugins.set(command, plugin));
return plugins;
}, new Map());
const pluginCommands = new Map();
const getCommands = () =>
Array.from(userInputs.keys())
.concat(Array.from(pluginCommands.keys()))
.map((command) => `/${command}`)
.concat(clientSideCommands)
.concat(passThroughCommands)
.sort();
const addPluginCommand = (packageInfo, command, func) => {
func.packageInfo = packageInfo;
pluginCommands.set(command, func);
};
module.exports = {
addPluginCommand,
getCommands,
pluginCommands,
userInputs,
};