fix: 修改 ssPlusN 函数中的排名提示信息,并优化目标玩家查找逻辑以确保排名不低于1

This commit is contained in:
lixiangwuxian 2025-03-31 02:38:12 +08:00
parent f21777c26f
commit b608ab57f6

View File

@ -76,7 +76,7 @@ func ssPlusN(msg model.Message) (reply model.Reply) {
FromMsg: msg,
}
}
resultStr.WriteString(fmt.Sprintf("您当前的区排名为:%d\n", userInfo.CountryRank))
resultStr.WriteString(fmt.Sprintf("您当前的区排名为:%d\n", userInfo.CountryRank))
// 获取当前用户所在区对应+N位的玩家列表
leaderboard, err := scoresaber.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)
if err != nil {
@ -91,8 +91,12 @@ func ssPlusN(msg model.Message) (reply model.Reply) {
}
//寻找leaderboard中排名为userInfo.CountryRank-N的玩家
var targetPlayer scoresaber.PlayerData
targetRank := userInfo.CountryRank - N
if targetRank < 0 {
targetRank = 1
}
for _, player := range leaderboard.Players {
if player.CountryRank == userInfo.CountryRank-N {
if player.CountryRank == targetRank {
targetPlayer = player
break
}