Implement flag permissions

This commit is contained in:
Frank van der Heijden 2021-07-23 16:48:55 +02:00 committed by Jason
parent 197b892100
commit 1b7fb2f34c
7 changed files with 91 additions and 10 deletions

View file

@ -88,4 +88,11 @@ public @interface Flag {
*/
@NonNull String description() default "";
/**
* The flag permission
*
* @return Flag permission
*/
@NonNull String permission() default "";
}

View file

@ -30,6 +30,7 @@ import cloud.commandframework.arguments.flags.CommandFlag;
import cloud.commandframework.arguments.parser.ArgumentParser;
import cloud.commandframework.arguments.parser.ParserParameters;
import cloud.commandframework.arguments.parser.ParserRegistry;
import cloud.commandframework.permission.Permission;
import io.leangen.geantyref.TypeToken;
import org.checkerframework.checker.nullness.qual.NonNull;
@ -61,7 +62,8 @@ final class FlagExtractor implements Function<@NonNull Method, Collection<@NonNu
final CommandFlag.Builder<Void> builder = this.commandManager
.flagBuilder(flag.value())
.withDescription(ArgumentDescription.of(flag.description()))
.withAliases(flag.aliases());
.withAliases(flag.aliases())
.withPermission(Permission.of(flag.permission()));
if (parameter.getType().equals(boolean.class)) {
flags.add(builder.build());
} else {