Skip to content

Commit

Permalink
Add ArgParser and ArgFlagParser
Browse files Browse the repository at this point in the history
  • Loading branch information
EverNife committed Mar 20, 2022
1 parent d0e6cfe commit 3862316
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package br.com.finalcraft.evernifecore.commands.finalcmd.annotations;

import br.com.finalcraft.evernifecore.commands.finalcmd.argument.ArgParser;
import br.com.finalcraft.evernifecore.commands.finalcmd.argument.FlagParser;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand All @@ -17,4 +18,16 @@

Class<? extends ArgParser> parser() default ArgParser.class;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER})
public static @interface Flag {

String name();

String context() default "";

Class<? extends FlagParser> parser() default FlagParser.class;

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package br.com.finalcraft.evernifecore.commands.finalcmd.argument;

import br.com.finalcraft.evernifecore.argumento.Argumento;
import br.com.finalcraft.evernifecore.commands.finalcmd.argument.exception.ArgParseException;
import br.com.finalcraft.evernifecore.commands.finalcmd.tab.ITabParser;
import com.google.common.collect.ImmutableList;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public abstract class FlagParser<T extends Object> implements ITabParser {

protected final ArgInfo argInfo;

public FlagParser(ArgInfo argInfo) {
this.argInfo = argInfo;
}

public ArgInfo getArgInfo() {
return argInfo;
}

public abstract T parserArgument(@NotNull CommandSender sender, @NotNull Argumento argumento) throws ArgParseException;

@Override
public @NotNull List<String> tabComplete(Context context) {
return ImmutableList.of();
}
}

0 comments on commit 3862316

Please sign in to comment.