Added class to prevent multiple calls of splitArgs

This commit is contained in:
Aleksei 2020-02-26 13:44:25 -05:00
parent 8a37dbd622
commit 4610506b5a
3 changed files with 34 additions and 10 deletions

View File

@ -109,7 +109,8 @@ public class Guthix implements MessageCreateListener {
return;
}
String cmdString = registry.commandString(content);
RegistryCommand rComm = registry.getCommandInfo(content);
String cmdString = rComm.getCommand();
if (registry.isCommandAlias(cmdString)) {
@ -120,7 +121,7 @@ public class Guthix implements MessageCreateListener {
Message msg = event.getMessage();
TextChannel channel = event.getChannel();
Server server = event.getServer().orElse(null);
String[] cmdArgs = registry.getCmdArgs(content);
String[] cmdArgs = rComm.getArgs();
Command cmd = registry.findCommand(cmdString).orElse(null); // TODO: default command here

View File

@ -73,6 +73,7 @@ class Registry {
if (input.contains(" ")) {
input = removePrefix(input);
String[] splits = input.split(" ");
System.out.println(Arrays.toString(splits));
return cleanSpaces(splits);
} else {
input = removePrefix(input);
@ -86,14 +87,11 @@ class Registry {
return list;
}
String[] getCmdArgs(String input) { // TODO: Make an object to encap these; stop the double call to splitArgs()
List<String> splits = splitArgs(input);
splits.remove(0);
return splits.toArray(new String[0]);
}
RegistryCommand getCommandInfo(String input) {
List<String> args = splitArgs(input);
String command = args.get(0);
args.remove(0);
String commandString(String input) {
// Cleans the string of the prefix and any args, returning only the command
return splitArgs(input).get(0);
return new RegistryCommand(command, args.toArray(new String[0]));
}
}

View File

@ -0,0 +1,25 @@
/*
* Copyright (c) 2020. Aleksei Gryczewski
* All rights reserved.
*/
package dev.salmonllama.fsbot.guthix;
class RegistryCommand {
private String command;
private String[] args;
RegistryCommand(String command, String[] args) {
this.command = command;
this.args = args;
}
String getCommand() {
return command;
}
String[] getArgs() {
return args;
}
}