better error handling for broken redirects

This commit is contained in:
kageru 2019-06-09 14:00:23 +02:00
parent ffae758587
commit 3cdb5418ff
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2

View File

@ -204,19 +204,28 @@ func generateReply(message *discordgo.MessageCreate, command *Command) string {
* Hence, small wrappers around the redirect function. * Hence, small wrappers around the redirect function.
*/ */
func modComplain(s *discordgo.Session, m *discordgo.MessageCreate) { func modComplain(s *discordgo.Session, m *discordgo.MessageCreate) {
redirectMessage(s, m, config.ModChannel, true) success := redirectMessage(s, m, config.ModChannel, true)
dm, _ := s.UserChannelCreate(m.Author.ID) dm, _ := s.UserChannelCreate(m.Author.ID)
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage) if success {
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
} else {
s.ChannelMessageSend(dm.ID, "Could not send message. Please tell kageru about this.")
}
} }
func selphyComplain(s *discordgo.Session, m *discordgo.MessageCreate) { func selphyComplain(s *discordgo.Session, m *discordgo.MessageCreate) {
dm_target, _ := s.UserChannelCreate("190958368301645824") dm_target, _ := s.UserChannelCreate("190958368301645824")
redirectMessage(s, m, dm_target.ID, true) success := redirectMessage(s, m, dm_target.ID, true)
dm, _ := s.UserChannelCreate(m.Author.ID) dm, _ := s.UserChannelCreate(m.Author.ID)
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage) if success {
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
} else {
s.ChannelMessageSend(dm.ID, "Could not send message. Please tell kageru about this.")
}
} }
func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target string, isEmbed bool) { func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target string, isEmbed bool) bool {
var err error
if isEmbed { if isEmbed {
embed := &discordgo.MessageEmbed{ embed := &discordgo.MessageEmbed{
// Embed are anonymized by default for now. Fits the use case. // Embed are anonymized by default for now. Fits the use case.
@ -224,10 +233,15 @@ func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target st
Color: 0xbb0000, Color: 0xbb0000,
Description: m.Content, Description: m.Content,
} }
s.ChannelMessageSendEmbed(target, embed) _, err = s.ChannelMessageSendEmbed(target, embed)
return } else {
_, err = s.ChannelMessageSend(target, messageToString(m.Message))
} }
s.ChannelMessageSend(target, messageToString(m.Message)) if err != nil {
log.Printf("Could not redirect message", err)
return false
}
return true
} }
func echoMessage(s *discordgo.Session, m *discordgo.MessageCreate) { func echoMessage(s *discordgo.Session, m *discordgo.MessageCreate) {