Skip to content

Commit

Permalink
interaction acknowledgements no longer require data
Browse files Browse the repository at this point in the history
  • Loading branch information
HopeBaron committed Aug 4, 2021
1 parent 784b1b8 commit cf33fbe
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions core/src/main/kotlin/behavior/interaction/InteractionBehavior.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package dev.kord.core.behavior.interaction

import dev.kord.common.annotation.KordPreview
import dev.kord.common.entity.InteractionResponseType
import dev.kord.common.entity.MessageFlag
import dev.kord.common.entity.MessageFlags
import dev.kord.common.entity.Snowflake
import dev.kord.common.entity.optional.*
import dev.kord.core.Kord
import dev.kord.core.behavior.channel.MessageChannelBehavior
import dev.kord.core.entity.KordEntity
Expand All @@ -13,6 +17,8 @@ import dev.kord.core.supplier.getChannelOf
import dev.kord.core.supplier.getChannelOfOrNull
import dev.kord.rest.builder.message.create.EphemeralInteractionResponseCreateBuilder
import dev.kord.rest.builder.message.create.PublicInteractionResponseCreateBuilder
import dev.kord.rest.json.request.InteractionApplicationCommandCallbackData
import dev.kord.rest.json.request.InteractionResponseCreateRequest
import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
Expand All @@ -37,19 +43,28 @@ interface InteractionBehavior : KordEntity, Strategizable {
*
* @return [EphemeralInteractionResponseBehavior] Ephemeral acknowledgement of the interaction.
*/
suspend fun acknowledgeEphemeral(): EphemeralInteractionResponseBehavior {
val request = EphemeralInteractionResponseCreateBuilder().toRequest()
kord.rest.interaction.createInteractionResponse(id, token, request)
return EphemeralInteractionResponseBehavior(applicationId, token, kord)
}
suspend fun acknowledgeEphemeral(): EphemeralInteractionResponseBehavior {
val request = InteractionResponseCreateRequest(
type = InteractionResponseType.ChannelMessageWithSource,
data = Optional(
InteractionApplicationCommandCallbackData(
flags = Optional(MessageFlags(MessageFlag.Ephemeral))
)
)
)
kord.rest.interaction.createInteractionResponse(id, token, request)
return EphemeralInteractionResponseBehavior(applicationId, token, kord)
}

/**
* Acknowledges an interaction.
*
* @return [PublicInteractionResponseBehavior] public acknowledgement of an interaction.
*/
suspend fun acknowledgePublic(): PublicInteractionResponseBehavior {
val request = PublicInteractionResponseCreateBuilder().toRequest()
val request = InteractionResponseCreateRequest(
type = InteractionResponseType.DeferredChannelMessageWithSource
)
kord.rest.interaction.createInteractionResponse(id, token, request)
return PublicInteractionResponseBehavior(applicationId, token, kord)
}
Expand Down

0 comments on commit cf33fbe

Please sign in to comment.