Fix inconsistent game message deletion bug

This commit is contained in:
denverquane
2023-02-21 12:54:14 -05:00
parent 77758115d5
commit 682839fdb9
3 changed files with 106 additions and 103 deletions

View File

@ -34,17 +34,20 @@ func (gsm *GameStateMessage) Exists() bool {
}
func (dgs *GameState) DeleteGameStateMsg(s *discordgo.Session, reset bool) bool {
retValue := false
if dgs.GameStateMsg.Exists() {
err := s.ChannelMessageDelete(dgs.GameStateMsg.MessageChannelID, dgs.GameStateMsg.MessageID)
if err != nil {
return false
retValue = false
} else {
retValue = true
}
if reset {
dgs.GameStateMsg = MakeGameStateMessage()
}
return true
}
return false
// whether or not we were successful in deleting the message, reset the state
if reset {
dgs.GameStateMsg = MakeGameStateMessage()
}
return retValue
}
var DeferredEdits = make(map[string]*discordgo.MessageEmbed)

View File

@ -517,7 +517,7 @@ func (bot *Bot) slashCommandHandler(s *discordgo.Session, i *discordgo.Interacti
}
return command.PrivateResponse(ThumbsUp)
}
return command.DeadlockGameStateResponse(command.Debug.Name, sett)
return command.DeadlockGameStateResponse(command.UnmuteAll, sett)
}
case command.Download.Name:
if !isAdmin {

View File

@ -97,7 +97,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/discord.GameState"
"$ref": "#/definitions/bot.GameState"
}
},
"400": {
@ -152,6 +152,101 @@ const docTemplate = `{
}
}
},
"bot.GameState": {
"type": "object",
"properties": {
"amongUsData": {
"$ref": "#/definitions/amongus.GameData"
},
"connectCode": {
"type": "string"
},
"gameStateMessage": {
"$ref": "#/definitions/bot.GameStateMessage"
},
"guildID": {
"type": "string"
},
"linked": {
"type": "boolean"
},
"matchID": {
"type": "integer"
},
"matchStartUnix": {
"type": "integer"
},
"running": {
"type": "boolean"
},
"subscribed": {
"type": "boolean"
},
"userData": {
"$ref": "#/definitions/bot.UserDataSet"
},
"voiceChannel": {
"type": "string"
}
}
},
"bot.GameStateMessage": {
"type": "object",
"properties": {
"creationTimeUnix": {
"type": "integer"
},
"leaderID": {
"type": "string"
},
"messageChannelID": {
"type": "string"
},
"messageID": {
"type": "string"
}
}
},
"bot.User": {
"type": "object",
"properties": {
"Discriminator": {
"type": "string"
},
"Nick": {
"type": "string"
},
"UserID": {
"type": "string"
},
"UserName": {
"type": "string"
}
}
},
"bot.UserData": {
"type": "object",
"properties": {
"PlayerName": {
"type": "string"
},
"ShouldBeDeaf": {
"type": "boolean"
},
"ShouldBeMute": {
"type": "boolean"
},
"User": {
"$ref": "#/definitions/bot.User"
}
}
},
"bot.UserDataSet": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/bot.UserData"
}
},
"command.BotInfo": {
"type": "object",
"properties": {
@ -181,101 +276,6 @@ const docTemplate = `{
}
}
},
"discord.GameState": {
"type": "object",
"properties": {
"amongUsData": {
"$ref": "#/definitions/amongus.GameData"
},
"connectCode": {
"type": "string"
},
"gameStateMessage": {
"$ref": "#/definitions/discord.GameStateMessage"
},
"guildID": {
"type": "string"
},
"linked": {
"type": "boolean"
},
"matchID": {
"type": "integer"
},
"matchStartUnix": {
"type": "integer"
},
"running": {
"type": "boolean"
},
"subscribed": {
"type": "boolean"
},
"userData": {
"$ref": "#/definitions/discord.UserDataSet"
},
"voiceChannel": {
"type": "string"
}
}
},
"discord.GameStateMessage": {
"type": "object",
"properties": {
"creationTimeUnix": {
"type": "integer"
},
"leaderID": {
"type": "string"
},
"messageChannelID": {
"type": "string"
},
"messageID": {
"type": "string"
}
}
},
"discord.User": {
"type": "object",
"properties": {
"Discriminator": {
"type": "string"
},
"Nick": {
"type": "string"
},
"UserID": {
"type": "string"
},
"UserName": {
"type": "string"
}
}
},
"discord.UserData": {
"type": "object",
"properties": {
"PlayerName": {
"type": "string"
},
"ShouldBeDeaf": {
"type": "boolean"
},
"ShouldBeMute": {
"type": "boolean"
},
"User": {
"$ref": "#/definitions/discord.User"
}
}
},
"discord.UserDataSet": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/discord.UserData"
}
},
"discordgo.ApplicationCommand": {
"type": "object",
"properties": {