|
|
@ -95,48 +95,41 @@ class CommandDispatcher
|
|
|
|
Object[] parsedArray = null;
|
|
|
|
Object[] parsedArray = null;
|
|
|
|
|
|
|
|
|
|
|
|
// Conditions
|
|
|
|
// Conditions
|
|
|
|
try
|
|
|
|
if(commandList.containsKey(fullCommand))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(commandList.containsKey(fullCommand))
|
|
|
|
logger.info("Command invoked (" + event.getMessage().getAuthor().getName() + "#" + event.getMessage().getAuthor().getDiscriminator() + "): " + fullCommand);
|
|
|
|
{
|
|
|
|
|
|
|
|
logger.info("Command invoked (" + event.getMessage().getAuthor().getName() + "#" + event.getMessage().getAuthor().getDiscriminator() + "): " + fullCommand);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InvokableMethod foundMethod = commandList.get(fullCommand);
|
|
|
|
InvokableMethod foundMethod = commandList.get(fullCommand);
|
|
|
|
parsedArray = new Object[foundMethod.getMethod().getParameterCount()];
|
|
|
|
parsedArray = new Object[foundMethod.getMethod().getParameterCount()];
|
|
|
|
parsedArray[0] = event;
|
|
|
|
parsedArray[0] = event;
|
|
|
|
|
|
|
|
|
|
|
|
// To be redone, maybe ?
|
|
|
|
// To be redone, maybe ?
|
|
|
|
Boolean canOverrideRun = PermissionsModule.getInstance().canRun(event.getMessage().getGuild(), event.getMessage().getAuthor(), fullCommand);
|
|
|
|
Boolean canOverrideRun = PermissionsModule.getInstance().canRun(event.getMessage().getGuild(), event.getMessage().getAuthor(), fullCommand);
|
|
|
|
if(!foundMethod.getMethod().getAnnotation(Command.class).permission().eval(event))
|
|
|
|
if(!foundMethod.getMethod().getAnnotation(Command.class).permission().eval(event))
|
|
|
|
commandAnswer = "Permission denied.";
|
|
|
|
commandAnswer = "Permission denied.";
|
|
|
|
if(canOverrideRun != null)
|
|
|
|
if(canOverrideRun != null)
|
|
|
|
commandAnswer = canOverrideRun ? null : "Permission denied.";
|
|
|
|
commandAnswer = canOverrideRun ? null : "Permission denied.";
|
|
|
|
|
|
|
|
|
|
|
|
if(commandAnswer == null)
|
|
|
|
if(commandAnswer == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if(foundMethod.getMethod().getParameterCount()-1 == args.size())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(foundMethod.getMethod().getParameterCount()-1 == args.size())
|
|
|
|
for(int i=1; i < foundMethod.getMethod().getParameterCount(); i++)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
for(int i=1; i < foundMethod.getMethod().getParameterCount(); i++)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
parsedArray[i] = parse(foundMethod.getMethod().getParameterTypes()[i], args.get(i-1));
|
|
|
|
{
|
|
|
|
} catch (IllegalArgumentException e)
|
|
|
|
parsedArray[i] = parse(foundMethod.getMethod().getParameterTypes()[i], args.get(i-1));
|
|
|
|
{
|
|
|
|
} catch (IllegalArgumentException e)
|
|
|
|
commandAnswer = "Failed to parse arguments, are they correct ? Call `/help " + fullCommand + "` for help.";
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
commandAnswer = "Failed to parse arguments, are they correct ? " + commandList.get("internal:help").invoke(event, fullCommand);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
commandAnswer = "Invalid arguments. " + commandList.get("internal:help").invoke(event, fullCommand);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
commandAnswer = "Invalid arguments. Call `/help " + fullCommand + "` for help.";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
|
|
|
|
commandAnswer = "Unknown command";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (InvocationTargetException | IllegalAccessException e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
logger.severe("Couldn't get help: " + e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
commandAnswer = "Unknown command. Call `/list 1` to see all available commands.";
|
|
|
|
|
|
|
|
|
|
|
|
// Run command
|
|
|
|
// Run command
|
|
|
|
if(commandAnswer == null)
|
|
|
|
if(commandAnswer == null)
|
|
|
|