From b5488ac165484921be5d2be65cdf294f3fd90049 Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Sat, 3 May 2025 23:57:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=20blPlus=20=E5=92=8C?= =?UTF-8?q?=20ssPlusN=20=E5=87=BD=E6=95=B0=E4=B8=AD=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=BF=A1=E6=81=AF=E9=80=BB=E8=BE=91=EF=BC=8C=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=AF=B9=E9=9D=9ETop1=E7=8E=A9=E5=AE=B6=E7=9A=84?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=9B=B4=E5=8A=A0=E6=B8=85=E6=99=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/beatleader/beatleader.go | 33 ++++++++++++++++---------------- handler/scoresaber/score.go | 33 ++++++++++++++++---------------- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/handler/beatleader/beatleader.go b/handler/beatleader/beatleader.go index 2845966..d684223 100644 --- a/handler/beatleader/beatleader.go +++ b/handler/beatleader/beatleader.go @@ -108,23 +108,24 @@ func blPlus(msg model.Message) (reply *model.Reply) { } else { resultStr.WriteString(fmt.Sprintf("注意:你最多只需要提升%d名就是%s区Top1了。\n", userInfo.CountryRank-1, userInfo.Country)) } - } - //寻找leaderboard中排名为userInfo.CountryRank-N的玩家 - var targetPlayer beatleader.PlayerDataLite - targetRank := userInfo.CountryRank - N - if targetRank < 0 { - targetRank = 1 - } - for _, player := range leaderboard { - if player.CountryRank == targetRank { - targetPlayer = player - break + } else if userInfo.CountryRank != 1 { + //寻找leaderboard中排名为userInfo.CountryRank-N的玩家 + var targetPlayer beatleader.PlayerDataLite + targetRank := userInfo.CountryRank - N + if targetRank < 0 { + targetRank = 1 + } + for _, player := range leaderboard { + if player.CountryRank == targetRank { + targetPlayer = player + break + } + } + if isPlus { + resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越%s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank)) + } else { + resultStr.WriteString(fmt.Sprintf("%s区的第%d名是%s,对方只需要再打出%.2fpp就能超过你。", userInfo.Country, targetPlayer.CountryRank, targetPlayer.Name, userInfo.PP-targetPlayer.PP)) } - } - if isPlus { - resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越%s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank)) - } else { - resultStr.WriteString(fmt.Sprintf("%s区的第%d名是%s,对方只需要再打出%.2fpp就能超过你。", userInfo.Country, targetPlayer.CountryRank, targetPlayer.Name, userInfo.PP-targetPlayer.PP)) } return &model.Reply{ ReplyMsg: resultStr.String(), diff --git a/handler/scoresaber/score.go b/handler/scoresaber/score.go index 1ef375b..dd28968 100644 --- a/handler/scoresaber/score.go +++ b/handler/scoresaber/score.go @@ -106,23 +106,24 @@ func ssPlusN(msg model.Message) (reply *model.Reply) { } else { resultStr.WriteString(fmt.Sprintf("注意:你最多只需要提升%d名就是%s区Top1了。\n", userInfo.CountryRank-1, userInfo.Country)) } - } - //寻找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 == targetRank { - targetPlayer = player - break + } else if userInfo.CountryRank != 1 { + //寻找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 == targetRank { + targetPlayer = player + break + } + } + if isPlus { + resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越%s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank)) + } else { + resultStr.WriteString(fmt.Sprintf("%s区的第%d名是%s,对方只需要再打出%.2fpp就能超过你。", userInfo.Country, targetPlayer.CountryRank, targetPlayer.Name, userInfo.PP-targetPlayer.PP)) } - } - if isPlus { - resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能超越%s,达到%s区第%d名。", targetPlayer.PP-userInfo.PP, targetPlayer.Name, userInfo.Country, targetPlayer.CountryRank)) - } else { - resultStr.WriteString(fmt.Sprintf("%s区的第%d名是%s,对方只需要再打出%.2fpp就能超过你。", userInfo.Country, targetPlayer.CountryRank, targetPlayer.Name, userInfo.PP-targetPlayer.PP)) } return &model.Reply{ ReplyMsg: resultStr.String(),