Package-level declarations

Types

Link copied to clipboard

Parameter which has its value computed by an aggregation function, from one or more options.

Link copied to clipboard
@InterfacedService(acceptMultiple = true)
abstract class ClassParameterResolver<T : ClassParameterResolver<T, R>, R : Any>(val jvmErasure: KClass<out R>) : ParameterResolver<T, R>

Base class for parameter resolvers using static types.

Link copied to clipboard
fun interface EnumNameFunction<E : Enum<E>>

Transforms an enum entry into a human-readable name.

Link copied to clipboard
Link copied to clipboard
fun interface EnumValuesSupplier<E : Enum<E>>

Retrieves the enum entries to be pushed to the provided scope.

Link copied to clipboard
interface MethodParameter

Parameter of an Executable.

Link copied to clipboard
@InterfacedService(acceptMultiple = true)
sealed class ParameterResolver<T : ParameterResolver<T, R>, R : Any> : IParameterResolver<T>

Base class for parameter resolvers used in text commands, application commands, and component callbacks.

Link copied to clipboard
@InterfacedService(acceptMultiple = true)
abstract class ParameterResolverFactory<T : IParameterResolver<T>>(val resolverType: KClass<out T>)

Factory for parameter resolvers.

Link copied to clipboard
interface ResolverData

Marker interface for data passed when requesting for a parameter resolver.

Link copied to clipboard
class ResolverRequest(val parameter: ParameterWrapper, val resolverData: ResolverData? = null)

Data used when retrieving a resolver factory.

Link copied to clipboard
object Resolvers

Utility factories to create commonly used parameter resolvers.

Link copied to clipboard
@InterfacedService(acceptMultiple = true)
abstract class TypedParameterResolver<T : TypedParameterResolver<T, R>, R : Any>(val type: KType) : ParameterResolver<T, R>

Base class for parameter resolvers using static types.

Link copied to clipboard
abstract class TypedParameterResolverFactory<T : IParameterResolver<T>>(resolverType: KClass<out T>, val type: KType) : ParameterResolverFactory<T>

Specialization of ParameterResolverFactory for a specific KType.

Functions

Link copied to clipboard
inline fun <E : Enum<E>> enumResolver(guildValuesSupplier: EnumValuesSupplier<E>, noinline nameFunction: (e: E) -> String = { it.toHumanName() }, block: EnumResolverBuilder<E>.() -> Unit = {}): ClassParameterResolver<*, E>
inline fun <E : Enum<E>> enumResolver(vararg values: E = enumValues(), noinline nameFunction: (e: E) -> String = { it.toHumanName() }, block: EnumResolverBuilder<E>.() -> Unit = {}): ClassParameterResolver<*, E>

Creates an enum resolver for slash commands, as well as component data and timeout data.

Link copied to clipboard
inline fun <T : ParameterResolver<T, R>, R : Any> resolverFactory(priority: Int = 0, crossinline producer: (request: ResolverRequest) -> T): ParameterResolverFactory<T>

Creates a parameter resolver factory from the provided resolver producer.

Link copied to clipboard
fun Enum<*>.toHumanName(locale: Locale = Locale.ROOT): String

Convert an enum to a more human-friendly name.