From 13e1ee2183fd58e403f5d2ce0c649d4149ee075b Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Sat, 18 Jul 2026 12:24:03 +0300 Subject: [PATCH] fix: don't clear messageID on transient discord errors (prevents spam) --- monitor.go | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/monitor.go b/monitor.go index 8cd3e93..e200cff 100644 --- a/monitor.go +++ b/monitor.go @@ -11,14 +11,15 @@ import ( ) type StatusMonitor struct { - mu sync.Mutex - session *discordgo.Session - channelID string - host string - port int - interval time.Duration - messageID string - onlineSince time.Time + mu sync.Mutex + session *discordgo.Session + channelID string + host string + port int + interval time.Duration + messageID string + onlineSince time.Time + editFailCount int } func NewStatusMonitor(s *discordgo.Session, cfg *Config) *StatusMonitor { @@ -139,8 +140,15 @@ func (m *StatusMonitor) updateStatus() { Embeds: &[]*discordgo.MessageEmbed{embed}, }) if err != nil { - log.Printf("Error editing embed (will create new): %v", err) - m.messageID = "" + m.editFailCount++ + log.Printf("Error editing embed (attempt %d): %v", m.editFailCount, err) + if m.editFailCount > 10 { + log.Printf("Message may have been deleted, will create new one") + m.messageID = "" + m.editFailCount = 0 + } + } else { + m.editFailCount = 0 } } @@ -151,5 +159,6 @@ func (m *StatusMonitor) updateStatus() { return } m.messageID = msg.ID + m.editFailCount = 0 } }