Dieser Commit ist enthalten in:
Ursprung
6e6d34905a
Commit
c4a8ae4c9f
@ -23,6 +23,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.lang.reflect.Array;
|
import java.lang.reflect.Array;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -46,6 +46,11 @@ public class SubCommand<T> {
|
|||||||
SubCommand(AbstractSWCommand<T> abstractSWCommand, Method method, String[] subCommand, Map<String, AbstractTypeMapper<T, ?>> localTypeMapper, Map<String, AbstractValidator<T, ?>> localValidator, boolean help, String[] description, boolean noTabComplete) {
|
SubCommand(AbstractSWCommand<T> abstractSWCommand, Method method, String[] subCommand, Map<String, AbstractTypeMapper<T, ?>> localTypeMapper, Map<String, AbstractValidator<T, ?>> localValidator, boolean help, String[] description, boolean noTabComplete) {
|
||||||
this.abstractSWCommand = abstractSWCommand;
|
this.abstractSWCommand = abstractSWCommand;
|
||||||
this.method = method;
|
this.method = method;
|
||||||
|
try {
|
||||||
|
this.method.setAccessible(true);
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
throw new SecurityException(e.getMessage(), e);
|
||||||
|
}
|
||||||
this.subCommand = subCommand;
|
this.subCommand = subCommand;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.noTabComplete = noTabComplete;
|
this.noTabComplete = noTabComplete;
|
||||||
@ -78,7 +83,6 @@ public class SubCommand<T> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(abstractSWCommand, senderFunction.apply(sender));
|
method.invoke(abstractSWCommand, senderFunction.apply(sender));
|
||||||
} else {
|
} else {
|
||||||
List<Object> objects = new ArrayList<>();
|
List<Object> objects = new ArrayList<>();
|
||||||
@ -91,7 +95,6 @@ public class SubCommand<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
objects.add(0, senderFunction.apply(sender));
|
objects.add(0, senderFunction.apply(sender));
|
||||||
method.setAccessible(true);
|
|
||||||
method.invoke(abstractSWCommand, objects.toArray());
|
method.invoke(abstractSWCommand, objects.toArray());
|
||||||
}
|
}
|
||||||
} catch (CommandNoHelpException e) {
|
} catch (CommandNoHelpException e) {
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
package de.steamwar.command;
|
package de.steamwar.command;
|
||||||
|
|
||||||
|
import de.steamwar.command.AbstractSWCommand.Register;
|
||||||
import de.steamwar.command.dto.ExecutionIdentifier;
|
import de.steamwar.command.dto.ExecutionIdentifier;
|
||||||
import de.steamwar.command.dto.TestSWCommand;
|
import de.steamwar.command.dto.TestSWCommand;
|
||||||
|
|
||||||
@ -28,6 +29,11 @@ public class SimpleCommand extends TestSWCommand {
|
|||||||
super("simple");
|
super("simple");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Register(help = true)
|
||||||
|
public void test(String s, String... varargs) {
|
||||||
|
throw new ExecutionIdentifier("RunSimple with Varargs");
|
||||||
|
}
|
||||||
|
|
||||||
@Register
|
@Register
|
||||||
public void simple(String s) {
|
public void simple(String s) {
|
||||||
throw new ExecutionIdentifier("RunSimple with noArgs");
|
throw new ExecutionIdentifier("RunSimple with noArgs");
|
||||||
|
@ -39,6 +39,16 @@ public class SimpleCommandTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testVarArgs() {
|
||||||
|
SimpleCommand cmd = new SimpleCommand();
|
||||||
|
try {
|
||||||
|
cmd.execute("test", "", new String[] {"a", "b", "c"});
|
||||||
|
} catch (Exception e) {
|
||||||
|
assertCMDFramework(e, ExecutionIdentifier.class, "RunSimple with Varargs");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSimpleParsingNoResult() {
|
public void testSimpleParsingNoResult() {
|
||||||
SimpleCommand cmd = new SimpleCommand();
|
SimpleCommand cmd = new SimpleCommand();
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren