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

com.freya02.botcommands.api.parameters.ParameterResolver Maven / Gradle / Ivy

package com.freya02.botcommands.api.parameters;

import com.freya02.botcommands.api.Logging;
import com.freya02.botcommands.internal.UtilsKt;
import kotlin.reflect.KClass;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;

/**
 * Base class for parameter resolvers used in regex commands, application commands and buttons callbacks
 * 

* Parameters supported by default: *

    *
  • {@linkplain String}
  • * *
  • boolean
  • *
  • long
  • *
  • double
  • * *
  • {@linkplain Emoji}
  • * *
  • {@linkplain Role}
  • *
  • {@linkplain User}
  • *
  • {@linkplain Member}
  • *
  • {@linkplain GuildChannel all guild channels subtypes (in theory)}
  • *
  • {@linkplain Message} (only message context commands)
  • *
* * You can also check loaded parameter resolvers in the logs, on the "trace" level * * @see RegexParameterResolver * @see QuotableRegexParameterResolver * @see ComponentParameterResolver * @see SlashParameterResolver * @see MessageContextParameterResolver * @see UserContextParameterResolver * @see ICustomResolver */ @SuppressWarnings("unused") //T is used for the inheritance constraint public abstract class ParameterResolver, R> { protected final Logger LOGGER = Logging.getLogger(this); private final KClass jvmErasure; /** * Constructs a new parameter resolver * * @param clazz Class of the parameter being resolved */ public ParameterResolver(@NotNull Class clazz) { this.jvmErasure = UtilsKt.toKotlin(clazz); } /** * Constructs a new parameter resolver * * @param clazz Class of the parameter being resolved */ public ParameterResolver(@NotNull KClass clazz) { this.jvmErasure = clazz; } public KClass getJvmErasure() { return jvmErasure; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy