
com.freya02.botcommands.internal.commands.application.slash.AbstractSlashCommandParameter.kt Maven / Gradle / Ivy
package com.freya02.botcommands.internal.commands.application.slash
import com.freya02.botcommands.api.commands.application.slash.builder.SlashCommandOptionAggregateBuilder
import com.freya02.botcommands.api.commands.application.slash.builder.SlashCommandOptionBuilder
import com.freya02.botcommands.api.parameters.SlashParameterResolver
import com.freya02.botcommands.internal.CommandOptions
import com.freya02.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
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy