io.github.freya022.botcommands.internal.commands.application.slash.TopLevelSlashCommandInfo.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of BotCommands Show documentation
Show all versions of BotCommands Show documentation
A Kotlin-first (and Java) framework that makes creating Discord bots a piece of cake, using the JDA library.
package io.github.freya022.botcommands.internal.commands.application.slash
import io.github.freya022.botcommands.api.commands.application.slash.builder.TopLevelSlashCommandBuilder
import io.github.freya022.botcommands.api.core.BContext
import io.github.freya022.botcommands.internal.commands.application.slash.mixins.ITopLevelSlashCommandInfo
import io.github.freya022.botcommands.internal.commands.application.slash.mixins.TopLevelSlashCommandInfoMixin
class TopLevelSlashCommandInfo internal constructor(
context: BContext,
builder: TopLevelSlashCommandBuilder
) : SlashCommandInfo(context, builder),
ITopLevelSlashCommandInfo by TopLevelSlashCommandInfoMixin(builder) {
override val topLevelInstance: TopLevelSlashCommandInfo = this
override val parentInstance = null
val subcommands: Map = builder.subcommands.map.mapValues { it.value.build(this, this) }
val subcommandGroups: Map = builder.subcommandGroups.map.mapValues { it.value.build(this) }
fun isTopLevelCommandOnly() = subcommands.isEmpty() && subcommandGroups.isEmpty()
}