package cc.fascinated.bat.common.command; import net.dv8tion.jda.api.Permission; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Annotated at the top of a class to define * the default values for a {@link BatCommand}. * * @author Fascinated (fascinated7) */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface CommandInfo { /** * The name of the command * * @return the name of the command */ String name(); /** * The description of the command * * @return the description of the command */ String description() default "No description provided."; /** * If the command is guild only * * @return if the command is guild only */ boolean guildOnly() default true; /** * If the command can be user installed * * @return if the command is user installable */ boolean userInstall() default false; /** * If the command can be executed with a prefix * * @return if the command can be executed with a prefix */ boolean prefixAllowed() default false; /** * The required permissions for the command * * @return the required permissions for the command */ Permission[] requiredPermissions() default {}; /** * The category of the command * * @return the category of the command */ Category category() default Category.GENERAL; /** * If the command is bot owner only * * @return if the command is bot owner only */ boolean botOwnerOnly() default false; }