38 lines
701 B
Go
38 lines
701 B
Go
package main
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
type Command struct {
|
|
Name string
|
|
Trigger string
|
|
Handler func(c *fiber.Ctx) string
|
|
}
|
|
|
|
var Commands []Command
|
|
|
|
func init() {
|
|
Commands = []Command{
|
|
{
|
|
Name: "Clear",
|
|
Trigger: "clear",
|
|
Handler: ClearCommandHandler,
|
|
},
|
|
}
|
|
}
|
|
|
|
func ClearCommandHandler(c *fiber.Ctx) string {
|
|
// DOTO clear the chat
|
|
return "<hx hx-get='/loadChat' hx-trigger='load' hx-swap='outerHTML' hx-target='#chat-container'></hx>"
|
|
}
|
|
|
|
func DetectCommand(message string, c *fiber.Ctx) (string, bool) {
|
|
for _, command := range Commands {
|
|
if command.Trigger == message {
|
|
return command.Handler(c), true
|
|
}
|
|
}
|
|
return "", false // No command detected
|
|
}
|