From c74ac64e5fd82f4bff169790816e01e778e6c25f Mon Sep 17 00:00:00 2001 From: jmp Date: Thu, 22 Oct 2020 01:05:49 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20optionals=20not=20being=20?= =?UTF-8?q?brig=20executors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ .../commandframework/brigadier/CloudBrigadierManager.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8139892e..99f9fccb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Allow for combined presence flags, such that `-a -b -c` is equivalent to `-abc` - Allow for class annotations as a default for when an annotation is not present on a method. + +### Fixed + - Fix arguments with no required children not being executors (cloud-brigadier) ## [1.0.2] - 2020-10-18 diff --git a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java index cf8b84b6..248ca10c 100644 --- a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java +++ b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java @@ -427,6 +427,9 @@ public final class CloudBrigadierManager { if (forceExecutor || root.isLeaf() || !root.getValue().isRequired()) { argumentBuilder.executes(executor); } + if (root.getChildren().stream().noneMatch(node -> node.getValue().isRequired())) { + argumentBuilder.executes(executor); + } for (final CommandTree.Node> node : root.getChildren()) { argumentBuilder.then(constructCommandNode(forceExecutor, node, permissionChecker, executor, suggestionProvider)); }