From 8cc4aa011502d31a935ae7c5449cfc8de5515296 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Sun, 6 Apr 2025 11:50:00 +0800 Subject: [PATCH] Fix instantiate subclass if constructor parameter is the command's type --- core/src/main/java/co/aikar/commands/BaseCommand.java | 2 +- 1 file changed, 1 insertion(+), 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 4f53fb7e..720097d8 100644 --- a/core/src/main/java/co/aikar/commands/BaseCommand.java +++ b/core/src/main/java/co/aikar/commands/BaseCommand.java @@ -287,7 +287,7 @@ public abstract class BaseCommand { declaredConstructor.setAccessible(true); Parameter[] parameters = declaredConstructor.getParameters(); - if (parameters.length == 1) { + if (parameters.length == 1 && parameters[0].getType().isAssignableFrom(this.getClass())) { subScope = (BaseCommand) declaredConstructor.newInstance(this); } else { manager.log(LogLevel.INFO, "Found unusable constructor: " + declaredConstructor.getName() + "(" + Stream.of(parameters).map(p -> p.getType().getSimpleName() + " " + p.getName()).collect(Collectors.joining(", ")) + ")");