diff options
| author | ascpial <mail@ascpial.fr> | 2025-09-28 18:00:21 +0200 |
|---|---|---|
| committer | ascpial <mail@ascpial.fr> | 2025-09-28 18:00:21 +0200 |
| commit | 392feb89207d24215ab774c4c7492e5244748b6c (patch) | |
| tree | 37858cd7adb7609f55fa4948c89c7b0a3ee9f941 /rolereact/rolereact.go | |
| parent | 444f3435d412e9ac31c47c6090836fae3717081c (diff) | |
fix(rolereact): wrong defer type and wrong edit endpoint
Diffstat (limited to 'rolereact/rolereact.go')
| -rw-r--r-- | rolereact/rolereact.go | 32 |
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) |
