34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { Context } from "telegraf";
|
||
import { CommandTypes } from "../utils/types";
|
||
import { commands } from "../client";
|
||
|
||
async function handler(ctx: Context, args: string[]) {
|
||
if (args.length === 1) {
|
||
const cmd = commands.find((c) => c.name === args[0]);
|
||
if (!cmd) return await ctx.reply("Command not found");
|
||
return await ctx.replyWithMarkdown(
|
||
`*${cmd.name}${cmd.aliases.length ? ` (${cmd.aliases.join(", ")})` : ""}*\n${cmd.description}\n${cmd.modOnly ? "_🛡️ Mod only_" : ""}${cmd.ownerOnly ? "_👑 Owner only_" : ""}`
|
||
);
|
||
} else {
|
||
const cmds = commands;
|
||
cmds.sort((a, b) => a.name.localeCompare(b.name)); // Sort commands alphabetically by name
|
||
return await ctx.replyWithMarkdown(
|
||
cmds
|
||
.map(
|
||
(c) =>
|
||
`*${c.name}*${c.aliases.length ? `_ (${c.aliases.join(", ")})_` : ""}${c.ownerOnly ? " 👑" : ""}${c.modOnly ? " 🛡️" : ""} - ${c.description}`
|
||
)
|
||
.join("\n")
|
||
);
|
||
}
|
||
}
|
||
|
||
export const help = {
|
||
name: "help",
|
||
aliases: ["h", "?"],
|
||
description: "Get bot help",
|
||
type: CommandTypes.Info,
|
||
modOnly: false,
|
||
ownerOnly: false,
|
||
handler
|
||
};
|