Stabilize and expose suggestions API (#1406)
* Expose suggestions API * Improve javadoc of suggestions api
This commit is contained in:
@@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
package com.velocitypowered.api.command;
|
package com.velocitypowered.api.command;
|
||||||
|
|
||||||
|
import com.mojang.brigadier.suggestion.Suggestions;
|
||||||
import com.velocitypowered.api.event.command.CommandExecuteEvent;
|
import com.velocitypowered.api.event.command.CommandExecuteEvent;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
@@ -116,6 +118,27 @@ public interface CommandManager {
|
|||||||
*/
|
*/
|
||||||
CompletableFuture<Boolean> executeImmediatelyAsync(CommandSource source, String cmdLine);
|
CompletableFuture<Boolean> executeImmediatelyAsync(CommandSource source, String cmdLine);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asynchronously collects suggestions to fill in the given command {@code cmdLine}.
|
||||||
|
* Returns only the raw completion suggestions without tooltips.
|
||||||
|
*
|
||||||
|
* @param source the source to execute the command for
|
||||||
|
* @param cmdLine the partially completed command
|
||||||
|
* @return a {@link CompletableFuture} eventually completed with a {@link List}, possibly empty
|
||||||
|
*/
|
||||||
|
CompletableFuture<List<String>> offerSuggestions(CommandSource source, String cmdLine);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asynchronously collects suggestions to fill in the given command {@code cmdLine}.
|
||||||
|
* Returns the brigadier {@link Suggestions} with tooltips for each result.
|
||||||
|
*
|
||||||
|
* @param source the source to execute the command for
|
||||||
|
* @param cmdLine the partially completed command
|
||||||
|
* @return a {@link CompletableFuture} eventually completed with {@link Suggestions}, possibly
|
||||||
|
* empty
|
||||||
|
*/
|
||||||
|
CompletableFuture<Suggestions> offerBrigadierSuggestions(CommandSource source, String cmdLine);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an immutable collection of the case-insensitive aliases registered
|
* Returns an immutable collection of the case-insensitive aliases registered
|
||||||
* on this manager.
|
* on this manager.
|
||||||
|
@@ -300,27 +300,14 @@ public class VelocityCommandManager implements CommandManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Returns suggestions to fill in the given command.
|
|
||||||
*
|
|
||||||
* @param source the source to execute the command for
|
|
||||||
* @param cmdLine the partially completed command
|
|
||||||
* @return a {@link CompletableFuture} eventually completed with a {@link List}, possibly empty
|
|
||||||
*/
|
|
||||||
public CompletableFuture<List<String>> offerSuggestions(final CommandSource source,
|
public CompletableFuture<List<String>> offerSuggestions(final CommandSource source,
|
||||||
final String cmdLine) {
|
final String cmdLine) {
|
||||||
return offerBrigadierSuggestions(source, cmdLine)
|
return offerBrigadierSuggestions(source, cmdLine)
|
||||||
.thenApply(suggestions -> Lists.transform(suggestions.getList(), Suggestion::getText));
|
.thenApply(suggestions -> Lists.transform(suggestions.getList(), Suggestion::getText));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Returns suggestions to fill in the given command.
|
|
||||||
*
|
|
||||||
* @param source the source to execute the command for
|
|
||||||
* @param cmdLine the partially completed command
|
|
||||||
* @return a {@link CompletableFuture} eventually completed with {@link Suggestions}, possibly
|
|
||||||
* empty
|
|
||||||
*/
|
|
||||||
public CompletableFuture<Suggestions> offerBrigadierSuggestions(
|
public CompletableFuture<Suggestions> offerBrigadierSuggestions(
|
||||||
final CommandSource source, final String cmdLine) {
|
final CommandSource source, final String cmdLine) {
|
||||||
Preconditions.checkNotNull(source, "source");
|
Preconditions.checkNotNull(source, "source");
|
||||||
|
Reference in New Issue
Block a user