package net.aufdemrand.denizen.utilities.command; import net.aufdemrand.denizen.utilities.command.exceptions.CommandException; import org.bukkit.command.CommandSender; import java.lang.annotation.Annotation; public interface CommandAnnotationProcessor { /** * @return The {@link Annotation} class that this processor will accept. */ Class<? extends Annotation> getAnnotationClass(); /** * @param sender The command sender * @param context The context of the command, including arguments * @param instance The {@link Annotation} instance * @param args The method arguments * @throws CommandException If an exception occurs */ void process(CommandSender sender, CommandContext context, Annotation instance, Object[] args) throws CommandException; }