From ced74bc5d37a220c2ed9d5a7d870aea3dc3d9156 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Mar 2019 11:11:58 -0500 Subject: [PATCH] Support private methods too on local class. we stil inherit public methods as previous --- core/src/main/java/co/aikar/commands/BaseCommand.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/co/aikar/commands/BaseCommand.java b/core/src/main/java/co/aikar/commands/BaseCommand.java index 292710c3..30410e71 100644 --- a/core/src/main/java/co/aikar/commands/BaseCommand.java +++ b/core/src/main/java/co/aikar/commands/BaseCommand.java @@ -48,6 +48,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -311,8 +312,11 @@ public abstract class BaseCommand { final Annotations annotations = manager.getAnnotations(); boolean foundCatchUnknown = false; boolean isParentEmpty = parentSubcommand == null || parentSubcommand.isEmpty(); + Set methods = new LinkedHashSet<>(); + Collections.addAll(methods, this.getClass().getDeclaredMethods()); + Collections.addAll(methods, this.getClass().getMethods()); - for (Method method : this.getClass().getMethods()) { + for (Method method : methods) { method.setAccessible(true); String sublist = null; String sub = getSubcommandValue(method);