All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.freya02.botcommands.internal.commands.autobuilder.metadata.CommandFunctionMetadata.kt Maven / Gradle / Ivy

package com.freya02.botcommands.internal.commands.autobuilder.metadata

import com.freya02.botcommands.api.commands.CommandPath
import com.freya02.botcommands.internal.core.ClassPathFunction
import com.freya02.botcommands.internal.throwUser
import kotlin.reflect.KClass
import kotlin.reflect.safeCast

internal abstract class CommandFunctionMetadata(
    private val classPathFunction: ClassPathFunction,
    private val instanceType: KClass,
    val annotation: A,
    val path: CommandPath
) {
    val func get() = classPathFunction.function

    val instance: T
        get() = instanceType.safeCast(classPathFunction.instance)
            ?: throwUser(func, "Declaring class must extend ${instanceType.simpleName}")
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy