From 4447ab451f6835437f481d4413b2292c528cb294 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 31 Aug 2021 13:17:02 -0700 Subject: [PATCH] Add `@since` tags and typed default to KeyedWorldArgument --- .../paper/argument/KeyedWorldArgument.java | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/argument/KeyedWorldArgument.java b/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/argument/KeyedWorldArgument.java index 87ecab51..25ef4642 100644 --- a/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/argument/KeyedWorldArgument.java +++ b/cloud-minecraft/cloud-paper/src/main/java/cloud/commandframework/paper/argument/KeyedWorldArgument.java @@ -45,10 +45,11 @@ import java.util.function.BiFunction; * Argument type that parses Bukkit {@link World worlds} from a {@link NamespacedKey}. * * @param Command sender type + * @since 1.6.0 */ -public class KeyedWorldArgument extends CommandArgument { +public final class KeyedWorldArgument extends CommandArgument { - protected KeyedWorldArgument( + KeyedWorldArgument( final boolean required, final @NonNull String name, final @NonNull String defaultValue, @@ -64,6 +65,7 @@ public class KeyedWorldArgument extends CommandArgument { * @param name Name of the argument * @param Command sender type * @return Created builder + * @since 1.6.0 */ public static KeyedWorldArgument.@NonNull Builder builder(final @NonNull String name) { return new KeyedWorldArgument.Builder<>(name); @@ -75,6 +77,7 @@ public class KeyedWorldArgument extends CommandArgument { * @param name Argument name * @param Command sender type * @return Created argument + * @since 1.6.0 */ public static @NonNull KeyedWorldArgument of(final @NonNull String name) { return KeyedWorldArgument.builder(name).asRequired().build(); @@ -86,6 +89,7 @@ public class KeyedWorldArgument extends CommandArgument { * @param name Argument name * @param Command sender type * @return Created argument + * @since 1.6.0 */ public static @NonNull KeyedWorldArgument optional(final @NonNull String name) { return KeyedWorldArgument.builder(name).asOptional().build(); @@ -98,20 +102,45 @@ public class KeyedWorldArgument extends CommandArgument { * @param defaultValue Default value * @param Command sender type * @return Created argument + * @since 1.6.0 */ public static @NonNull KeyedWorldArgument optional( final @NonNull String name, - final @NonNull String defaultValue + final @NonNull NamespacedKey defaultValue ) { return KeyedWorldArgument.builder(name).asOptionalWithDefault(defaultValue).build(); } + /** + * Builder for {@link KeyedWorldArgument}. + * + * @param sender type + * @since 1.6.0 + */ public static final class Builder extends CommandArgument.TypedBuilder> { private Builder(final @NonNull String name) { super(World.class, name); } + /** + * Sets the command argument to be optional, with the specified default value. + * + * @param defaultValue default value + * @return this builder + * @see CommandArgument.Builder#asOptionalWithDefault(String) + * @since 1.6.0 + */ + public @NonNull Builder asOptionalWithDefault(final @NonNull NamespacedKey defaultValue) { + return this.asOptionalWithDefault(defaultValue.toString()); + } + + /** + * Build a new {@link KeyedWorldArgument}. + * + * @return constructed argument + * @since 1.6.0 + */ @Override public @NonNull KeyedWorldArgument build() { return new KeyedWorldArgument<>( @@ -125,6 +154,12 @@ public class KeyedWorldArgument extends CommandArgument { } + /** + * Parser for {@link World worlds} from their {@link NamespacedKey}. + * + * @param sender type + * @since 1.6.0 + */ public static final class Parser implements ArgumentParser { @Override @@ -171,4 +206,5 @@ public class KeyedWorldArgument extends CommandArgument { } } + }