
com.freya02.botcommands.api.commands.application.context.builder.MessageCommandOptionAggregateBuilder.kt Maven / Gradle / Ivy
package com.freya02.botcommands.api.commands.application.context.builder
import com.freya02.botcommands.api.commands.application.builder.ApplicationCommandOptionAggregateBuilder
import com.freya02.botcommands.api.commands.application.builder.ApplicationGeneratedOptionBuilder
import com.freya02.botcommands.api.commands.application.slash.ApplicationGeneratedValueSupplier
import com.freya02.botcommands.api.commands.builder.CustomOptionBuilder
import com.freya02.botcommands.internal.parameters.AggregatorParameter
import kotlin.reflect.KFunction
class MessageCommandOptionAggregateBuilder(
aggregatorParameter: AggregatorParameter,
aggregator: KFunction<*>
) : ApplicationCommandOptionAggregateBuilder(aggregatorParameter, aggregator) {
fun option(declaredName: String) {
this += MessageCommandOptionBuilder(aggregatorParameter.toOptionParameter(aggregator, declaredName))
}
override fun customOption(declaredName: String) {
this += CustomOptionBuilder(aggregatorParameter.toOptionParameter(aggregator, declaredName))
}
override fun generatedOption(declaredName: String, generatedValueSupplier: ApplicationGeneratedValueSupplier) {
this += ApplicationGeneratedOptionBuilder(aggregatorParameter.toOptionParameter(aggregator, declaredName), generatedValueSupplier)
}
override fun constructNestedAggregate(aggregatorParameter: AggregatorParameter, aggregator: KFunction<*>) =
MessageCommandOptionAggregateBuilder(aggregatorParameter, aggregator)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy