Files
qweribot/src/commands/getcommands.ts

52 lines
1.6 KiB
TypeScript

import { basecommands } from "commands";
import { Command, sendMessage } from "lib/commandUtils";
import parseCommandArgs from "lib/parseCommandArgs";
import { redis } from "lib/redis";
export default new Command({
name: "getcommands",
aliases: ["getcommands", "getc", "commands"],
usertype: "chatter",
disableable: false,
execution: async (msg) => {
const args = parseCommandArgs(msg.messageText);
if (!args[0]) {
await sendMessage(
`A full list of commands can be found here: https://gitlab.com/qwerinope/qweribot#commands-1`,
msg.messageId,
);
return;
}
const disabledcommands = await redis.smembers("disabledcommands");
if (args[0].toLowerCase() === "enabled") {
const commandnames: string[] = [];
for (const [name, command] of Array.from(basecommands.entries())) {
if (command.usertype !== "chatter") continue; // Admin only commands should be somewhat hidden
if (disabledcommands.includes(name)) continue;
commandnames.push(name);
}
if (commandnames.length === 0)
await sendMessage(
"No commands besides non-disableable commands are enabled",
msg.messageId,
);
else
await sendMessage(
`Currently enabled commands: ${commandnames.join(", ")}`,
msg.messageId,
);
} else if (args[0].toLowerCase() === "disabled") {
if (disabledcommands.length === 0)
await sendMessage("No commands are disabled", msg.messageId);
else
await sendMessage(
`Currently disabled commands: ${disabledcommands.join(", ")}`,
);
} else
await sendMessage(
"Please specify if you want the enabled or disabled commands",
msg.messageId,
);
},
});