feat: 更新 bl+ 和 bl- 命令的处理逻辑,支持查看当前区服的排名变化,并调整相关提示信息
This commit is contained in:
parent
e747be9918
commit
71f8cb1232
@ -26,10 +26,12 @@ func init() {
|
|||||||
handler.RegisterHandler("最新bl", getMyRecentScore, constants.LEVEL_USER)
|
handler.RegisterHandler("最新bl", getMyRecentScore, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("最新bl", "beatleader", "最新bl 查看您的最新游戏记录")
|
handler.RegisterHelpInform("最新bl", "beatleader", "最新bl 查看您的最新游戏记录")
|
||||||
handler.RegisterFrontMatchHandler("bl+", blPlus, constants.LEVEL_USER)
|
handler.RegisterFrontMatchHandler("bl+", blPlus, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("bl+", "beatleader", "bl+ 查看您需要打多少pp才能达到当前区服的第N名")
|
handler.RegisterHelpInform("bl+n", "beatleader", "查看您需要打多少pp才能达到当前区服的第N名")
|
||||||
handler.RegisterHandler("截bl", screenShotBL, constants.LEVEL_USER)
|
handler.RegisterFrontMatchHandler("bl-", blPlus, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("截bl", "beatleader", "截bl 截bl 截bl主页截图")
|
handler.RegisterHelpInform("bl-n", "beatleader", "查看落后您N名的玩家需要打多少pp才会超过您")
|
||||||
handler.RegisterHandler("jbl", screenShotBL, constants.LEVEL_USER)
|
// handler.RegisterHandler("截bl", screenShotBL, constants.LEVEL_USER)
|
||||||
|
// handler.RegisterHandler("jbl", screenShotBL, constants.LEVEL_USER)
|
||||||
|
// handler.RegisterHelpInform("截bl", "beatleader", "截bl 截bl 截bl主页截图")
|
||||||
}
|
}
|
||||||
|
|
||||||
func blPlus(msg model.Message) (reply *model.Reply) {
|
func blPlus(msg model.Message) (reply *model.Reply) {
|
||||||
@ -40,16 +42,31 @@ func blPlus(msg model.Message) (reply *model.Reply) {
|
|||||||
attempts = 0
|
attempts = 0
|
||||||
)
|
)
|
||||||
var N int
|
var N int
|
||||||
|
var isPlus bool
|
||||||
|
if strings.HasPrefix(msg.RawMsg, "bl+") {
|
||||||
|
isPlus = true
|
||||||
|
} else if strings.HasPrefix(msg.RawMsg, "bl-") {
|
||||||
|
isPlus = false
|
||||||
|
} else {
|
||||||
|
return &model.Reply{
|
||||||
|
ReplyMsg: "请输入bl+或bl-",
|
||||||
|
ReferOriginMsg: true,
|
||||||
|
FromMsg: msg,
|
||||||
|
}
|
||||||
|
}
|
||||||
if len(msg.RawMsg) > len("bl+") {
|
if len(msg.RawMsg) > len("bl+") {
|
||||||
N, err = strconv.Atoi(msg.RawMsg[len("bl+"):])
|
N, err = strconv.Atoi(msg.RawMsg[len("bl+"):])
|
||||||
if err != nil || N <= 0 {
|
if err != nil || N <= 0 {
|
||||||
return &model.Reply{
|
return &model.Reply{
|
||||||
ReplyMsg: "请输入一个正整数",
|
ReplyMsg: "请输入一个整数",
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
FromMsg: msg,
|
FromMsg: msg,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !isPlus {
|
||||||
|
N = -N
|
||||||
|
}
|
||||||
userIdStr := strconv.Itoa(int(msg.UserId))
|
userIdStr := strconv.Itoa(int(msg.UserId))
|
||||||
userBLID, err := scoresaber.GetSSID(userIdStr)
|
userBLID, err := scoresaber.GetSSID(userIdStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -80,7 +97,7 @@ func blPlus(msg model.Message) (reply *model.Reply) {
|
|||||||
leaderboard, err := beatleader.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)
|
leaderboard, err := beatleader.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return &model.Reply{
|
return &model.Reply{
|
||||||
ReplyMsg: "获取当前用户所在区对应+N位的玩家列表时出现问题,请稍后重试。" + err.Error(),
|
ReplyMsg: "获取排行榜时出现问题,请稍后重试。" + err.Error(),
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
FromMsg: msg,
|
FromMsg: msg,
|
||||||
}
|
}
|
||||||
@ -100,7 +117,11 @@ func blPlus(msg model.Message) (reply *model.Reply) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能达到%s区第%d名。", targetPlayer.PP-userInfo.PP, userInfo.Country, targetPlayer.CountryRank))
|
if isPlus {
|
||||||
|
resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能达到%s区第%d名。", targetPlayer.PP-userInfo.PP, 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{
|
return &model.Reply{
|
||||||
ReplyMsg: resultStr.String(),
|
ReplyMsg: resultStr.String(),
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
|
@ -25,8 +25,10 @@ func init() {
|
|||||||
handler.RegisterHandler("最新ss", getMyRecentScore, constants.LEVEL_USER)
|
handler.RegisterHandler("最新ss", getMyRecentScore, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("最新ss", "scoresaber", "查看您的最新游戏记录")
|
handler.RegisterHelpInform("最新ss", "scoresaber", "查看您的最新游戏记录")
|
||||||
handler.RegisterHandler("截ss", screenshotSS, constants.LEVEL_USER)
|
handler.RegisterHandler("截ss", screenshotSS, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("ss+n", "scoresaber", "区排名升高n位还需要打出多少pp")
|
handler.RegisterHelpInform("ss+n", "scoresaber", "查看您需要打多少pp才能达到当前区服的第N名")
|
||||||
handler.RegisterFrontMatchHandler("ss+", ssPlusN, constants.LEVEL_USER)
|
handler.RegisterFrontMatchHandler("ss+", ssPlusN, constants.LEVEL_USER)
|
||||||
|
handler.RegisterHelpInform("ss-n", "scoresaber", "查看落后您N名的玩家需要打多少pp才会超过您")
|
||||||
|
handler.RegisterFrontMatchHandler("ss-", ssPlusN, constants.LEVEL_USER)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ssPlusN(msg model.Message) (reply *model.Reply) {
|
func ssPlusN(msg model.Message) (reply *model.Reply) {
|
||||||
@ -37,16 +39,31 @@ func ssPlusN(msg model.Message) (reply *model.Reply) {
|
|||||||
attempts = 0
|
attempts = 0
|
||||||
)
|
)
|
||||||
var N int
|
var N int
|
||||||
|
var isPlus bool
|
||||||
|
if strings.HasPrefix(msg.RawMsg, "ss+") {
|
||||||
|
isPlus = true
|
||||||
|
} else if strings.HasPrefix(msg.RawMsg, "ss-") {
|
||||||
|
isPlus = false
|
||||||
|
} else {
|
||||||
|
return &model.Reply{
|
||||||
|
ReplyMsg: "请输入ss+或ss-",
|
||||||
|
ReferOriginMsg: true,
|
||||||
|
FromMsg: msg,
|
||||||
|
}
|
||||||
|
}
|
||||||
if len(msg.RawMsg) > len("ss+") {
|
if len(msg.RawMsg) > len("ss+") {
|
||||||
N, err = strconv.Atoi(msg.RawMsg[len("ss+"):])
|
N, err = strconv.Atoi(msg.RawMsg[len("ss+"):])
|
||||||
if err != nil || N <= 0 {
|
if err != nil || N <= 0 {
|
||||||
return &model.Reply{
|
return &model.Reply{
|
||||||
ReplyMsg: "请输入一个正整数",
|
ReplyMsg: "请输入一个整数",
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
FromMsg: msg,
|
FromMsg: msg,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !isPlus {
|
||||||
|
N = -N
|
||||||
|
}
|
||||||
// 获取当前用户在区中的排名
|
// 获取当前用户在区中的排名
|
||||||
userIdStr := strconv.Itoa(int(msg.UserId))
|
userIdStr := strconv.Itoa(int(msg.UserId))
|
||||||
userSSID, err := scoresaber.GetSSID(userIdStr)
|
userSSID, err := scoresaber.GetSSID(userIdStr)
|
||||||
@ -78,7 +95,7 @@ func ssPlusN(msg model.Message) (reply *model.Reply) {
|
|||||||
leaderboard, err := scoresaber.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)
|
leaderboard, err := scoresaber.FetchCountryLeaderboard(userInfo.Country, userInfo.CountryRank-N, userInfo.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return &model.Reply{
|
return &model.Reply{
|
||||||
ReplyMsg: "获取您的分数时出现问题,请稍后重试。" + err.Error(),
|
ReplyMsg: "获取排行榜时出现问题,请稍后重试。" + err.Error(),
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
FromMsg: msg,
|
FromMsg: msg,
|
||||||
}
|
}
|
||||||
@ -98,7 +115,11 @@ func ssPlusN(msg model.Message) (reply *model.Reply) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能达到%s区第%d名。", targetPlayer.PP-userInfo.PP, userInfo.Country, targetPlayer.CountryRank))
|
if isPlus {
|
||||||
|
resultStr.WriteString(fmt.Sprintf("您只需要再打出%.2fpp就能达到%s区第%d名。", targetPlayer.PP-userInfo.PP, 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{
|
return &model.Reply{
|
||||||
ReplyMsg: resultStr.String(),
|
ReplyMsg: resultStr.String(),
|
||||||
ReferOriginMsg: true,
|
ReferOriginMsg: true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user