mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2024-11-22 02:25:41 +01:00
Expose MV's completion and context instances in CommandManager
This commit is contained in:
parent
0cc1676e6c
commit
8a28bcafec
@ -35,7 +35,7 @@ import org.mvplugins.multiverse.core.world.MultiverseWorld;
|
||||
import org.mvplugins.multiverse.core.world.WorldManager;
|
||||
|
||||
@Service
|
||||
class MVCommandCompletions extends PaperCommandCompletions {
|
||||
public class MVCommandCompletions extends PaperCommandCompletions {
|
||||
|
||||
private final MVCommandManager commandManager;
|
||||
private final WorldManager worldManager;
|
||||
@ -77,6 +77,20 @@ class MVCommandCompletions extends PaperCommandCompletions {
|
||||
setDefaultCompletion("mvworlds", LoadedMultiverseWorld.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut to suggest enums values
|
||||
*
|
||||
* @param enumClass The enum class with values
|
||||
* @return A collection of possible string values
|
||||
* @param <T> The enum type
|
||||
*/
|
||||
public <T extends Enum<T>> Collection<String> suggestEnums(Class<T> enumClass) {
|
||||
return EnumSet.allOf(enumClass).stream()
|
||||
.map(Enum::name)
|
||||
.map(String::toLowerCase)
|
||||
.toList();
|
||||
}
|
||||
|
||||
private Collection<String> suggestCommands(BukkitCommandCompletionContext context) {
|
||||
String rootCmdName = context.getConfig();
|
||||
if (rootCmdName == null) {
|
||||
@ -192,11 +206,4 @@ class MVCommandCompletions extends PaperCommandCompletions {
|
||||
return world.getStringPropertyHandle().getSuggestedPropertyValue(propertyName, context.getInput(), action);
|
||||
}).getOrElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
private <T extends Enum<T>> Collection<String> suggestEnums(Class<T> enumClass) {
|
||||
return EnumSet.allOf(enumClass).stream()
|
||||
.map(Enum::name)
|
||||
.map(String::toLowerCase)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ import org.mvplugins.multiverse.core.world.MultiverseWorld;
|
||||
import org.mvplugins.multiverse.core.world.WorldManager;
|
||||
|
||||
@Service
|
||||
class MVCommandContexts extends PaperCommandContexts {
|
||||
public class MVCommandContexts extends PaperCommandContexts {
|
||||
|
||||
private final MVCommandManager mvCommandManager;
|
||||
private final DestinationsProvider destinationsProvider;
|
||||
|
@ -91,11 +91,11 @@ public class MVCommandManager extends PaperCommandManager {
|
||||
* @return A not-null {@link CommandContexts}.
|
||||
*/
|
||||
@Override
|
||||
public synchronized @NotNull CommandContexts<BukkitCommandExecutionContext> getCommandContexts() {
|
||||
public synchronized @NotNull MVCommandContexts getCommandContexts() {
|
||||
if (this.contexts == null) {
|
||||
this.contexts = commandContextsProvider.get();
|
||||
}
|
||||
return this.contexts;
|
||||
return (MVCommandContexts) this.contexts;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,11 +104,11 @@ public class MVCommandManager extends PaperCommandManager {
|
||||
* @return A not-null {@link CommandCompletions}.
|
||||
*/
|
||||
@Override
|
||||
public synchronized @NotNull CommandCompletions<BukkitCommandCompletionContext> getCommandCompletions() {
|
||||
public synchronized @NotNull MVCommandCompletions getCommandCompletions() {
|
||||
if (this.completions == null) {
|
||||
this.completions = commandCompletionsProvider.get();
|
||||
}
|
||||
return this.completions;
|
||||
return (MVCommandCompletions) this.completions;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user