Added class to prevent multiple calls of splitArgs
This commit is contained in:
parent
8a37dbd622
commit
4610506b5a
@ -109,7 +109,8 @@ public class Guthix implements MessageCreateListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String cmdString = registry.commandString(content);
|
RegistryCommand rComm = registry.getCommandInfo(content);
|
||||||
|
String cmdString = rComm.getCommand();
|
||||||
|
|
||||||
if (registry.isCommandAlias(cmdString)) {
|
if (registry.isCommandAlias(cmdString)) {
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ public class Guthix implements MessageCreateListener {
|
|||||||
Message msg = event.getMessage();
|
Message msg = event.getMessage();
|
||||||
TextChannel channel = event.getChannel();
|
TextChannel channel = event.getChannel();
|
||||||
Server server = event.getServer().orElse(null);
|
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
|
Command cmd = registry.findCommand(cmdString).orElse(null); // TODO: default command here
|
||||||
|
|
||||||
|
@ -73,6 +73,7 @@ class Registry {
|
|||||||
if (input.contains(" ")) {
|
if (input.contains(" ")) {
|
||||||
input = removePrefix(input);
|
input = removePrefix(input);
|
||||||
String[] splits = input.split(" ");
|
String[] splits = input.split(" ");
|
||||||
|
System.out.println(Arrays.toString(splits));
|
||||||
return cleanSpaces(splits);
|
return cleanSpaces(splits);
|
||||||
} else {
|
} else {
|
||||||
input = removePrefix(input);
|
input = removePrefix(input);
|
||||||
@ -86,14 +87,11 @@ class Registry {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] getCmdArgs(String input) { // TODO: Make an object to encap these; stop the double call to splitArgs()
|
RegistryCommand getCommandInfo(String input) {
|
||||||
List<String> splits = splitArgs(input);
|
List<String> args = splitArgs(input);
|
||||||
splits.remove(0);
|
String command = args.get(0);
|
||||||
return splits.toArray(new String[0]);
|
args.remove(0);
|
||||||
}
|
|
||||||
|
|
||||||
String commandString(String input) {
|
return new RegistryCommand(command, args.toArray(new String[0]));
|
||||||
// Cleans the string of the prefix and any args, returning only the command
|
|
||||||
return splitArgs(input).get(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user