diff --git a/djpianalto.com/goff/events/message_events.go b/djpianalto.com/goff/events/message_events.go index 3cc740c..bd53c24 100644 --- a/djpianalto.com/goff/events/message_events.go +++ b/djpianalto.com/goff/events/message_events.go @@ -27,7 +27,7 @@ func OnMessageUpdate(session *discordgo.Session, m *discordgo.MessageUpdate) { return } embed := &discordgo.MessageEmbed{ - Title: fmt.Sprintf("Edited Message: %v", m.ID), + Title: fmt.Sprintf("Message Edited: %v", m.ID), Description: fmt.Sprintf("**Before:** %v\n**After:** %v\nIn Channel: %v", m.BeforeUpdate.Content, m.Content, channel.Mention()), Color: session.State.UserColor(m.Author.ID, channelID), Footer: &discordgo.MessageEmbedFooter{ @@ -37,3 +37,34 @@ func OnMessageUpdate(session *discordgo.Session, m *discordgo.MessageUpdate) { } session.ChannelMessageSendEmbed(channelID, embed) } + +func OnMessageDelete(session *discordgo.Session, m *discordgo.MessageDelete) { + defer func() { + if r := recover(); r != nil { + fmt.Println("Recovered from panic in OnMessageUpdate", r) + } + }() + if m.Author.Bot { + return + } + var channelID string + row := utils.Database.QueryRow("SELECT logging_channel FROM guilds where id=$1", m.GuildID) + err := row.Scan(&channelID) + if err != nil || channelID == "" { + return + } + channel, err := session.State.Channel(m.ChannelID) + if err != nil { + return + } + embed := &discordgo.MessageEmbed{ + Title: fmt.Sprintf("Message Deleted: %v", m.ID), + Description: fmt.Sprintf("**Content:** %v\nIn Channel: %v", m.Content, channel.Mention()), + Color: session.State.UserColor(m.Author.ID, channelID), + Footer: &discordgo.MessageEmbedFooter{ + Text: fmt.Sprintf("Author: %v", m.Author.String()), + IconURL: m.Author.AvatarURL(""), + }, + } + session.ChannelMessageSendEmbed(channelID, embed) +} diff --git a/djpianalto.com/goff/goff.go b/djpianalto.com/goff/goff.go index 4bce24b..ebea87f 100644 --- a/djpianalto.com/goff/goff.go +++ b/djpianalto.com/goff/goff.go @@ -70,6 +70,7 @@ func main() { dg.AddHandler(handler.OnMessage) dg.AddHandler(handler.StatusManager.OnReady) dg.AddHandler(events.OnMessageUpdate) + dg.AddHandler(events.OnMessageDelete) err = dg.Open() if err != nil {