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(", ")) + ")");