import { MatrixClient } from "matrix-js-sdk"; import type { ICallbackStore } from "../types.js"; import { config, packageConfig } from "../../config.js"; import { platform } from "os"; let client: MatrixClient; const registerModuleBase = ( matrixClient: MatrixClient, callbackStore: ICallbackStore, ) => { client = matrixClient; callbackStore.messageCallbacks.push({ startConditions: [`${config.app.triggerPrefix}ping`], callbackFunc: onPing, }); callbackStore.messageCallbacks.push({ startConditions: [`${config.app.triggerPrefix}info`], callbackFunc: onInfo, }); callbackStore.messageCallbacks.push({ startConditions: [`${config.app.triggerPrefix}say `], callbackFunc: onSay, }); callbackStore.messageCallbacks.push({ startConditions: [`${config.app.triggerPrefix}bowling `], callbackFunc: onBowling, }); callbackStore.messageCallbacks.push({ startConditions: [`${config.app.triggerPrefix}help`], callbackFunc: onHelp, }); }; const onPing = (_text: string, roomId: string) => { client.sendTextMessage(roomId, "Pong!"); }; const onInfo = (_text: string, roomId: string) => { client.sendHtmlMessage( roomId, "", `
AsloBot version ${packageConfig.version} running on ${platform()}
`, ); }; const onSay = (text: string, roomId: string) => { const trigger = `${config.app.triggerPrefix}say `; client.sendTextMessage(roomId, text.replace(trigger, "")); }; const onBowling = (text: string, _roomId: string) => { const trigger = `${config.app.triggerPrefix}bowling `; client.sendTextMessage(config.app.bowlingRoomId, text.replace(trigger, "")); }; const onHelp = (_text: string, roomId: string) => { client.sendHtmlMessage( roomId, "", `