@@ -93,12 +93,13 @@ func init() {
93
93
ctx .SendChain (message .Text ("设置成功" ))
94
94
})
95
95
// 单身技能
96
- engine .OnRegex ( `^(娶|嫁)\[CQ:at,(?:\S*,)?qq=(\d+)(?:,\S*)?\]` , zero .OnlyGroup , getdb , checkSingleDog ).SetBlock (true ).Limit (ctxext .LimitByUser ).
96
+ engine .OnMessage ( zero . NewPattern (). Text ( `^(娶|嫁)` ). At (). AsRule () , zero .OnlyGroup , getdb , checkSingleDog ).SetBlock (true ).Limit (ctxext .LimitByUser ).
97
97
Handle (func (ctx * zero.Ctx ) {
98
98
gid := ctx .Event .GroupID
99
99
uid := ctx .Event .UserID
100
- choice := ctx .State ["regex_matched" ].([]string )[1 ]
101
- fiancee , _ := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
100
+ patternParsed := ctx .State [zero .KeyPattern ].([]zero.PatternParsed )
101
+ choice := patternParsed [0 ].Text ()[0 ]
102
+ fiancee , _ := strconv .ParseInt (patternParsed [1 ].At (), 10 , 64 )
102
103
// 写入CD
103
104
err := 民政局 .记录CD (gid , uid , "嫁娶" )
104
105
if err != nil {
@@ -167,12 +168,12 @@ func init() {
167
168
)
168
169
})
169
170
// NTR技能
170
- engine .OnRegex ( `^当(\[CQ:at,qq=(\d+)\]\s?|(\d+)) 的小三` , zero .OnlyGroup , getdb , checkMistress ).SetBlock (true ).Limit (ctxext .LimitByUser ).
171
+ engine .OnMessage ( zero . NewPattern (). Text ( `^当` ). At (). Text ( ` 的小三`). AsRule () , zero .OnlyGroup , getdb , checkMistress ).SetBlock (true ).Limit (ctxext .LimitByUser ).
171
172
Handle (func (ctx * zero.Ctx ) {
172
173
gid := ctx .Event .GroupID
173
174
uid := ctx .Event .UserID
174
- fid := ctx .State ["regex_matched" ].([]string )
175
- fiancee , _ := strconv .ParseInt (fid [ 2 ] + fid [ 3 ] , 10 , 64 )
175
+ patternParsed := ctx .State [zero . KeyPattern ].([]zero. PatternParsed )
176
+ fiancee , _ := strconv .ParseInt (patternParsed [ 1 ]. At () , 10 , 64 )
176
177
// 写入CD
177
178
err := 民政局 .记录CD (gid , uid , "NTR" )
178
179
if err != nil {
@@ -253,12 +254,13 @@ func init() {
253
254
)
254
255
})
255
256
// 做媒技能
256
- engine .OnRegex ( `^做媒\s?\[CQ:at,qq=(\d+)\]\s?\[CQ:at,qq=(\d+)\]` , zero .OnlyGroup , zero .AdminPermission , getdb , checkMatchmaker ).SetBlock (true ).Limit (ctxext .LimitByUser ).
257
+ engine .OnMessage ( zero . NewPattern (). Text ( `做媒` ). At (). At (). AsRule () , zero .OnlyGroup , zero .AdminPermission , getdb , checkMatchmaker ).SetBlock (true ).Limit (ctxext .LimitByUser ).
257
258
Handle (func (ctx * zero.Ctx ) {
258
259
gid := ctx .Event .GroupID
259
260
uid := ctx .Event .UserID
260
- gayOne , _ := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[1 ], 10 , 64 )
261
- gayZero , _ := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
261
+ patternParsed := ctx .State [zero .KeyPattern ].([]zero.PatternParsed )
262
+ gayOne , _ := strconv .ParseInt (patternParsed [1 ].At (), 10 , 64 )
263
+ gayZero , _ := strconv .ParseInt (patternParsed [2 ].At (), 10 , 64 )
262
264
// 写入CD
263
265
err := 民政局 .记录CD (gid , uid , "做媒" )
264
266
if err != nil {
@@ -416,7 +418,8 @@ func (sql *婚姻登记) 离婚休夫(gid, husband int64) error {
416
418
func checkSingleDog (ctx * zero.Ctx ) bool {
417
419
gid := ctx .Event .GroupID
418
420
uid := ctx .Event .UserID
419
- fiancee , err := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
421
+ patternParsed := ctx .State [zero .KeyPattern ].([]zero.PatternParsed )
422
+ fiancee , err := strconv .ParseInt (patternParsed [1 ].At (), 10 , 64 )
420
423
if err != nil {
421
424
ctx .SendChain (message .Text ("额,你的target好像不存在?" ))
422
425
return false
@@ -482,7 +485,8 @@ func checkSingleDog(ctx *zero.Ctx) bool {
482
485
func checkMistress (ctx * zero.Ctx ) bool {
483
486
gid := ctx .Event .GroupID
484
487
uid := ctx .Event .UserID
485
- fiancee , err := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[2 ], 10 , 64 )
488
+ patternParsed := ctx .State [zero .KeyPattern ].([]zero.PatternParsed )
489
+ fiancee , err := strconv .ParseInt (patternParsed [1 ].At (), 10 , 64 )
486
490
if err != nil {
487
491
ctx .SendChain (message .Text ("额,你的target好像不存在?" ))
488
492
return false
@@ -578,12 +582,13 @@ func checkDivorce(ctx *zero.Ctx) bool {
578
582
func checkMatchmaker (ctx * zero.Ctx ) bool {
579
583
gid := ctx .Event .GroupID
580
584
uid := ctx .Event .UserID
581
- gayOne , err := strconv .ParseInt (ctx .State ["regex_matched" ].([]string )[1 ], 10 , 64 )
585
+ patternParsed := ctx .State [zero .KeyPattern ].([]zero.PatternParsed )
586
+ gayOne , err := strconv .ParseInt (patternParsed [1 ].At (), 10 , 64 )
582
587
if err != nil {
583
588
ctx .SendChain (message .Text ("额,攻方好像不存在?" ))
584
589
return false
585
590
}
586
- gayZero , err := strconv .ParseInt (ctx . State [ "regex_matched" ].([] string )[ 2 ] , 10 , 64 )
591
+ gayZero , err := strconv .ParseInt (patternParsed [ 2 ]. At () , 10 , 64 )
587
592
if err != nil {
588
593
ctx .SendChain (message .Text ("额,受方好像不存在?" ))
589
594
return false
0 commit comments