fix: 在 blPlus 和 ssPlusN 函数中添加对用户未打Rank谱面的检查,确保用户在使用功能前满足条件

This commit is contained in:
lixiangwuxian
2025-05-04 16:36:49 +08:00
parent 0bb502faba
commit bd7d6566f7
6 changed files with 75 additions and 29 deletions

View File

@@ -92,6 +92,13 @@ func blPlus(msg model.Message) (reply *model.Reply) {
FromMsg: msg,
}
}
if userInfo.PP == 0 {
return &model.Reply{
ReplyMsg: "请先打几首Rank谱面再来使用此功能",
ReferOriginMsg: true,
FromMsg: msg,
}
}
resultStr.WriteString(fmt.Sprintf("您当前的BeatLeader全区排名为%d", userInfo.CountryRank))
// 获取当前用户所在区对应 + N位的玩家列表
leaderboard, err := beatleader.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)

View File

@@ -0,0 +1,30 @@
package beatleader
import (
"fmt"
"testing"
"git.lxtend.com/qqbot/config"
"git.lxtend.com/qqbot/handler"
"git.lxtend.com/qqbot/model"
"git.lxtend.com/qqbot/service/scoresaber"
. "github.com/bytedance/mockey"
. "github.com/smartystreets/goconvey/convey"
)
func init() {
Mock((*config.Config).LoadConfig).Return(nil).Build()
}
func TestBlPlus(t *testing.T) {
Convey("TestBlPlus", t, func() {
Mock(handler.RegisterHandler).Return().Build()
Mock(handler.RegisterHelpInform).Return().Build()
Mock(handler.RegisterFrontMatchHandler).Return().Build()
Mock(scoresaber.GetSSID).Return("76561198168309881", nil).Build()
fmt.Println(blPlus(model.Message{
RawMsg: "bl+1",
UserId: 1234567890,
}))
})
}

View File

@@ -90,6 +90,13 @@ func ssPlusN(msg model.Message) (reply *model.Reply) {
FromMsg: msg,
}
}
if userInfo.PP == 0 {
return &model.Reply{
ReplyMsg: "请先打几首Rank谱面再来使用此功能",
ReferOriginMsg: true,
FromMsg: msg,
}
}
resultStr.WriteString(fmt.Sprintf("您当前的ScoreSaber全区排名为%d", userInfo.CountryRank))
// 获取当前用户所在区对应+N位的玩家列表
leaderboard, err := scoresaber.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)