diff --git a/handler/beatleader/beatleader.go b/handler/beatleader/beatleader.go index 63e275c..d648d47 100644 --- a/handler/beatleader/beatleader.go +++ b/handler/beatleader/beatleader.go @@ -126,19 +126,30 @@ func blPlus(msg model.Message) (reply *model.Reply) { } if len(leaderboard) == 0 { resultStr.WriteString("\n") - resultStr.WriteString("请输入一个有效的目标排名偏移量(现在太大了)") + resultStr.WriteString("未找到目标排名的玩家,请尝试更小的目标排名偏移量") return &model.Reply{ ReplyMsg: resultStr.String(), ReferOriginMsg: true, FromMsg: msg, } } + var foundTargetPlayer bool for _, player := range leaderboard { if player.CountryRank == targetRank { targetPlayer = player + foundTargetPlayer = true break } } + if !foundTargetPlayer { + resultStr.WriteString("\n") + resultStr.WriteString("未找到目标排名的玩家,请尝试更小的目标排名偏移量") + return &model.Reply{ + ReplyMsg: resultStr.String(), + ReferOriginMsg: true, + FromMsg: msg, + } + } resultStr.WriteString("\n") if isPlus { resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越 %s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank)) diff --git a/handler/scoresaber/score.go b/handler/scoresaber/score.go index 4dc9caf..a806890 100644 --- a/handler/scoresaber/score.go +++ b/handler/scoresaber/score.go @@ -124,19 +124,30 @@ func ssPlusN(msg model.Message) (reply *model.Reply) { } if len(leaderboard.Players) == 0 { resultStr.WriteString("\n") - resultStr.WriteString("请输入一个有效的目标排名偏移量(现在太大了)") + resultStr.WriteString("未找到目标排名的玩家,请尝试更小的目标排名偏移量") return &model.Reply{ ReplyMsg: resultStr.String(), ReferOriginMsg: true, FromMsg: msg, } } + var foundTargetPlayer bool for _, player := range leaderboard.Players { if player.CountryRank == targetRank { targetPlayer = player + foundTargetPlayer = true break } } + if !foundTargetPlayer { + resultStr.WriteString("\n") + resultStr.WriteString("未找到目标排名的玩家,请尝试更小的目标排名偏移量") + return &model.Reply{ + ReplyMsg: resultStr.String(), + ReferOriginMsg: true, + FromMsg: msg, + } + } resultStr.WriteString("\n") if isPlus { resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越%s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank))