CommandRegistration should return same options

- Cache created CommandOption(s) to return same instance.
- Backport #648
- Fixes #650
This commit is contained in:
Janne Valkealahti
2023-01-28 17:13:29 +00:00
parent 1c4608fb89
commit 88df6cc7b4
2 changed files with 23 additions and 1 deletions

View File

@@ -1161,6 +1161,7 @@ public interface CommandRegistration {
private boolean hidden;
private String description;
private Supplier<Availability> availability;
private List<CommandOption> options;
private List<DefaultOptionSpec> optionSpecs;
private DefaultTargetSpec targetSpec;
private List<DefaultAliasSpec> aliasSpecs;
@@ -1218,7 +1219,10 @@ public interface CommandRegistration {
@Override
public List<CommandOption> getOptions() {
List<CommandOption> options = optionSpecs.stream()
if (options != null) {
return options;
}
options = optionSpecs.stream()
.map(o -> {
String[] longNames = o.getLongNames();
Function<String, String> modifier = o.getOptionNameModifier();