feat: add help inform messages for bot commands and improve error handling in player data fetching

This commit is contained in:
lixiangwuxian 2024-12-28 22:32:05 +08:00
parent ff8d077f1c
commit a1fcfe4366
3 changed files with 61 additions and 52 deletions

View File

@ -17,10 +17,15 @@ var hasVaildBuild = true
func init() {
handler.RegisterHandler("/重启bot", restart, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/重启bot", "热更新", "重启bot")
handler.RegisterHandler("/构建bot", build, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/构建bot", "热更新", "构建bot")
handler.RegisterHandler("/构建重启", buildAndRestart, constants.LEVEL_ADMIN)
handler.RegisterHandler("/gitpull", pullCode, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/构建重启", "热更新", "构建并重启")
handler.RegisterHandler("/gitpull", pullCode, constants.LEVEL_USER)
handler.RegisterHelpInform("/gitpull", "热更新", "拉取最新代码")
handler.RegisterHandler("/shutdown", shutdown, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/shutdown", "热更新", "结束程序")
}
func restart(msg model.Message) model.Reply {

View File

@ -138,10 +138,14 @@ func (bl *blQuery) GetScore(qqId string) (reply string, err error) {
}
// 查询玩家数据
data, _ := FetchPlayerData(blId)
if data == nil {
data, err := FetchPlayerData(blId)
if data == nil && err == nil {
return "查询出错,服务器返回了空数据", errors.New("查询出错,服务器返回了空数据")
}
if err != nil {
log.Print(err)
return "查询出错,服务器返回了空数据" + err.Error(), err
}
// 构建 PlayerDataLite 结构体
dataLite := PlayerDataLite{

View File

@ -141,18 +141,18 @@ type ModifierValues struct {
}
type Player struct {
ID string `json:"id"`
Name string `json:"name"`
Platform string `json:"platform"`
Avatar string `json:"avatar"`
Country string `json:"country"`
Alias *string `json:"alias"`
Bot bool `json:"bot"`
Pp float64 `json:"pp"`
Rank int `json:"rank"`
CountryRank int `json:"countryRank"`
Role string `json:"role"`
Socials *string `json:"socials"`
ID string `json:"id"`
Name string `json:"name"`
Platform string `json:"platform"`
Avatar string `json:"avatar"`
Country string `json:"country"`
Alias *string `json:"alias"`
Bot bool `json:"bot"`
Pp float64 `json:"pp"`
Rank int `json:"rank"`
CountryRank int `json:"countryRank"`
Role string `json:"role"`
// Socials *string `json:"socials"`
ContextExtensions *string `json:"contextExtensions"`
}
@ -238,43 +238,43 @@ func timeConvert(duration time.Duration) string {
// ScoreStats 存储分数统计信息
type PlayerData struct {
MapperID int `json:"mapperId"`
Banned bool `json:"banned"`
Inactive bool `json:"inactive"`
BanDescription *string `json:"banDescription"`
ExternalProfileURL string `json:"externalProfileUrl"`
RichBioTimeset int64 `json:"richBioTimeset"`
SpeedrunStart int64 `json:"speedrunStart"`
LinkedIDs LinkedIDs `json:"linkedIds"`
History *string `json:"history"`
Badges []string `json:"badges"`
PinnedScores *string `json:"pinnedScores"`
Changes []Change `json:"changes"`
AccPp float64 `json:"accPp"`
PassPp float64 `json:"passPp"`
TechPp float64 `json:"techPp"`
ScoreStats ScoreStats `json:"scoreStats"`
LastWeekPp float64 `json:"lastWeekPp"`
LastWeekRank int `json:"lastWeekRank"`
LastWeekCountryRank int `json:"lastWeekCountryRank"`
ExtensionID int `json:"extensionId"`
ID string `json:"id"`
Name string `json:"name"`
Platform string `json:"platform"`
Avatar string `json:"avatar"`
Country string `json:"country"`
Alias *string `json:"alias"`
Bot bool `json:"bot"`
Pp float64 `json:"pp"`
Rank int `json:"rank"`
CountryRank int `json:"countryRank"`
Role string `json:"role"`
Socials []string `json:"socials"`
ContextExtensions *string `json:"contextExtensions"`
PatreonFeatures *string `json:"patreonFeatures"`
ProfileSettings ProfileSettings `json:"profileSettings"`
ClanOrder string `json:"clanOrder"`
Clans []string `json:"clans"`
MapperID int `json:"mapperId"`
Banned bool `json:"banned"`
Inactive bool `json:"inactive"`
BanDescription *string `json:"banDescription"`
ExternalProfileURL string `json:"externalProfileUrl"`
RichBioTimeset int64 `json:"richBioTimeset"`
SpeedrunStart int64 `json:"speedrunStart"`
LinkedIDs LinkedIDs `json:"linkedIds"`
History *string `json:"history"`
Badges []string `json:"badges"`
PinnedScores *string `json:"pinnedScores"`
Changes []Change `json:"changes"`
AccPp float64 `json:"accPp"`
PassPp float64 `json:"passPp"`
TechPp float64 `json:"techPp"`
ScoreStats ScoreStats `json:"scoreStats"`
LastWeekPp float64 `json:"lastWeekPp"`
LastWeekRank int `json:"lastWeekRank"`
LastWeekCountryRank int `json:"lastWeekCountryRank"`
ExtensionID int `json:"extensionId"`
ID string `json:"id"`
Name string `json:"name"`
Platform string `json:"platform"`
Avatar string `json:"avatar"`
Country string `json:"country"`
Alias *string `json:"alias"`
Bot bool `json:"bot"`
Pp float64 `json:"pp"`
Rank int `json:"rank"`
CountryRank int `json:"countryRank"`
Role string `json:"role"`
// Socials []string `json:"socials"`
ContextExtensions *string `json:"contextExtensions"`
PatreonFeatures *string `json:"patreonFeatures"`
ProfileSettings ProfileSettings `json:"profileSettings"`
ClanOrder string `json:"clanOrder"`
Clans []string `json:"clans"`
}
type LinkedIDs struct {