io.github.freya022.botcommands.internal.components.builder.AbstractActionableComponent.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.components.builder
import io.github.freya022.botcommands.api.components.ComponentInteractionFilter
import io.github.freya022.botcommands.api.components.builder.IActionableComponent
import io.github.freya022.botcommands.api.components.ratelimit.ComponentRateLimitReference
import io.github.freya022.botcommands.api.core.BContext
import io.github.freya022.botcommands.internal.components.builder.mixin.IActionableComponentMixin
internal abstract class AbstractActionableComponent>(
override val context: BContext,
override val instanceRetriever: InstanceRetriever
) : BuilderInstanceHolderImpl(),
IActionableComponentMixin {
override val filters: MutableList> = arrayListOf()
override var rateLimitReference: ComponentRateLimitReference? = null
override fun rateLimitReference(reference: ComponentRateLimitReference): T = applyInstance {
this.rateLimitReference = reference
}
override fun addFilter(filter: ComponentInteractionFilter<*>): T = applyInstance {
this.filters += filter
}
override fun addFilter(filterType: Class>): T =
addFilter(context.getService(filterType))
}