Skip to content

Commit 3490b30

Browse files
committed
Push new resolvers and suggestion factories to the beginning to give them priority
1 parent 76deb51 commit 3490b30

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

common/src/main/java/revxrsal/commands/core/BaseAutoCompleter.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ final class BaseAutoCompleter implements AutoCompleter {
2121

2222
private final BaseCommandHandler handler;
2323
final Map<String, SuggestionProvider> suggestionKeys = new HashMap<>();
24-
final List<SuggestionProviderFactory> factories = new ArrayList<>();
24+
final LinkedList<SuggestionProviderFactory> factories = new LinkedList<>();
2525

2626
public BaseAutoCompleter(BaseCommandHandler handler) {
2727
this.handler = handler;
@@ -54,10 +54,10 @@ public BaseAutoCompleter(BaseCommandHandler handler) {
5454
@Override public AutoCompleter registerParameterSuggestions(@NotNull Class<?> parameterType, @NotNull SuggestionProvider provider) {
5555
notNull(parameterType, "parameter type");
5656
notNull(provider, "provider");
57-
factories.add(SuggestionProviderFactory.forType(parameterType, provider));
57+
registerSuggestionFactory(SuggestionProviderFactory.forType(parameterType, provider));
5858
Class<?> wrapped = Primitives.wrap(parameterType);
5959
if (wrapped != parameterType) {
60-
factories.add(SuggestionProviderFactory.forType(wrapped, provider));
60+
registerSuggestionFactory(SuggestionProviderFactory.forType(wrapped, provider));
6161
}
6262
return this;
6363
}
@@ -75,7 +75,7 @@ public BaseAutoCompleter(BaseCommandHandler handler) {
7575

7676
@Override public AutoCompleter registerSuggestionFactory(@NotNull SuggestionProviderFactory factory) {
7777
notNull(factory, "suggestion provider factory cannot be null!");
78-
factories.add(0, factory);
78+
factories.push(factory);
7979
return this;
8080
}
8181

common/src/main/java/revxrsal/commands/core/BaseCommandHandler.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class BaseCommandHandler implements CommandHandler {
4242
protected final Map<CommandPath, BaseCommandCategory> categories = new HashMap<>();
4343
private final BaseCommandDispatcher dispatcher = new BaseCommandDispatcher(this);
4444

45-
final List<ResolverFactory> factories = new ArrayList<>();
45+
final LinkedList<ResolverFactory> factories = new LinkedList<>();
4646
final BaseAutoCompleter autoCompleter = new BaseAutoCompleter(this);
4747
final ClassMap<List<ParameterValidator<Object>>> validators = new ClassMap<>();
4848
final ClassMap<ResponseHandler<?>> responseHandlers = new ClassMap<>();
@@ -215,14 +215,14 @@ public BaseCommandHandler() {
215215
notNull(resolver, "resolver");
216216
if (type.isPrimitive())
217217
registerValueResolver(Primitives.wrap(type), resolver);
218-
factories.add(new ResolverFactory(ValueResolverFactory.forType(type, resolver)));
218+
factories.push(new ResolverFactory(ValueResolverFactory.forType(type, resolver)));
219219
return this;
220220
}
221221

222222
@Override public <T> @NotNull CommandHandler registerContextResolver(@NotNull Class<T> type, @NotNull ContextResolver<T> resolver) {
223223
notNull(type, "type");
224224
notNull(resolver, "resolver");
225-
factories.add(new ResolverFactory(ContextResolverFactory.forType(type, resolver)));
225+
factories.push(new ResolverFactory(ContextResolverFactory.forType(type, resolver)));
226226
return this;
227227
}
228228

@@ -232,13 +232,13 @@ public BaseCommandHandler() {
232232

233233
@Override public @NotNull CommandHandler registerValueResolverFactory(@NotNull ValueResolverFactory factory) {
234234
notNull(factory, "value resolver factory");
235-
factories.add(new ResolverFactory(factory));
235+
factories.push(new ResolverFactory(factory));
236236
return this;
237237
}
238238

239239
@Override public @NotNull CommandHandler registerContextResolverFactory(@NotNull ContextResolverFactory factory) {
240240
notNull(factory, "context resolver factory");
241-
factories.add(new ResolverFactory(factory));
241+
factories.push(new ResolverFactory(factory));
242242
return this;
243243
}
244244

0 commit comments

Comments
 (0)