From 3ec4d4c684aa7a17b4e49092623bda49a4c52218 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 15 Feb 2023 16:19:38 +0100 Subject: [PATCH 01/11] Add SuppressNotifications MessageFlag --- common/src/main/kotlin/entity/DiscordMessage.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/src/main/kotlin/entity/DiscordMessage.kt b/common/src/main/kotlin/entity/DiscordMessage.kt index d19e11baf784..20cbe56cc8e5 100644 --- a/common/src/main/kotlin/entity/DiscordMessage.kt +++ b/common/src/main/kotlin/entity/DiscordMessage.kt @@ -419,6 +419,9 @@ public enum class MessageFlag(public val code: Int) { /** This message failed to mention some roles and add their members to the thread. */ FailedToMentionSomeRolesInThread(1 shl 8), + + /** This message will not trigger push and desktop notifications.*/ + SuppressNotifications(1 shl 12) } @Serializable(with = MessageFlags.Serializer::class) From 3fdc87ae25026b08e8d06a8fa3527c00d704329d Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Wed, 15 Feb 2023 16:22:48 +0100 Subject: [PATCH 02/11] Add flags to requests --- rest/src/main/kotlin/json/request/InteractionsRequests.kt | 3 ++- rest/src/main/kotlin/json/request/MessageRequests.kt | 3 ++- rest/src/main/kotlin/json/request/WebhookRequests.kt | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/rest/src/main/kotlin/json/request/InteractionsRequests.kt b/rest/src/main/kotlin/json/request/InteractionsRequests.kt index 3f8d463ce58f..61eaaa0bd8b9 100644 --- a/rest/src/main/kotlin/json/request/InteractionsRequests.kt +++ b/rest/src/main/kotlin/json/request/InteractionsRequests.kt @@ -123,7 +123,8 @@ public data class FollowupMessageModifyRequest( @SerialName("allowed_mentions") val allowedMentions: Optional = Optional.Missing(), val components: Optional?> = Optional.Missing(), - val attachments: Optional?> = Optional.Missing() + val attachments: Optional?> = Optional.Missing(), + val flags: Optional = Optional.Missing() ) public data class MultipartFollowupMessageModifyRequest( diff --git a/rest/src/main/kotlin/json/request/MessageRequests.kt b/rest/src/main/kotlin/json/request/MessageRequests.kt index f2f99642af26..8f7b832813fc 100644 --- a/rest/src/main/kotlin/json/request/MessageRequests.kt +++ b/rest/src/main/kotlin/json/request/MessageRequests.kt @@ -19,7 +19,8 @@ public data class MessageCreateRequest( val allowedMentions: Optional = Optional.Missing(), @SerialName("message_reference") val messageReference: Optional = Optional.Missing(), - val components: Optional> = Optional.Missing() + val components: Optional> = Optional.Missing(), + val flags: Optional = Optional.Missing() ) public data class MultipartMessageCreateRequest( diff --git a/rest/src/main/kotlin/json/request/WebhookRequests.kt b/rest/src/main/kotlin/json/request/WebhookRequests.kt index 8089a8ef4802..9b0f5dca83f2 100644 --- a/rest/src/main/kotlin/json/request/WebhookRequests.kt +++ b/rest/src/main/kotlin/json/request/WebhookRequests.kt @@ -3,6 +3,7 @@ package dev.kord.rest.json.request import dev.kord.common.entity.AllowedMentions import dev.kord.common.entity.DiscordAttachment import dev.kord.common.entity.DiscordComponent +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.Optional import dev.kord.common.entity.optional.OptionalBoolean import dev.kord.common.entity.optional.OptionalSnowflake @@ -31,7 +32,8 @@ public data class WebhookExecuteRequest( val embeds: Optional> = Optional.Missing(), @SerialName("allowed_mentions") val allowedMentions: Optional = Optional.Missing(), - val components: Optional> = Optional.Missing() + val components: Optional> = Optional.Missing(), + val flags: Optional = Optional.Missing() ) public data class MultiPartWebhookExecuteRequest( @@ -46,7 +48,8 @@ public data class WebhookEditMessageRequest( @SerialName("allowed_mentions") val allowedMentions: Optional = Optional.Missing(), val components: Optional> = Optional.Missing(), - val attachments: Optional> = Optional.Missing() + val attachments: Optional> = Optional.Missing(), + val flags: Optional = Optional.Missing() ) public data class MultipartWebhookEditMessageRequest( From cc4cee9af3778e6f176905cd559f530803daa789 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 16 Feb 2023 15:47:37 +0100 Subject: [PATCH 03/11] Add flags to builders --- .../src/main/kotlin/entity/DiscordMessage.kt | 2 +- .../create/FollowupMessageCreateBuilder.kt | 7 ++- .../InteractionResponseCreateBuilder.kt | 7 ++- .../message/create/MessageCreateBuilder.kt | 50 +++++++++++++++++++ ...MessageInteractionResponseCreateBuilder.kt | 6 +++ .../create/UserMessageCreateBuilder.kt | 8 ++- .../create/WebhookMessageCreateBuilder.kt | 8 ++- .../modify/FollowupMessageModifyBuilder.kt | 7 ++- .../InteractionResponseModifyBuilder.kt | 13 +++-- .../message/modify/MessageModifyBuilder.kt | 13 +++++ .../modify/MessageModifyStateHolder.kt | 4 +- .../modify/UserMessageModifyBuilder.kt | 8 +-- .../modify/WebhookMessageModifyBuilder.kt | 7 ++- .../kotlin/json/request/MessageRequests.kt | 2 +- 14 files changed, 122 insertions(+), 20 deletions(-) diff --git a/common/src/main/kotlin/entity/DiscordMessage.kt b/common/src/main/kotlin/entity/DiscordMessage.kt index 20cbe56cc8e5..470acec82860 100644 --- a/common/src/main/kotlin/entity/DiscordMessage.kt +++ b/common/src/main/kotlin/entity/DiscordMessage.kt @@ -420,7 +420,7 @@ public enum class MessageFlag(public val code: Int) { /** This message failed to mention some roles and add their members to the thread. */ FailedToMentionSomeRolesInThread(1 shl 8), - /** This message will not trigger push and desktop notifications.*/ + /** This message will not trigger push and desktop notifications. */ SuppressNotifications(1 shl 12) } diff --git a/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt index d4f72428571e..2c91129ffb62 100644 --- a/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt @@ -1,7 +1,6 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl -import dev.kord.common.entity.MessageFlag import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.* import dev.kord.rest.NamedFile @@ -33,6 +32,10 @@ public class FollowupMessageCreateBuilder(public val ephemeral: Boolean) : override val files: MutableList = mutableListOf() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null + override var suppressNotifications: Boolean? = null + override fun toRequest(): MultipartFollowupMessageCreateRequest { return MultipartFollowupMessageCreateRequest( FollowupMessageCreateRequest( @@ -41,7 +44,7 @@ public class FollowupMessageCreateBuilder(public val ephemeral: Boolean) : embeds = Optional(embeds).mapList { it.toRequest() }, allowedMentions = Optional(allowedMentions).coerceToMissing().map { it.build() }, components = Optional(components).coerceToMissing().mapList { it.build() }, - flags = Optional(if (ephemeral) MessageFlags(MessageFlag.Ephemeral) else null).coerceToMissing() + flags = buildMessageFlags(flags, suppressEmbeds, suppressNotifications, ephemeral) ), files ) diff --git a/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt index 15631c2e46fe..766c5ee6c46f 100644 --- a/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt @@ -2,7 +2,6 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.InteractionResponseType -import dev.kord.common.entity.MessageFlag import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.* import dev.kord.rest.NamedFile @@ -34,6 +33,10 @@ public class InteractionResponseCreateBuilder(public val ephemeral: Boolean = fa override val files: MutableList = mutableListOf() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null + override var suppressNotifications: Boolean? = null + override fun toRequest(): MultipartInteractionResponseCreateRequest { return MultipartInteractionResponseCreateRequest( InteractionResponseCreateRequest( @@ -45,7 +48,7 @@ public class InteractionResponseCreateBuilder(public val ephemeral: Boolean = fa embeds = Optional(embeds).mapList { it.toRequest() }, allowedMentions = Optional(allowedMentions).coerceToMissing().map { it.build() }, components = Optional(components).coerceToMissing().mapList { it.build() }, - flags = Optional(if (ephemeral) MessageFlags(MessageFlag.Ephemeral) else null).coerceToMissing() + flags = buildMessageFlags(flags, suppressEmbeds, suppressNotifications, ephemeral) ) ) ), diff --git a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt index 3ca764446f40..53eced85f9b3 100644 --- a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt @@ -1,6 +1,9 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl +import dev.kord.common.entity.MessageFlag +import dev.kord.common.entity.MessageFlags +import dev.kord.common.entity.optional.Optional import dev.kord.rest.NamedFile import dev.kord.rest.builder.component.ActionRowBuilder import dev.kord.rest.builder.component.MessageComponentBuilder @@ -53,6 +56,24 @@ public sealed interface MessageCreateBuilder { */ public val files: MutableList + /** + * Optional custom [MessageFlags] to add to the message created. + * + * @see suppressEmbeds + * @see suppressNotifications + */ + public val flags: MessageFlags? + + /** + * Do not include any embeds when serializing this message. + */ + public var suppressEmbeds: Boolean? + + /** + * This message will not trigger push and desktop notifications. + */ + public var suppressNotifications: Boolean? + /** * Adds a file with the [name] and [content] to the attachments. * @@ -86,6 +107,35 @@ public sealed interface MessageCreateBuilder { */ public suspend fun addFile(path: Path): NamedFile = addFile(path.fileName.toString(), ChannelProvider { path.readChannel() }) + +} + +internal fun buildMessageFlags( + base: MessageFlags?, + suppressEmbeds: Boolean? = null, + suppressNotifications: Boolean? = null, + ephemeral: Boolean? = null +): Optional { + fun MessageFlags.Builder.add(add: Boolean?, flag: MessageFlag) { + when (add) { + true -> +flag + false -> -flag + null -> {} + } + } + + val flags = MessageFlags { + add(suppressEmbeds, MessageFlag.SuppressEmbeds) + add(suppressNotifications, MessageFlag.SuppressNotifications) + add(ephemeral, MessageFlag.Ephemeral) + }.takeIf { it.code > 0 } + + val allFlags = listOfNotNull(base, flags) + return if (allFlags.isEmpty()) { + Optional.Missing() + } else { + Optional(MessageFlags(allFlags)) + } } /** diff --git a/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt index 374ede8e24cc..3a2d716d3f36 100644 --- a/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.InteractionResponseType +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.* import dev.kord.rest.NamedFile import dev.kord.rest.builder.RequestBuilder @@ -30,6 +31,10 @@ public class UpdateMessageInteractionResponseCreateBuilder : override var components: MutableList = mutableListOf() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null + override var suppressNotifications: Boolean? = null + override fun toRequest(): MultipartInteractionResponseCreateRequest { return MultipartInteractionResponseCreateRequest( InteractionResponseCreateRequest( @@ -40,6 +45,7 @@ public class UpdateMessageInteractionResponseCreateBuilder : allowedMentions = Optional(allowedMentions).map { it.build() }, components = Optional(components).mapList { it.build() }, tts = Optional(tts).coerceToMissing().toPrimitive(), + flags = buildMessageFlags(flags, suppressEmbeds, suppressNotifications) ).optional() ), Optional(files) diff --git a/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt index 398c86f1573a..3f59a74005ed 100644 --- a/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordMessageReference +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.Snowflake import dev.kord.common.entity.optional.* import dev.kord.rest.NamedFile @@ -53,6 +54,10 @@ public class UserMessageCreateBuilder override val files: MutableList = mutableListOf() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null + override var suppressNotifications: Boolean? = null + override fun toRequest(): MultipartMessageCreateRequest { return MultipartMessageCreateRequest( MessageCreateRequest( @@ -69,7 +74,8 @@ public class UserMessageCreateBuilder ) ) } ?: Optional.Missing(), - components = Optional(components).coerceToMissing().mapList { it.build() } + components = Optional(components).coerceToMissing().mapList { it.build() }, + flags = buildMessageFlags(flags, suppressEmbeds, suppressNotifications) ), files ) diff --git a/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt index ae3c02c6c474..be4b83ec301c 100644 --- a/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt @@ -1,6 +1,7 @@ package dev.kord.rest.builder.message.create import dev.kord.common.annotation.KordDsl +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.* import dev.kord.rest.NamedFile import dev.kord.rest.builder.RequestBuilder @@ -35,6 +36,10 @@ public class WebhookMessageCreateBuilder : override val files: MutableList = mutableListOf() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null + override var suppressNotifications: Boolean? = null + override fun toRequest(): MultiPartWebhookExecuteRequest { return MultiPartWebhookExecuteRequest( WebhookExecuteRequest( @@ -44,7 +49,8 @@ public class WebhookMessageCreateBuilder : tts = Optional(tts).coerceToMissing().toPrimitive(), embeds = Optional(embeds).mapList { it.toRequest() }, allowedMentions = Optional(allowedMentions).coerceToMissing().map { it.build() }, - components = Optional(components).coerceToMissing().mapList { it.build() } + components = Optional(components).coerceToMissing().mapList { it.build() }, + flags = buildMessageFlags(flags, suppressEmbeds, suppressNotifications) ), files ) diff --git a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt index ba6c7a498b96..dea13a68edf1 100644 --- a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordAttachment +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.delegate.delegate import dev.kord.common.entity.optional.map import dev.kord.common.entity.optional.mapList @@ -10,6 +11,7 @@ import dev.kord.rest.builder.RequestBuilder import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.create.buildMessageFlags import dev.kord.rest.json.request.FollowupMessageModifyRequest import dev.kord.rest.json.request.MultipartFollowupMessageModifyRequest @@ -30,6 +32,8 @@ public class FollowupMessageModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() + override val flags: MessageFlags? by state::flags.delegate() + override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var components: MutableList? by state::components.delegate() @@ -40,7 +44,8 @@ public class FollowupMessageModifyBuilder : embeds = state.embeds.mapList { it.toRequest() }, allowedMentions = state.allowedMentions.map { it.build() }, components = state.components.mapList { it.build() }, - attachments = state.attachments + attachments = state.attachments, + flags = buildMessageFlags(flags, suppressEmbeds) ), state.files ) diff --git a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt index d67b22584ece..7d421ac9dffd 100644 --- a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordAttachment +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.delegate.delegate import dev.kord.common.entity.optional.map import dev.kord.common.entity.optional.mapList @@ -10,12 +11,12 @@ import dev.kord.rest.builder.RequestBuilder import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.create.buildMessageFlags import dev.kord.rest.json.request.InteractionResponseModifyRequest import dev.kord.rest.json.request.MultipartInteractionResponseModifyRequest @KordDsl -public class InteractionResponseModifyBuilder : - MessageModifyBuilder, +public class InteractionResponseModifyBuilder : MessageModifyBuilder, RequestBuilder { private var state = MessageModifyStateHolder() @@ -30,6 +31,8 @@ public class InteractionResponseModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() + override val flags: MessageFlags? by state::flags.delegate() + override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var components: MutableList? by state::components.delegate() @@ -40,9 +43,9 @@ public class InteractionResponseModifyBuilder : embeds = state.embeds.mapList { it.toRequest() }, allowedMentions = state.allowedMentions.map { it.build() }, components = state.components.mapList { it.build() }, - attachments = state.attachments - ), - state.files + attachments = state.attachments, + flags = buildMessageFlags(flags, suppressEmbeds = suppressEmbeds) + ), state.files ) } diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt index 05749c8a8fc7..a33e6aa06e94 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordAttachment +import dev.kord.common.entity.MessageFlags import dev.kord.rest.NamedFile import dev.kord.rest.builder.component.ActionRowBuilder import dev.kord.rest.builder.component.MessageComponentBuilder @@ -35,6 +36,18 @@ public sealed interface MessageModifyBuilder { public var attachments: MutableList? + /** + * Optional custom [MessageFlags] to add to the message created. + * + * @see suppressEmbeds + */ + public val flags: MessageFlags? + + /** + * Do not include any embeds when serializing this message. + */ + public var suppressEmbeds: Boolean? + /** * Adds a file with the [name] and [content] to the attachments. * diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt index 50feec7e3f1d..47f5ce6ecadb 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt @@ -1,14 +1,13 @@ package dev.kord.rest.builder.message.modify -import dev.kord.common.annotation.KordPreview import dev.kord.common.entity.DiscordAttachment import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.Optional +import dev.kord.common.entity.optional.OptionalBoolean import dev.kord.rest.NamedFile import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder -import java.io.InputStream /** * Utility container for message modify builder. This class contains @@ -30,4 +29,5 @@ internal class MessageModifyStateHolder { var components: Optional> = Optional.Missing() + var suppressEmbeds: OptionalBoolean = OptionalBoolean.Missing } diff --git a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt index 68dd44e612c9..ebf8a392a5ef 100644 --- a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt @@ -11,6 +11,7 @@ import dev.kord.rest.builder.RequestBuilder import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.create.buildMessageFlags import dev.kord.rest.json.request.MessageEditPatchRequest import dev.kord.rest.json.request.MultipartMessagePatchRequest @@ -29,7 +30,8 @@ public class UserMessageModifyBuilder override var embeds: MutableList? by state::embeds.delegate() - public var flags: MessageFlags? by state::flags.delegate() + override val flags: MessageFlags? by state::flags.delegate() + override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() @@ -40,10 +42,10 @@ public class UserMessageModifyBuilder MessageEditPatchRequest( content = state.content, embeds = state.embeds.mapList { it.toRequest() }, - flags = state.flags, + flags = buildMessageFlags(flags, suppressEmbeds), allowedMentions = state.allowedMentions.map { it.build() }, components = state.components.mapList { it.build() }, - attachments = state.attachments + attachments = state.attachments, ), state.files, ) diff --git a/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt index 25a4493e5df6..47b55beb18c7 100644 --- a/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt @@ -2,6 +2,7 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordAttachment +import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.delegate.delegate import dev.kord.common.entity.optional.map import dev.kord.common.entity.optional.mapList @@ -10,6 +11,7 @@ import dev.kord.rest.builder.RequestBuilder import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.create.buildMessageFlags import dev.kord.rest.json.request.MultipartWebhookEditMessageRequest import dev.kord.rest.json.request.WebhookEditMessageRequest @@ -30,6 +32,8 @@ public class WebhookMessageModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() + override val flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null override var components: MutableList? by state::components.delegate() @@ -40,7 +44,8 @@ public class WebhookMessageModifyBuilder : embeds = state.embeds.mapList { it.toRequest() }, allowedMentions = state.allowedMentions.map { it.build() }, components = state.components.mapList { it.build() }, - attachments = state.attachments + attachments = state.attachments, + flags = buildMessageFlags(flags, suppressEmbeds) ), files = state.files ) diff --git a/rest/src/main/kotlin/json/request/MessageRequests.kt b/rest/src/main/kotlin/json/request/MessageRequests.kt index 8f7b832813fc..e066d3eb0e0c 100644 --- a/rest/src/main/kotlin/json/request/MessageRequests.kt +++ b/rest/src/main/kotlin/json/request/MessageRequests.kt @@ -79,7 +79,7 @@ public data class MessageEditPatchRequest( @SerialName("allowed_mentions") val allowedMentions: Optional = Optional.Missing(), val components: Optional> = Optional.Missing(), - val attachments: Optional> = Optional.Missing() + val attachments: Optional> = Optional.Missing(), ) public data class MultipartMessagePatchRequest( From acb2443919dab17df1a9c006d49c70b51f04bca5 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 16 Feb 2023 15:48:05 +0100 Subject: [PATCH 04/11] Add API dump --- common/api/common.api | 1 + rest/api/rest.api | 95 +++++++++++++++++++++++++++++++++---------- 2 files changed, 74 insertions(+), 22 deletions(-) diff --git a/common/api/common.api b/common/api/common.api index 79198613cf34..5ff020387d9c 100644 --- a/common/api/common.api +++ b/common/api/common.api @@ -6758,6 +6758,7 @@ public final class dev/kord/common/entity/MessageFlag : java/lang/Enum { public static final field Loading Ldev/kord/common/entity/MessageFlag; public static final field SourceMessageDeleted Ldev/kord/common/entity/MessageFlag; public static final field SuppressEmbeds Ldev/kord/common/entity/MessageFlag; + public static final field SuppressNotifications Ldev/kord/common/entity/MessageFlag; public static final field Urgent Ldev/kord/common/entity/MessageFlag; public final fun getCode ()I public static fun valueOf (Ljava/lang/String;)Ldev/kord/common/entity/MessageFlag; diff --git a/rest/api/rest.api b/rest/api/rest.api index 884038fa5585..3f86c34f9434 100644 --- a/rest/api/rest.api +++ b/rest/api/rest.api @@ -1777,9 +1777,14 @@ public final class dev/kord/rest/builder/message/create/FollowupMessageCreateBui public fun getEmbeds ()Ljava/util/List; public final fun getEphemeral ()Z public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; + public fun getSuppressNotifications ()Ljava/lang/Boolean; public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartFollowupMessageCreateRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -1798,9 +1803,14 @@ public final class dev/kord/rest/builder/message/create/InteractionResponseCreat public fun getEmbeds ()Ljava/util/List; public final fun getEphemeral ()Z public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; + public fun getSuppressNotifications ()Ljava/lang/Boolean; public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartInteractionResponseCreateRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -1815,9 +1825,14 @@ public abstract interface class dev/kord/rest/builder/message/create/MessageCrea public abstract fun getContent ()Ljava/lang/String; public abstract fun getEmbeds ()Ljava/util/List; public abstract fun getFiles ()Ljava/util/List; + public abstract fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public abstract fun getSuppressEmbeds ()Ljava/lang/Boolean; + public abstract fun getSuppressNotifications ()Ljava/lang/Boolean; public abstract fun getTts ()Ljava/lang/Boolean; public abstract fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public abstract fun setContent (Ljava/lang/String;)V + public abstract fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public abstract fun setSuppressNotifications (Ljava/lang/Boolean;)V public abstract fun setTts (Ljava/lang/Boolean;)V } @@ -1844,12 +1859,17 @@ public final class dev/kord/rest/builder/message/create/UpdateMessageInteraction public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; + public fun getSuppressNotifications ()Ljava/lang/Boolean; public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setComponents (Ljava/util/List;)V public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartInteractionResponseCreateRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -1866,14 +1886,19 @@ public final class dev/kord/rest/builder/message/create/UserMessageCreateBuilder public fun getEmbeds ()Ljava/util/List; public final fun getFailIfNotExists ()Ljava/lang/Boolean; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; public final fun getMessageReference ()Ldev/kord/common/entity/Snowflake; public final fun getNonce ()Ljava/lang/String; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; + public fun getSuppressNotifications ()Ljava/lang/Boolean; public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V public final fun setFailIfNotExists (Ljava/lang/Boolean;)V public final fun setMessageReference (Ldev/kord/common/entity/Snowflake;)V public final fun setNonce (Ljava/lang/String;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartMessageCreateRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -1890,11 +1915,16 @@ public final class dev/kord/rest/builder/message/create/WebhookMessageCreateBuil public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; + public fun getSuppressNotifications ()Ljava/lang/Boolean; public fun getTts ()Ljava/lang/Boolean; public final fun getUsername ()Ljava/lang/String; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public final fun setAvatarUrl (Ljava/lang/String;)V public fun setContent (Ljava/lang/String;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V + public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V public final fun setUsername (Ljava/lang/String;)V public fun toRequest ()Ldev/kord/rest/json/request/MultiPartWebhookExecuteRequest; @@ -1912,12 +1942,15 @@ public final class dev/kord/rest/builder/message/modify/FollowupMessageModifyBui public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setAttachments (Ljava/util/List;)V public fun setComponents (Ljava/util/List;)V public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartFollowupMessageModifyRequest; public synthetic fun toRequest ()Ljava/lang/Object; } @@ -1933,12 +1966,15 @@ public final class dev/kord/rest/builder/message/modify/InteractionResponseModif public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setAttachments (Ljava/util/List;)V public fun setComponents (Ljava/util/List;)V public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartInteractionResponseModifyRequest; public synthetic fun toRequest ()Ljava/lang/Object; } @@ -1953,12 +1989,15 @@ public abstract interface class dev/kord/rest/builder/message/modify/MessageModi public abstract fun getContent ()Ljava/lang/String; public abstract fun getEmbeds ()Ljava/util/List; public abstract fun getFiles ()Ljava/util/List; + public abstract fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public abstract fun getSuppressEmbeds ()Ljava/lang/Boolean; public abstract fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public abstract fun setAttachments (Ljava/util/List;)V public abstract fun setComponents (Ljava/util/List;)V public abstract fun setContent (Ljava/lang/String;)V public abstract fun setEmbeds (Ljava/util/List;)V public abstract fun setFiles (Ljava/util/List;)V + public abstract fun setSuppressEmbeds (Ljava/lang/Boolean;)V } public final class dev/kord/rest/builder/message/modify/MessageModifyBuilder$DefaultImpls { @@ -1985,14 +2024,15 @@ public final class dev/kord/rest/builder/message/modify/UserMessageModifyBuilder public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; - public final fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setAttachments (Ljava/util/List;)V public fun setComponents (Ljava/util/List;)V public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V - public final fun setFlags (Ldev/kord/common/entity/MessageFlags;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartMessagePatchRequest; public synthetic fun toRequest ()Ljava/lang/Object; } @@ -2008,12 +2048,15 @@ public final class dev/kord/rest/builder/message/modify/WebhookMessageModifyBuil public fun getContent ()Ljava/lang/String; public fun getEmbeds ()Ljava/util/List; public fun getFiles ()Ljava/util/List; + public fun getFlags ()Ldev/kord/common/entity/MessageFlags; + public fun getSuppressEmbeds ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setAttachments (Ljava/util/List;)V public fun setComponents (Ljava/util/List;)V public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartWebhookEditMessageRequest; public synthetic fun toRequest ()Ljava/lang/Object; } @@ -3308,22 +3351,24 @@ public final class dev/kord/rest/json/request/FollowupMessageCreateRequest$Compa public final class dev/kord/rest/json/request/FollowupMessageModifyRequest { public static final field Companion Ldev/kord/rest/json/request/FollowupMessageModifyRequest$Companion; public fun ()V - public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V - public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/Optional; public final fun component4 ()Ldev/kord/common/entity/optional/Optional; public final fun component5 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/FollowupMessageModifyRequest; - public static synthetic fun copy$default (Ldev/kord/rest/json/request/FollowupMessageModifyRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/FollowupMessageModifyRequest; + public final fun component6 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/FollowupMessageModifyRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/FollowupMessageModifyRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/FollowupMessageModifyRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAllowedMentions ()Ldev/kord/common/entity/optional/Optional; public final fun getAttachments ()Ldev/kord/common/entity/optional/Optional; public final fun getComponents ()Ldev/kord/common/entity/optional/Optional; public final fun getContent ()Ldev/kord/common/entity/optional/Optional; public final fun getEmbeds ()Ldev/kord/common/entity/optional/Optional; + public final fun getFlags ()Ldev/kord/common/entity/optional/Optional; public fun hashCode ()I public fun toString ()Ljava/lang/String; public static final fun write$Self (Ldev/kord/rest/json/request/FollowupMessageModifyRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V @@ -4374,9 +4419,9 @@ public final class dev/kord/rest/json/request/ListThreadsByTimestampRequest { public final class dev/kord/rest/json/request/MessageCreateRequest { public static final field Companion Ldev/kord/rest/json/request/MessageCreateRequest$Companion; public fun ()V - public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V - public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/OptionalBoolean; @@ -4384,13 +4429,15 @@ public final class dev/kord/rest/json/request/MessageCreateRequest { public final fun component5 ()Ldev/kord/common/entity/optional/Optional; public final fun component6 ()Ldev/kord/common/entity/optional/Optional; public final fun component7 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/MessageCreateRequest; - public static synthetic fun copy$default (Ldev/kord/rest/json/request/MessageCreateRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/MessageCreateRequest; + public final fun component8 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/MessageCreateRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/MessageCreateRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/MessageCreateRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAllowedMentions ()Ldev/kord/common/entity/optional/Optional; public final fun getComponents ()Ldev/kord/common/entity/optional/Optional; public final fun getContent ()Ldev/kord/common/entity/optional/Optional; public final fun getEmbeds ()Ldev/kord/common/entity/optional/Optional; + public final fun getFlags ()Ldev/kord/common/entity/optional/Optional; public final fun getMessageReference ()Ldev/kord/common/entity/optional/Optional; public final fun getNonce ()Ldev/kord/common/entity/optional/Optional; public final fun getTts ()Ldev/kord/common/entity/optional/OptionalBoolean; @@ -4863,22 +4910,24 @@ public final class dev/kord/rest/json/request/WebhookCreateRequest$Companion { public final class dev/kord/rest/json/request/WebhookEditMessageRequest { public static final field Companion Ldev/kord/rest/json/request/WebhookEditMessageRequest$Companion; public fun ()V - public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V - public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/Optional; public final fun component4 ()Ldev/kord/common/entity/optional/Optional; public final fun component5 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/WebhookEditMessageRequest; - public static synthetic fun copy$default (Ldev/kord/rest/json/request/WebhookEditMessageRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/WebhookEditMessageRequest; + public final fun component6 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/WebhookEditMessageRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/WebhookEditMessageRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/WebhookEditMessageRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAllowedMentions ()Ldev/kord/common/entity/optional/Optional; public final fun getAttachments ()Ldev/kord/common/entity/optional/Optional; public final fun getComponents ()Ldev/kord/common/entity/optional/Optional; public final fun getContent ()Ldev/kord/common/entity/optional/Optional; public final fun getEmbeds ()Ldev/kord/common/entity/optional/Optional; + public final fun getFlags ()Ldev/kord/common/entity/optional/Optional; public fun hashCode ()I public fun toString ()Ljava/lang/String; public static final fun write$Self (Ldev/kord/rest/json/request/WebhookEditMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V @@ -4902,9 +4951,9 @@ public final class dev/kord/rest/json/request/WebhookEditMessageRequest$Companio public final class dev/kord/rest/json/request/WebhookExecuteRequest { public static final field Companion Ldev/kord/rest/json/request/WebhookExecuteRequest$Companion; public fun ()V - public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V - public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V - public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (ILdev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)V + public synthetic fun (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/kord/common/entity/optional/Optional; public final fun component2 ()Ldev/kord/common/entity/optional/Optional; public final fun component3 ()Ldev/kord/common/entity/optional/Optional; @@ -4912,14 +4961,16 @@ public final class dev/kord/rest/json/request/WebhookExecuteRequest { public final fun component5 ()Ldev/kord/common/entity/optional/Optional; public final fun component6 ()Ldev/kord/common/entity/optional/Optional; public final fun component7 ()Ldev/kord/common/entity/optional/Optional; - public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/WebhookExecuteRequest; - public static synthetic fun copy$default (Ldev/kord/rest/json/request/WebhookExecuteRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/WebhookExecuteRequest; + public final fun component8 ()Ldev/kord/common/entity/optional/Optional; + public final fun copy (Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;)Ldev/kord/rest/json/request/WebhookExecuteRequest; + public static synthetic fun copy$default (Ldev/kord/rest/json/request/WebhookExecuteRequest;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/OptionalBoolean;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;Ldev/kord/common/entity/optional/Optional;ILjava/lang/Object;)Ldev/kord/rest/json/request/WebhookExecuteRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAllowedMentions ()Ldev/kord/common/entity/optional/Optional; public final fun getAvatar ()Ldev/kord/common/entity/optional/Optional; public final fun getComponents ()Ldev/kord/common/entity/optional/Optional; public final fun getContent ()Ldev/kord/common/entity/optional/Optional; public final fun getEmbeds ()Ldev/kord/common/entity/optional/Optional; + public final fun getFlags ()Ldev/kord/common/entity/optional/Optional; public final fun getTts ()Ldev/kord/common/entity/optional/OptionalBoolean; public final fun getUsername ()Ldev/kord/common/entity/optional/Optional; public fun hashCode ()I From 227135eb939bbb3c6da1980e3cefe53093f90207 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 17 Feb 2023 07:45:25 +0100 Subject: [PATCH 05/11] Make MessageFlags a var --- .../builder/message/create/FollowupMessageCreateBuilder.kt | 2 +- .../builder/message/create/InteractionResponseCreateBuilder.kt | 2 +- .../main/kotlin/builder/message/create/MessageCreateBuilder.kt | 2 +- .../create/UpdateMessageInteractionResponseCreateBuilder.kt | 2 +- .../kotlin/builder/message/create/UserMessageCreateBuilder.kt | 2 +- .../builder/message/create/WebhookMessageCreateBuilder.kt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt index 2c91129ffb62..4fa1cb084365 100644 --- a/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/FollowupMessageCreateBuilder.kt @@ -32,7 +32,7 @@ public class FollowupMessageCreateBuilder(public val ephemeral: Boolean) : override val files: MutableList = mutableListOf() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var suppressNotifications: Boolean? = null diff --git a/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt index 766c5ee6c46f..1633f4197dac 100644 --- a/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/InteractionResponseCreateBuilder.kt @@ -33,7 +33,7 @@ public class InteractionResponseCreateBuilder(public val ephemeral: Boolean = fa override val files: MutableList = mutableListOf() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var suppressNotifications: Boolean? = null diff --git a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt index 53eced85f9b3..7d3209a84580 100644 --- a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt @@ -62,7 +62,7 @@ public sealed interface MessageCreateBuilder { * @see suppressEmbeds * @see suppressNotifications */ - public val flags: MessageFlags? + public var flags: MessageFlags? /** * Do not include any embeds when serializing this message. diff --git a/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt index 3a2d716d3f36..9cec48258cd4 100644 --- a/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/UpdateMessageInteractionResponseCreateBuilder.kt @@ -31,7 +31,7 @@ public class UpdateMessageInteractionResponseCreateBuilder : override var components: MutableList = mutableListOf() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var suppressNotifications: Boolean? = null diff --git a/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt index 3f59a74005ed..a53d01f2477f 100644 --- a/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/UserMessageCreateBuilder.kt @@ -54,7 +54,7 @@ public class UserMessageCreateBuilder override val files: MutableList = mutableListOf() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var suppressNotifications: Boolean? = null diff --git a/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt index be4b83ec301c..c4d779dc6257 100644 --- a/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/WebhookMessageCreateBuilder.kt @@ -36,7 +36,7 @@ public class WebhookMessageCreateBuilder : override val files: MutableList = mutableListOf() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var suppressNotifications: Boolean? = null From 277f12288835c0a4f40035a44c8cc01d31366a9b Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 17 Feb 2023 07:45:45 +0100 Subject: [PATCH 06/11] Add convenience builders --- .../builder/message/create/MessageCreateBuilder.kt | 12 ++++++++++++ .../builder/message/modify/MessageModifyBuilder.kt | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt index 7d3209a84580..4b870a6566aa 100644 --- a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt @@ -166,3 +166,15 @@ public inline fun MessageCreateBuilder.actionRow(builder: ActionRowBuilder.() -> components.add(ActionRowBuilder().apply(builder)) } + +/** + * Sets the [MessageFlags] for the created message. + * + * **Only supports [MessageFlag.SuppressEmbeds] and [MessageFlag.SuppressNotifications]** + */ +public inline fun MessageCreateBuilder.messageFlags(builder: MessageFlags.Builder.() -> Unit) { + contract { + callsInPlace(builder, InvocationKind.EXACTLY_ONCE) + } + flags = MessageFlags(builder) +} diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt index a33e6aa06e94..3db2dea14db9 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt @@ -2,12 +2,14 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.annotation.KordDsl import dev.kord.common.entity.DiscordAttachment +import dev.kord.common.entity.MessageFlag import dev.kord.common.entity.MessageFlags import dev.kord.rest.NamedFile import dev.kord.rest.builder.component.ActionRowBuilder import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.create.MessageCreateBuilder import io.ktor.client.request.forms.* import io.ktor.util.cio.* import io.ktor.utils.io.jvm.javaio.* @@ -114,3 +116,15 @@ public inline fun MessageModifyBuilder.actionRow(builder: ActionRowBuilder.() -> it.add(ActionRowBuilder().apply(builder)) } } + +/** + * Sets/Unsets the [MessageFlags] for this message. + * + * **Only supports [MessageFlag.SuppressEmbeds]** + */ +public inline fun MessageCreateBuilder.messageFlags(builder: MessageFlags.Builder.() -> Unit) { + contract { + callsInPlace(builder, InvocationKind.EXACTLY_ONCE) + } + flags = MessageFlags(builder) +} From 973fc6c9446089458a15601d123040769111bc29 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Fri, 17 Feb 2023 08:45:42 +0100 Subject: [PATCH 07/11] api dump --- rest/api/rest.api | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rest/api/rest.api b/rest/api/rest.api index 3f86c34f9434..1d9763bf34b5 100644 --- a/rest/api/rest.api +++ b/rest/api/rest.api @@ -1783,6 +1783,7 @@ public final class dev/kord/rest/builder/message/create/FollowupMessageCreateBui public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V @@ -1809,6 +1810,7 @@ public final class dev/kord/rest/builder/message/create/InteractionResponseCreat public fun getTts ()Ljava/lang/Boolean; public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V @@ -1831,6 +1833,7 @@ public abstract interface class dev/kord/rest/builder/message/create/MessageCrea public abstract fun getTts ()Ljava/lang/Boolean; public abstract fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public abstract fun setContent (Ljava/lang/String;)V + public abstract fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public abstract fun setSuppressEmbeds (Ljava/lang/Boolean;)V public abstract fun setSuppressNotifications (Ljava/lang/Boolean;)V public abstract fun setTts (Ljava/lang/Boolean;)V @@ -1847,6 +1850,7 @@ public final class dev/kord/rest/builder/message/create/MessageCreateBuilderKt { public static final fun allowedMentions (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;)V public static synthetic fun allowedMentions$default (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public static final fun embed (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun messageFlags (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;)V } public final class dev/kord/rest/builder/message/create/UpdateMessageInteractionResponseCreateBuilder : dev/kord/rest/builder/RequestBuilder, dev/kord/rest/builder/message/create/MessageCreateBuilder { @@ -1868,6 +1872,7 @@ public final class dev/kord/rest/builder/message/create/UpdateMessageInteraction public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V @@ -1895,6 +1900,7 @@ public final class dev/kord/rest/builder/message/create/UserMessageCreateBuilder public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public fun setContent (Ljava/lang/String;)V public final fun setFailIfNotExists (Ljava/lang/Boolean;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public final fun setMessageReference (Ldev/kord/common/entity/Snowflake;)V public final fun setNonce (Ljava/lang/String;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V @@ -1923,6 +1929,7 @@ public final class dev/kord/rest/builder/message/create/WebhookMessageCreateBuil public fun setAllowedMentions (Ldev/kord/rest/builder/message/AllowedMentionsBuilder;)V public final fun setAvatarUrl (Ljava/lang/String;)V public fun setContent (Ljava/lang/String;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun setSuppressNotifications (Ljava/lang/Boolean;)V public fun setTts (Ljava/lang/Boolean;)V @@ -2011,6 +2018,7 @@ public final class dev/kord/rest/builder/message/modify/MessageModifyBuilderKt { public static final fun allowedMentions (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;)V public static synthetic fun allowedMentions$default (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public static final fun embed (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun messageFlags (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;)V } public final class dev/kord/rest/builder/message/modify/UserMessageModifyBuilder : dev/kord/rest/builder/RequestBuilder, dev/kord/rest/builder/message/modify/MessageModifyBuilder { From f5e6c684391d9dff39aa586ee16ae4ee75e28457 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 2 Mar 2023 11:59:39 +0100 Subject: [PATCH 08/11] Apply suggestions from code review Co-authored-by: Lukellmann <47486203+Lukellmann@users.noreply.github.com> --- .../message/create/MessageCreateBuilder.kt | 16 ++++++++-------- .../modify/InteractionResponseModifyBuilder.kt | 2 +- .../message/modify/MessageModifyBuilder.kt | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt index 4b870a6566aa..6acce601c8e0 100644 --- a/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt +++ b/rest/src/main/kotlin/builder/message/create/MessageCreateBuilder.kt @@ -112,7 +112,7 @@ public sealed interface MessageCreateBuilder { internal fun buildMessageFlags( base: MessageFlags?, - suppressEmbeds: Boolean? = null, + suppressEmbeds: Boolean?, suppressNotifications: Boolean? = null, ephemeral: Boolean? = null ): Optional { @@ -124,18 +124,18 @@ internal fun buildMessageFlags( } } + if (base == null && suppressEmbeds == null && suppressNotifications == null && ephemeral == null) { + return Optional.Missing() + } + val flags = MessageFlags { + if (base != null) +base add(suppressEmbeds, MessageFlag.SuppressEmbeds) add(suppressNotifications, MessageFlag.SuppressNotifications) add(ephemeral, MessageFlag.Ephemeral) - }.takeIf { it.code > 0 } - - val allFlags = listOfNotNull(base, flags) - return if (allFlags.isEmpty()) { - Optional.Missing() - } else { - Optional(MessageFlags(allFlags)) } + + return Optional.Value(flags) } /** diff --git a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt index 7d421ac9dffd..d43c59828943 100644 --- a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt @@ -44,7 +44,7 @@ public class InteractionResponseModifyBuilder : MessageModifyBuilder, allowedMentions = state.allowedMentions.map { it.build() }, components = state.components.mapList { it.build() }, attachments = state.attachments, - flags = buildMessageFlags(flags, suppressEmbeds = suppressEmbeds) + flags = buildMessageFlags(flags, suppressEmbeds) ), state.files ) } diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt index 3db2dea14db9..97ef36346deb 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt @@ -122,7 +122,7 @@ public inline fun MessageModifyBuilder.actionRow(builder: ActionRowBuilder.() -> * * **Only supports [MessageFlag.SuppressEmbeds]** */ -public inline fun MessageCreateBuilder.messageFlags(builder: MessageFlags.Builder.() -> Unit) { +public inline fun MessageModifyBuilder.messageFlags(builder: MessageFlags.Builder.() -> Unit) { contract { callsInPlace(builder, InvocationKind.EXACTLY_ONCE) } From 087f610cab6681357965c03a1c1bb512b5853e6d Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 2 Mar 2023 11:56:42 +0100 Subject: [PATCH 09/11] Make MessageModifyBuilder.flags a var --- .../builder/message/modify/FollowupMessageModifyBuilder.kt | 2 +- .../builder/message/modify/InteractionResponseModifyBuilder.kt | 2 +- .../main/kotlin/builder/message/modify/MessageModifyBuilder.kt | 2 +- .../kotlin/builder/message/modify/UserMessageModifyBuilder.kt | 2 +- .../builder/message/modify/WebhookMessageModifyBuilder.kt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt index dea13a68edf1..2b0fab083bba 100644 --- a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt @@ -32,7 +32,7 @@ public class FollowupMessageModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() - override val flags: MessageFlags? by state::flags.delegate() + override var flags: MessageFlags? by state::flags.delegate() override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var components: MutableList? by state::components.delegate() diff --git a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt index d43c59828943..399b76761e2e 100644 --- a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt @@ -31,7 +31,7 @@ public class InteractionResponseModifyBuilder : MessageModifyBuilder, override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() - override val flags: MessageFlags? by state::flags.delegate() + override var flags: MessageFlags? by state::flags.delegate() override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var components: MutableList? by state::components.delegate() diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt index 97ef36346deb..4e32518ce58b 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt @@ -43,7 +43,7 @@ public sealed interface MessageModifyBuilder { * * @see suppressEmbeds */ - public val flags: MessageFlags? + public var flags: MessageFlags? /** * Do not include any embeds when serializing this message. diff --git a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt index ebf8a392a5ef..4f8c325d82f1 100644 --- a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt @@ -30,7 +30,7 @@ public class UserMessageModifyBuilder override var embeds: MutableList? by state::embeds.delegate() - override val flags: MessageFlags? by state::flags.delegate() + override var flags: MessageFlags? by state::flags.delegate() override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() diff --git a/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt index 47b55beb18c7..a85604ce3bef 100644 --- a/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/WebhookMessageModifyBuilder.kt @@ -32,7 +32,7 @@ public class WebhookMessageModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() - override val flags: MessageFlags? = null + override var flags: MessageFlags? = null override var suppressEmbeds: Boolean? = null override var components: MutableList? by state::components.delegate() From 7e37868d49e103498e51cc72a89e30260c972768 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 2 Mar 2023 11:58:46 +0100 Subject: [PATCH 10/11] Update documentation of MessageModifyBuilder.flags --- .../main/kotlin/builder/message/modify/MessageModifyBuilder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt index 4e32518ce58b..c4396145e759 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyBuilder.kt @@ -39,7 +39,7 @@ public sealed interface MessageModifyBuilder { public var attachments: MutableList? /** - * Optional custom [MessageFlags] to add to the message created. + * Optional custom [MessageFlags] to update in this message. * * @see suppressEmbeds */ From 62d76d362fc35f1b90f246a637481ad64ea4a67f Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Thu, 2 Mar 2023 12:02:57 +0100 Subject: [PATCH 11/11] Remove flags from MessageModifyStateHolder --- rest/api/rest.api | 7 ++++++- .../builder/message/modify/FollowupMessageModifyBuilder.kt | 4 ++-- .../message/modify/InteractionResponseModifyBuilder.kt | 4 ++-- .../builder/message/modify/MessageModifyStateHolder.kt | 6 ------ .../builder/message/modify/UserMessageModifyBuilder.kt | 4 ++-- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/rest/api/rest.api b/rest/api/rest.api index 1d9763bf34b5..26766f3dd456 100644 --- a/rest/api/rest.api +++ b/rest/api/rest.api @@ -1957,6 +1957,7 @@ public final class dev/kord/rest/builder/message/modify/FollowupMessageModifyBui public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartFollowupMessageModifyRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -1981,6 +1982,7 @@ public final class dev/kord/rest/builder/message/modify/InteractionResponseModif public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartInteractionResponseModifyRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -2004,6 +2006,7 @@ public abstract interface class dev/kord/rest/builder/message/modify/MessageModi public abstract fun setContent (Ljava/lang/String;)V public abstract fun setEmbeds (Ljava/util/List;)V public abstract fun setFiles (Ljava/util/List;)V + public abstract fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public abstract fun setSuppressEmbeds (Ljava/lang/Boolean;)V } @@ -2018,7 +2021,7 @@ public final class dev/kord/rest/builder/message/modify/MessageModifyBuilderKt { public static final fun allowedMentions (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;)V public static synthetic fun allowedMentions$default (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V public static final fun embed (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;)V - public static final fun messageFlags (Ldev/kord/rest/builder/message/create/MessageCreateBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun messageFlags (Ldev/kord/rest/builder/message/modify/MessageModifyBuilder;Lkotlin/jvm/functions/Function1;)V } public final class dev/kord/rest/builder/message/modify/UserMessageModifyBuilder : dev/kord/rest/builder/RequestBuilder, dev/kord/rest/builder/message/modify/MessageModifyBuilder { @@ -2040,6 +2043,7 @@ public final class dev/kord/rest/builder/message/modify/UserMessageModifyBuilder public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartMessagePatchRequest; public synthetic fun toRequest ()Ljava/lang/Object; @@ -2064,6 +2068,7 @@ public final class dev/kord/rest/builder/message/modify/WebhookMessageModifyBuil public fun setContent (Ljava/lang/String;)V public fun setEmbeds (Ljava/util/List;)V public fun setFiles (Ljava/util/List;)V + public fun setFlags (Ldev/kord/common/entity/MessageFlags;)V public fun setSuppressEmbeds (Ljava/lang/Boolean;)V public fun toRequest ()Ldev/kord/rest/json/request/MultipartWebhookEditMessageRequest; public synthetic fun toRequest ()Ljava/lang/Object; diff --git a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt index 2b0fab083bba..ccf8240f49e2 100644 --- a/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/FollowupMessageModifyBuilder.kt @@ -32,8 +32,8 @@ public class FollowupMessageModifyBuilder : override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() - override var flags: MessageFlags? by state::flags.delegate() - override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() + override var flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null override var components: MutableList? by state::components.delegate() diff --git a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt index 399b76761e2e..36f2b9ed00ba 100644 --- a/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/InteractionResponseModifyBuilder.kt @@ -31,8 +31,8 @@ public class InteractionResponseModifyBuilder : MessageModifyBuilder, override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate() - override var flags: MessageFlags? by state::flags.delegate() - override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() + override var flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null override var components: MutableList? by state::components.delegate() diff --git a/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt b/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt index 47f5ce6ecadb..a5a249c5d9ed 100644 --- a/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt +++ b/rest/src/main/kotlin/builder/message/modify/MessageModifyStateHolder.kt @@ -1,9 +1,7 @@ package dev.kord.rest.builder.message.modify import dev.kord.common.entity.DiscordAttachment -import dev.kord.common.entity.MessageFlags import dev.kord.common.entity.optional.Optional -import dev.kord.common.entity.optional.OptionalBoolean import dev.kord.rest.NamedFile import dev.kord.rest.builder.component.MessageComponentBuilder import dev.kord.rest.builder.message.AllowedMentionsBuilder @@ -21,13 +19,9 @@ internal class MessageModifyStateHolder { var embeds: Optional> = Optional.Missing() - var flags: Optional = Optional.Missing() - var allowedMentions: Optional = Optional.Missing() var attachments: Optional> = Optional.Missing() var components: Optional> = Optional.Missing() - - var suppressEmbeds: OptionalBoolean = OptionalBoolean.Missing } diff --git a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt index 4f8c325d82f1..3506e8f13b5e 100644 --- a/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt +++ b/rest/src/main/kotlin/builder/message/modify/UserMessageModifyBuilder.kt @@ -30,8 +30,8 @@ public class UserMessageModifyBuilder override var embeds: MutableList? by state::embeds.delegate() - override var flags: MessageFlags? by state::flags.delegate() - override var suppressEmbeds: Boolean? by state::suppressEmbeds.delegate() + override var flags: MessageFlags? = null + override var suppressEmbeds: Boolean? = null override var allowedMentions: AllowedMentionsBuilder? by state::allowedMentions.delegate()