io.github.freya022.botcommands.internal.commands.application.slash.AbstractSlashCommandParameter.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.SlashCommandOptionAggregateBuilder
import io.github.freya022.botcommands.api.commands.application.slash.builder.SlashCommandOptionBuilder
import io.github.freya022.botcommands.api.parameters.resolvers.SlashParameterResolver
import io.github.freya022.botcommands.internal.CommandOptions
import io.github.freya022.botcommands.internal.commands.application.ApplicationCommandParameter
abstract class AbstractSlashCommandParameter(
slashCommandInfo: SlashCommandInfo,
slashCmdOptionAggregateBuilders: Map,
optionAggregateBuilder: SlashCommandOptionAggregateBuilder
) : ApplicationCommandParameter(slashCommandInfo.context, optionAggregateBuilder) {
final override val options = CommandOptions.transform(
slashCommandInfo.context,
optionAggregateBuilder,
object : CommandOptions.Configuration> {
override fun transformOption(
optionBuilder: SlashCommandOptionBuilder,
resolver: SlashParameterResolver<*, *>
) = constructOption(slashCommandInfo, slashCmdOptionAggregateBuilders, optionBuilder, resolver)
}
)
protected abstract fun constructOption(
slashCommandInfo: SlashCommandInfo,
optionAggregateBuilders: Map,
optionBuilder: SlashCommandOptionBuilder,
resolver: SlashParameterResolver<*, *>
): AbstractSlashCommandOption
}