fix: 修复 niuniu 插件 bug,修改标点,添加部分注释 (#1177)
Some checks failed
打包最新版为 Docker Image / build docker (push) Has been cancelled
最新版 / Build binary CI (386, linux) (push) Has been cancelled
最新版 / Build binary CI (386, windows) (push) Has been cancelled
最新版 / Build binary CI (amd64, linux) (push) Has been cancelled
最新版 / Build binary CI (amd64, windows) (push) Has been cancelled
最新版 / Build binary CI (arm, linux) (push) Has been cancelled
最新版 / Build binary CI (arm64, linux) (push) Has been cancelled
PushLint / lint (push) Has been cancelled

This commit is contained in:
Rinai 2025-06-27 16:49:50 +08:00 committed by GitHub
parent c94ee365ce
commit 1c0d91424a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -81,7 +81,7 @@ func init() {
for {
select {
case <-timer.C:
ctx.SendChain(message.At(uid), message.Text(" 超时,已自动取消"))
ctx.SendChain(message.At(uid), message.Text(" 超时已自动取消"))
return
case r := <-recv:
answer = r.Event.Message.String()
@ -109,6 +109,12 @@ func init() {
ctx.SendChain(message.Text("ERROR:", err))
return
}
// 数据库操作成功之后,及时删除残留的缓存
key := fmt.Sprintf("%d_%d", gid, uid)
_, ok := jjCount.Load(key)
if ok {
jjCount.Delete(key)
}
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text(sell))
})
en.OnFullMatch("牛牛背包", zero.OnlyGroup).SetBlock(true).Handle(func(ctx *zero.Ctx) {
@ -165,7 +171,7 @@ func init() {
for {
select {
case <-timer.C:
ctx.SendChain(message.At(uid), message.Text(" 超时,已自动取消"))
ctx.SendChain(message.At(uid), message.Text(" 超时已自动取消"))
return
case r := <-recv:
answer = r.Event.Message.String()
@ -196,16 +202,16 @@ func init() {
}
if time.Since(last.TimeLimit) > time.Hour {
ctx.SendChain(message.Text("时间已经过期了,牛牛已被收回!"))
ctx.SendChain(message.Text("时间已经过期了牛牛已被收回!"))
jjCount.Delete(fmt.Sprintf("%d_%d", gid, uid))
return
}
if last.Count < 4 {
ctx.SendChain(message.Text("你还没有被厥够4次呢,不能赎牛牛"))
ctx.SendChain(message.Text("你还没有被厥够4次呢不能赎牛牛"))
return
}
ctx.SendChain(message.Text("再次确认一下哦,这次赎牛牛,牛牛长度将会变成", last.Length, "cm\n还需要嘛【是|否】"))
ctx.SendChain(message.Text("再次确认一下哦这次赎牛牛,牛牛长度将会变成", last.Length, "cm\n还需要嘛【是|否】"))
recv, cancel := zero.NewFutureEvent("message", 999, false, zero.CheckUser(uid), zero.CheckGroup(gid), zero.RegexRule(`^(是|否)$`)).Repeat()
defer cancel()
timer := time.NewTimer(2 * time.Minute)
@ -222,11 +228,11 @@ func init() {
return
}
if err := niu.Redeem(gid, uid, last.Length); err == nil {
if err := niu.Redeem(gid, uid, last.Length); err != nil {
ctx.SendChain(message.Text("ERROR:", err))
return
}
// 成功赎回,删除残留的缓存。
jjCount.Delete(fmt.Sprintf("%d_%d", gid, uid))
ctx.SendChain(message.At(uid), message.Text(fmt.Sprintf("恭喜你!成功赎回牛牛,当前长度为:%.2fcm", last.Length)))
@ -342,8 +348,9 @@ func init() {
j := fmt.Sprintf("%d_%d", gid, adduser)
count, ok := jjCount.Load(j)
var c lastLength
// 按照最后一次被jj时的时间计算超过60分钟则重置
// 按照最后一次被 jj 时的时间计算超过60分钟则重置
if !ok {
// 第一次被 jj
c = lastLength{
TimeLimit: time.Now(),
Count: 1,
@ -355,6 +362,7 @@ func init() {
Count: count.Count + 1,
Length: count.Length,
}
// 超时了,重置
if time.Since(c.TimeLimit) > time.Hour {
c = lastLength{
TimeLimit: time.Now(),