package main import ( "net/http" "github.com/gofiber/fiber/v2" "go.mongodb.org/mongo-driver/bson" ) 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 { collection := mongoClient.Database("chat").Collection("messages") _, err := collection.DeleteMany(c.Context(), bson.D{}) if err != nil { c.Status(http.StatusInternalServerError).JSON(fiber.Map{ "error": "Failed to clear messages", }) } return "" } 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 }