diff --git a/message.go b/message.go index 1ba6e44..d4bce90 100644 --- a/message.go +++ b/message.go @@ -249,6 +249,10 @@ type MessageEdit struct { Embeds []*MessageEmbed `json:"embeds"` AllowedMentions *MessageAllowedMentions `json:"allowed_mentions,omitempty"` Flags MessageFlags `json:"flags,omitempty"` + // Files to append to the message + Files []*File `json:"-"` + // Overwrite existing attachments + Attachments *[]*MessageAttachment `json:"attachments,omitempty"` ID string Channel string diff --git a/restapi.go b/restapi.go index 03d8c03..f0c7aae 100644 --- a/restapi.go +++ b/restapi.go @@ -1729,7 +1729,19 @@ func (s *Session) ChannelMessageEditComplex(m *MessageEdit) (st *Message, err er embed.Type = "rich" } } - response, err := s.RequestWithBucketID("PATCH", EndpointChannelMessage(m.Channel, m.ID), m, EndpointChannelMessage(m.Channel, "")) + + endpoint := EndpointChannelMessage(m.Channel, m.ID) + + var response []byte + if len(m.Files) > 0 { + contentType, body, encodeErr := MultipartBodyWithJSON(m, m.Files) + if encodeErr != nil { + return st, encodeErr + } + response, err = s.request("PATCH", endpoint, contentType, body, EndpointChannelMessage(m.Channel, ""), 0) + } else { + response, err = s.RequestWithBucketID("PATCH", endpoint, m, EndpointChannelMessage(m.Channel, "")) + } if err != nil { return }