Skip to content

Commit cdaf020

Browse files
authored
Merge pull request #2328 from mkmccarty/mm-branch-1
✨ feat: defer interaction and follow on permission dialogs
2 parents d04c554 + 96bffca commit cdaf020

2 files changed

Lines changed: 26 additions & 6 deletions

File tree

src/boost/coop_status_permission.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,23 @@ func HandleCoopStatusPermissionButton(s *discordgo.Session, i *discordgo.Interac
111111
customID := i.MessageComponentData().CustomID
112112
respondAndClose := func(content string) {
113113
err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
114-
Type: discordgo.InteractionResponseUpdateMessage,
114+
Type: discordgo.InteractionResponseDeferredMessageUpdate,
115115
Data: &discordgo.InteractionResponseData{
116-
Content: content,
117116
Flags: discordgo.MessageFlagsEphemeral,
118117
Components: []discordgo.MessageComponent{},
119118
},
120119
})
120+
if err != nil {
121+
log.Println("Error acknowledging coop status permission dialog:", err)
122+
return
123+
}
124+
125+
emptyComponents := []discordgo.MessageComponent{}
126+
edit := discordgo.WebhookEdit{
127+
Content: &content,
128+
Components: &emptyComponents,
129+
}
130+
_, err = s.FollowupMessageEdit(i.Interaction, i.Message.ID, &edit)
121131
if err != nil {
122132
log.Println("Error updating coop status permission dialog:", err)
123133
}
@@ -146,6 +156,6 @@ func HandleCoopStatusPermissionButton(s *discordgo.Session, i *discordgo.Interac
146156
respondAndClose("Permission granted for 7 days. You can now run your command again.")
147157

148158
case "close":
149-
respondAndClose("Dialog closed. You can enable this permission later when you're ready.")
159+
respondAndClose("I understand")
150160
}
151161
}

src/boost/leaderboard_permission.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,23 @@ func HandleLeaderboardPermissionButton(s *discordgo.Session, i *discordgo.Intera
9090
customID := i.MessageComponentData().CustomID
9191
respondAndClose := func(content string) {
9292
err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
93-
Type: discordgo.InteractionResponseUpdateMessage,
93+
Type: discordgo.InteractionResponseDeferredMessageUpdate,
9494
Data: &discordgo.InteractionResponseData{
95-
Content: content,
9695
Flags: discordgo.MessageFlagsEphemeral,
9796
Components: []discordgo.MessageComponent{},
9897
},
9998
})
99+
if err != nil {
100+
log.Println("Error acknowledging leaderboard permission dialog:", err)
101+
return
102+
}
103+
104+
emptyComponents := []discordgo.MessageComponent{}
105+
edit := discordgo.WebhookEdit{
106+
Content: &content,
107+
Components: &emptyComponents,
108+
}
109+
_, err = s.FollowupMessageEdit(i.Interaction, i.Message.ID, &edit)
100110
if err != nil {
101111
log.Println("Error updating leaderboard permission dialog:", err)
102112
}
@@ -122,6 +132,6 @@ func HandleLeaderboardPermissionButton(s *discordgo.Session, i *discordgo.Intera
122132
respondAndClose("Permission granted permanently. Please run your command again.")
123133

124134
case "close":
125-
respondAndClose("Dialog closed.")
135+
respondAndClose("I understand")
126136
}
127137
}

0 commit comments

Comments
 (0)