From 96bffca9889b6a68aa3832679a3af23bc6ee373e Mon Sep 17 00:00:00 2001 From: Michael McCarty Date: Sun, 5 Apr 2026 11:42:05 -0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20defer=20interaction=20and?= =?UTF-8?q?=20follow=20on=20permission=20dialogs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/boost/coop_status_permission.go | 16 +++++++++++++--- src/boost/leaderboard_permission.go | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/boost/coop_status_permission.go b/src/boost/coop_status_permission.go index 38362306..72695209 100644 --- a/src/boost/coop_status_permission.go +++ b/src/boost/coop_status_permission.go @@ -111,13 +111,23 @@ func HandleCoopStatusPermissionButton(s *discordgo.Session, i *discordgo.Interac customID := i.MessageComponentData().CustomID respondAndClose := func(content string) { err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseUpdateMessage, + Type: discordgo.InteractionResponseDeferredMessageUpdate, Data: &discordgo.InteractionResponseData{ - Content: content, Flags: discordgo.MessageFlagsEphemeral, Components: []discordgo.MessageComponent{}, }, }) + if err != nil { + log.Println("Error acknowledging coop status permission dialog:", err) + return + } + + emptyComponents := []discordgo.MessageComponent{} + edit := discordgo.WebhookEdit{ + Content: &content, + Components: &emptyComponents, + } + _, err = s.FollowupMessageEdit(i.Interaction, i.Message.ID, &edit) if err != nil { log.Println("Error updating coop status permission dialog:", err) } @@ -146,6 +156,6 @@ func HandleCoopStatusPermissionButton(s *discordgo.Session, i *discordgo.Interac respondAndClose("Permission granted for 7 days. You can now run your command again.") case "close": - respondAndClose("Dialog closed. You can enable this permission later when you're ready.") + respondAndClose("I understand") } } diff --git a/src/boost/leaderboard_permission.go b/src/boost/leaderboard_permission.go index 0b10b50a..80fbbb2e 100644 --- a/src/boost/leaderboard_permission.go +++ b/src/boost/leaderboard_permission.go @@ -90,13 +90,23 @@ func HandleLeaderboardPermissionButton(s *discordgo.Session, i *discordgo.Intera customID := i.MessageComponentData().CustomID respondAndClose := func(content string) { err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseUpdateMessage, + Type: discordgo.InteractionResponseDeferredMessageUpdate, Data: &discordgo.InteractionResponseData{ - Content: content, Flags: discordgo.MessageFlagsEphemeral, Components: []discordgo.MessageComponent{}, }, }) + if err != nil { + log.Println("Error acknowledging leaderboard permission dialog:", err) + return + } + + emptyComponents := []discordgo.MessageComponent{} + edit := discordgo.WebhookEdit{ + Content: &content, + Components: &emptyComponents, + } + _, err = s.FollowupMessageEdit(i.Interaction, i.Message.ID, &edit) if err != nil { log.Println("Error updating leaderboard permission dialog:", err) } @@ -122,6 +132,6 @@ func HandleLeaderboardPermissionButton(s *discordgo.Session, i *discordgo.Intera respondAndClose("Permission granted permanently. Please run your command again.") case "close": - respondAndClose("Dialog closed.") + respondAndClose("I understand") } }