diff --git a/handler/scoresaber/score.go b/handler/scoresaber/score.go index 137efec..dc0f14e 100644 --- a/handler/scoresaber/score.go +++ b/handler/scoresaber/score.go @@ -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 }