diff --git a/plugin/niuniu/main.go b/plugin/niuniu/main.go index 53f82865be..008143aebc 100644 --- a/plugin/niuniu/main.go +++ b/plugin/niuniu/main.go @@ -220,7 +220,7 @@ func init() { ctx.SendChain(message.Reply(ctx.Event.GroupID), message.Text("注册成功,你的牛牛现在有", u.Length, "cm")) }) - en.OnRegex(`jj\[CQ:at,qq=(\d+),name=[\s\S]*\]$`, getdb, + en.OnRegex(`^jj\s?(\[CQ:at,(?:\S*,)?qq=(\d+)(?:,\S*)?\]|(\d+))$`, getdb, zero.OnlyGroup).SetBlock(true).Limit(func(ctx *zero.Ctx) *rate.Limiter { lt := jjLimiter.Load(fmt.Sprintf("%d_%d", ctx.Event.GroupID, ctx.Event.UserID)) ctx.State["jj_last_touch"] = lt.LastTouch() @@ -235,7 +235,8 @@ func init() { }))) }, ).Handle(func(ctx *zero.Ctx) { - adduser, err := strconv.ParseInt(ctx.State["regex_matched"].([]string)[1], 10, 64) + fiancee := ctx.State["regex_matched"].([]string) + adduser, err := strconv.ParseInt(fiancee[2]+fiancee[3], 10, 64) if err != nil { ctx.SendChain(message.Text("ERROR:", err)) return