commonMain.builder.channel.TextChannelCreateBuilder.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kord-rest Show documentation
Show all versions of kord-rest Show documentation
Idiomatic Kotlin Wrapper for The Discord API
The newest version!
package dev.kord.rest.builder.channel
import dev.kord.common.annotation.KordDsl
import dev.kord.common.entity.ArchiveDuration
import dev.kord.common.entity.ChannelType
import dev.kord.common.entity.Overwrite
import dev.kord.common.entity.Snowflake
import dev.kord.common.entity.optional.Optional
import dev.kord.common.entity.optional.OptionalBoolean
import dev.kord.common.entity.optional.OptionalInt
import dev.kord.common.entity.optional.OptionalSnowflake
import dev.kord.common.entity.optional.delegate.delegate
import dev.kord.rest.builder.AuditRequestBuilder
import dev.kord.rest.json.request.GuildChannelCreateRequest
import kotlin.time.Duration
@KordDsl
public class TextChannelCreateBuilder(public var name: String) :
PermissionOverwritesCreateBuilder,
AuditRequestBuilder {
override var reason: String? = null
private var _topic: Optional = Optional.Missing()
public var topic: String? by ::_topic.delegate()
private var _rateLimitPerUser: Optional = Optional.Missing()
public var rateLimitPerUser: Duration? by ::_rateLimitPerUser.delegate()
private var _position: OptionalInt = OptionalInt.Missing
public var position: Int? by ::_position.delegate()
private var _parentId: OptionalSnowflake = OptionalSnowflake.Missing
public var parentId: Snowflake? by ::_parentId.delegate()
private var _nsfw: OptionalBoolean = OptionalBoolean.Missing
public var nsfw: Boolean? by ::_nsfw.delegate()
private var _defaultAutoArchiveDuration: Optional = Optional.Missing()
/**
* The default [duration][ArchiveDuration] that the clients use (not the API) for newly created threads in the
* channel, to automatically archive the thread after recent activity.
*/
public var defaultAutoArchiveDuration: ArchiveDuration? by ::_defaultAutoArchiveDuration.delegate()
override var permissionOverwrites: MutableSet = mutableSetOf()
private var _defaultThreadRateLimitPerUser: Optional = Optional.Missing()
public var defaultThreadRateLimitPerUser: Duration? by ::_defaultThreadRateLimitPerUser.delegate()
override fun toRequest(): GuildChannelCreateRequest = GuildChannelCreateRequest(
name = name,
type = ChannelType.GuildText,
topic = _topic,
rateLimitPerUser = _rateLimitPerUser,
position = _position,
parentId = _parentId,
nsfw = _nsfw,
permissionOverwrite = Optional.missingOnEmpty(permissionOverwrites),
defaultAutoArchiveDuration = _defaultAutoArchiveDuration,
defaultThreadRateLimitPerUser = _defaultThreadRateLimitPerUser
)
}