package utils import ( "fmt" "go-bot/config" "go-bot/workers" "regexp" "strings" ) func Router(data map[string]interface{}) { // 输出格式化后的JSON // fmt.Println(string(jsonString)) // 读取字段值 uid := data["user_id"].(float64) gid := data["group_id"].(float64) sender := data["sender"].(map[string]interface{}) role := sender["role"].(string) mid := data["message_id"].(float64) //包含发送消息的'!' raw_msg := data["raw_message"].(string) // 匹配回复消息 if strings.HasPrefix(raw_msg, "[CQ:reply,id=") { pattern := `^\[CQ:reply,id=(-?\d+)\]` re := regexp.MustCompile(pattern) matches := re.FindStringSubmatch(raw_msg) if len(matches) > 0 { fullMatch := matches[0] raw_msg = re.ReplaceAllString(raw_msg, "") raw_msg = raw_msg + " " + fullMatch } } prefix, err := config.GetConfig()["Prefix"].(string) if !err { panic("Prefix参数设置异常!") } // fmt.Println("raw_msg:", string(raw_msg)) if len(raw_msg) > 1 && string(raw_msg[0]) == prefix { // 去除'!' raw_msg = raw_msg[1:] parms := strings.Fields(raw_msg) worker := workers.NewWorker(parms, fmt.Sprintf("%d", int(uid)), fmt.Sprintf("%d", int(gid)), role, fmt.Sprintf("%d", int(mid)), raw_msg) // fmt.Println("router:", parms[0]) // fmt.Println("CheckPermission:", worker.CheckPermission()) // ans := NewStdAns(parms[0], fmt.Sprintf("%d", int(uid)), fmt.Sprintf("%d", int(gid)), role, fmt.Sprintf("%d", int(mid)), raw_msg) message := worker.CheckPermission() if message == "ok" { message = worker.GetMsg() worker.SendMsg(message) } else { println("权限校验失败") } } }