diff --git a/src/commands/CommandHandler.ts b/src/commands/CommandHandler.ts index d9493df5..4eb7ec11 100644 --- a/src/commands/CommandHandler.ts +++ b/src/commands/CommandHandler.ts @@ -57,7 +57,7 @@ import { findMatrixInterfaceAdaptor, MatrixContext } from "./interface-manager/M import { ArgumentStream } from "./interface-manager/ParameterParsing"; import { CommandResult } from "./interface-manager/Validation"; import { CommandException } from "./interface-manager/CommandException"; -import { tickCrossRenderer } from "./interface-manager/MatrixHelpRenderer"; +import { tickCrossRenderer, renderCommandHelp } from "./interface-manager/MatrixHelpRenderer"; export interface MjolnirContext extends MatrixContext { mjolnir: Mjolnir, @@ -165,6 +165,11 @@ export async function handleCommand(roomId: string, event: { content: { body: st } } + // new commands + let newCommandsHelp = '' + for (const tableCommand of commandTable.getCommands()) { + newCommandsHelp += `${renderCommandHelp(tableCommand)}\n`; + } // Help menu const menu = "" + "!mjolnir - Print status information\n" + @@ -205,8 +210,10 @@ export async function handleCommand(roomId: string, event: { content: { body: st "!mjolnir shutdown room [message] - Uses the bot's account to shut down a room, preventing access to the room on this server\n" + "!mjolnir powerlevel [room alias/ID] - Sets the power level of the user in the specified room (or all protected rooms)\n" + "!mjolnir help - This menu\n"; - const html = `Mjolnir help:
${htmlEscape(menu)}
`; - const text = `Mjolnir help:\n${menu}`; + let html = `Old Commands:
${htmlEscape(menu)}
`; + let text = `Old Commands:\n${menu}`; + html += `
New Commands:
${htmlEscape(newCommandsHelp)}
`; + text += `\n\nNew Commands:\n${newCommandsHelp}`; const reply = RichReply.createFor(roomId, event, text, html); reply["msgtype"] = "m.notice"; return await mjolnir.client.sendMessage(roomId, reply); diff --git a/src/commands/interface-manager/MatrixHelpRenderer.tsx b/src/commands/interface-manager/MatrixHelpRenderer.tsx index af1a9d03..49be155c 100644 --- a/src/commands/interface-manager/MatrixHelpRenderer.tsx +++ b/src/commands/interface-manager/MatrixHelpRenderer.tsx @@ -26,7 +26,7 @@ function restArgument(rest: RestDescription): string { return `[...${rest.name}]`; } -function renderCommandHelp(command: InterfaceCommand): string { +export function renderCommandHelp(command: InterfaceCommand): string { const rest = command.argumentListParser.rest; const keywords = command.argumentListParser.keywords; return [