Final touches on new arguments

This commit is contained in:
broccolai 2020-09-28 16:39:51 +00:00 committed by Alexander Söderberg
parent 5c7d0bda1e
commit e277237db3
3 changed files with 10 additions and 19 deletions

View file

@ -29,6 +29,7 @@ import cloud.commandframework.arguments.parser.ArgumentParser;
import cloud.commandframework.context.CommandContext; import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List; import java.util.List;
import java.util.Queue; import java.util.Queue;
import java.util.UUID; import java.util.UUID;
@ -40,8 +41,8 @@ public final class UUIDArgument<C> extends CommandArgument<C, UUID> {
private UUIDArgument(final boolean required, private UUIDArgument(final boolean required,
@Nonnull final String name, @Nonnull final String name,
@Nonnull final String defaultValue, @Nonnull final String defaultValue,
@Nonnull final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) { @Nullable final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) {
super(required, name, new UUIDParser<>(suggestionsProvider), defaultValue, UUID.class, suggestionsProvider); super(required, name, new UUIDParser<>(), defaultValue, UUID.class, suggestionsProvider);
} }
/** /**
@ -117,12 +118,6 @@ public final class UUIDArgument<C> extends CommandArgument<C, UUID> {
private static final class UUIDParser<C> implements ArgumentParser<C, UUID> { private static final class UUIDParser<C> implements ArgumentParser<C, UUID> {
private final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider;
UUIDParser(@Nonnull final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) {
this.suggestionsProvider = suggestionsProvider;
}
@Nonnull @Nonnull
@Override @Override
public ArgumentParseResult<UUID> parse( public ArgumentParseResult<UUID> parse(
@ -142,13 +137,6 @@ public final class UUIDArgument<C> extends CommandArgument<C, UUID> {
} }
} }
@Nonnull
@Override
public List<String> suggestions(@Nonnull final CommandContext<C> commandContext,
@Nonnull final String input) {
return this.suggestionsProvider.apply(commandContext, input);
}
@Override @Override
public boolean isContextFree() { public boolean isContextFree() {
return true; return true;

View file

@ -32,6 +32,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Queue; import java.util.Queue;
@ -42,7 +43,7 @@ public final class OfflinePlayerArgument<C> extends CommandArgument<C, OfflinePl
private OfflinePlayerArgument(final boolean required, private OfflinePlayerArgument(final boolean required,
@Nonnull final String name, @Nonnull final String name,
@Nonnull final String defaultValue, @Nonnull final String defaultValue,
@Nonnull final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) { @Nullable final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) {
super(required, name, new OfflinePlayerParser<>(), defaultValue, OfflinePlayer.class, suggestionsProvider); super(required, name, new OfflinePlayerParser<>(), defaultValue, OfflinePlayer.class, suggestionsProvider);
} }

View file

@ -31,6 +31,7 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Queue; import java.util.Queue;
@ -38,9 +39,10 @@ import java.util.function.BiFunction;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public final class PlayerArgument<C> extends CommandArgument<C, Player> { public final class PlayerArgument<C> extends CommandArgument<C, Player> {
private PlayerArgument(final boolean required, @Nonnull final String name, private PlayerArgument(final boolean required,
@Nonnull final String defaultValue, @Nonnull final String name,
@Nonnull final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) { @Nonnull final String defaultValue,
@Nullable final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider) {
super(required, name, new PlayerParser<>(), defaultValue, Player.class, suggestionsProvider); super(required, name, new PlayerParser<>(), defaultValue, Player.class, suggestionsProvider);
} }