aboutsummaryrefslogtreecommitdiff
path: root/rolereact/rolereact.go
diff options
context:
space:
mode:
authorascpial <mail@ascpial.fr>2025-09-28 18:00:21 +0200
committerascpial <mail@ascpial.fr>2025-09-28 18:00:21 +0200
commit392feb89207d24215ab774c4c7492e5244748b6c (patch)
tree37858cd7adb7609f55fa4948c89c7b0a3ee9f941 /rolereact/rolereact.go
parent444f3435d412e9ac31c47c6090836fae3717081c (diff)
fix(rolereact): wrong defer type and wrong edit endpoint
Diffstat (limited to 'rolereact/rolereact.go')
-rw-r--r--rolereact/rolereact.go32
1 files changed, 20 insertions, 12 deletions
diff --git a/rolereact/rolereact.go b/rolereact/rolereact.go
index ebc09be..3d3ae47 100644
--- a/rolereact/rolereact.go
+++ b/rolereact/rolereact.go
@@ -50,8 +50,10 @@ func HandleCommand(
resp *cmd.ResponseBuilder,
) {
err := s.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseDeferredMessageUpdate,
- Data: &interaction.ResponseData{Flags: channel.MessageFlagsEphemeral},
+ Type: types.InteractionResponseDeferredChannelMessageWithSource,
+ Data: &interaction.ResponseData{
+ Flags: channel.MessageFlagsEphemeral,
+ },
})
if err != nil {
s.Logger().Error("unable to defer interaction", "error", err)
@@ -77,9 +79,9 @@ func HandleCommand(
},
)
if err != nil {
- err := s.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseChannelMessageWithSource,
- Data: &interaction.ResponseData{Content: fmt.Sprintf("Error: %s", err.Error())},
+ _, err := s.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ Flags: channel.MessageFlagsIsComponentsV2,
+ Components: []component.Message{&component.TextDisplay{Content: fmt.Sprintf("Impossible d'envoyer le message : %s", err.Error())}},
})
if err != nil {
s.Logger().Error("Unable to send message", "error", err)
@@ -92,12 +94,14 @@ func HandleCommand(
err = cfg.Save()
if err != nil {
s.Logger().Error("Unable to save rolereact message in database", "error", err)
- err := s.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseChannelMessageWithSource | types.InteractionResponseDeferredChannelMessageWithSource,
- Data: &interaction.ResponseData{Content: "Unable to save message in database. Please retry later."},
+ _, err := s.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ Flags: channel.MessageFlagsIsComponentsV2,
+ Components: []component.Message{
+ &component.TextDisplay{Content: "Impossible d'enregistrer le message dans la base de données. Merci de contacter l'administrateur du bot."},
+ },
})
if err != nil {
- s.Logger().Error("Unable to send message", "error", err)
+ s.Logger().Error("unable to send message", "error", err)
}
return
}
@@ -106,9 +110,13 @@ func HandleCommand(
editID := messageCounter
messageCounter++
- err = s.InteractionAPI().Respond(i.Interaction, &interaction.Response{
- Type: types.InteractionResponseChannelMessageWithSource,
- Data: MessageModifyData(i, &EditID{MessageEditID: editID}),
+ components := MessageModifyComponents(i, &EditID{MessageEditID: editID})
+ // Using this function here is deprecated as per discord documentation.
+ // That said, using the recommended EditResponse endpoint does not allow the use of
+ // version 2 components...
+ _, err = s.InteractionAPI().FollowupMessageCreate(i.Interaction, false, &channel.WebhookParams{
+ Flags: channel.MessageFlagsIsComponentsV2,
+ Components: components,
})
if err != nil {
s.Logger().Error("Unable to send edit rolereact message", "error", err)