Optimized command arguments parsing
This commit is contained in:
1 parent
98d2f5d411
commit
65143eb003
25 files changed
+109
-80
No files matched your search
@@ -1,14 +1,7 @@
|
||||
package netneutrality.command;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class AbstractCommand implements ICommand {
|
||||
|
||||
public AbstractCommand() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return if the command needs administrator privilege
|
||||
*/
|
||||
@@ -39,22 +32,4 @@ public abstract class AbstractCommand implements ICommand {
|
||||
|
||||
public abstract CommandType getType();
|
||||
|
||||
|
||||
public int countArgs(String command) {
|
||||
if (command.isEmpty())
|
||||
return 0;
|
||||
|
||||
List<String> args = Arrays.asList(command.split(" "));
|
||||
return args.size();
|
||||
}
|
||||
|
||||
public String parseArgs(String command, int arg) {
|
||||
if (command.isEmpty())
|
||||
return "";
|
||||
|
||||
List<String> args = Arrays.asList(command.split(" "));
|
||||
return args.get(arg);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -12,5 +12,5 @@ public interface ICommand {
|
||||
/**
|
||||
* @param args the arguments to the command
|
||||
*/
|
||||
String execute(MessageReceivedEvent event, String args);
|
||||
String execute(MessageReceivedEvent event, String[] args);
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public class HelpCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
sendHelp(CommandManager.commands, CommandManager.commandsAlias, event.getAuthor(), event.getChannel());
|
||||
|
||||
return null;
|
||||
|
||||
@@ -9,8 +9,8 @@ import netneutrality.command.Visibility;
|
||||
public class PingCommand extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
if (countArgs(args) == 0)
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
if (args.length == 0)
|
||||
event.getChannel().sendMessage("Pong! [" + MusicBot.getJDA().getGatewayPing() + " ms]").queue();
|
||||
|
||||
return null;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class ConfigureCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -30,11 +30,11 @@ public class BitcoinPriceCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) throws JSONException, ArrayIndexOutOfBoundsException {
|
||||
|
||||
if (countArgs(args) == 1) {
|
||||
if (Currency.isCurrency(args.toUpperCase()))
|
||||
this.currency = args.toUpperCase();
|
||||
public String execute(MessageReceivedEvent event, String[] args) throws JSONException, ArrayIndexOutOfBoundsException {
|
||||
|
||||
if (args.length == 1) {
|
||||
if (Currency.isCurrency(args[0].toUpperCase()))
|
||||
this.currency = args[0].toUpperCase();
|
||||
else {
|
||||
event.getTextChannel().sendMessage("Please enter a valid currency").queue();
|
||||
return null;
|
||||
|
||||
@@ -27,11 +27,11 @@ public class EthereumPriceCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) throws JSONException, ArrayIndexOutOfBoundsException {
|
||||
public String execute(MessageReceivedEvent event, String[] args) throws JSONException, ArrayIndexOutOfBoundsException {
|
||||
|
||||
if (countArgs(args) == 1) {
|
||||
if (Currency.isCurrency(args.toUpperCase()))
|
||||
this.currency = args.toUpperCase();
|
||||
if (args.length == 1) {
|
||||
if (Currency.isCurrency(args[0].toUpperCase()))
|
||||
this.currency = args[0].toUpperCase();
|
||||
else {
|
||||
event.getTextChannel().sendMessage("Please enter a valid currency").queue();
|
||||
return null;
|
||||
|
||||
@@ -27,11 +27,11 @@ public class LitecoinPriceCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) throws ArrayIndexOutOfBoundsException, JSONException {
|
||||
public String execute(MessageReceivedEvent event, String[] args) throws ArrayIndexOutOfBoundsException, JSONException {
|
||||
|
||||
if (countArgs(args) == 1) {
|
||||
if (Currency.isCurrency(args.toUpperCase()))
|
||||
this.currency = args;
|
||||
if (args.length == 1) {
|
||||
if (Currency.isCurrency(args[0].toUpperCase()))
|
||||
this.currency = args[0].toUpperCase();
|
||||
else {
|
||||
event.getTextChannel().sendMessage("Please enter a valid currency").queue();
|
||||
return null;
|
||||
|
||||
@@ -51,12 +51,12 @@ public class BlacklistCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
|
||||
if (countArgs(args) > 0 && countArgs(args) < 3) {
|
||||
String word = (countArgs(args) == 2 ? parseArgs(args, 1) : "");
|
||||
if (args.length > 0 && args.length < 3) {
|
||||
String word = (args.length == 2 ? args[1] : "");
|
||||
|
||||
switch (parseArgs(args, 0)) {
|
||||
switch (args[0]) {
|
||||
|
||||
case "get":
|
||||
event.getTextChannel().sendMessage("Retrieving list, please wait...").queue(t -> {
|
||||
|
||||
@@ -49,9 +49,9 @@ public class PruneCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
if (countArgs(args) == 1)
|
||||
ChannelFunction.bulkDeleteMessage(event.getTextChannel(), Integer.parseInt(args));
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
if (args.length == 1)
|
||||
ChannelFunction.bulkDeleteMessage(event.getTextChannel(), Integer.parseInt(args[0]));
|
||||
else
|
||||
event.getTextChannel().sendMessage("Failed to delete messages!").queue();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class BitconnectCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class DeleteQueueCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class JoinCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
if (member.getVoiceState().inVoiceChannel()) {
|
||||
|
||||
@@ -56,7 +56,7 @@ public class LeaveCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
VoiceChannel vChannel = member.getVoiceState().getChannel();
|
||||
|
||||
@@ -56,7 +56,7 @@ public class PlayCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
@@ -67,14 +67,14 @@ public class PlayCommand extends AbstractCommand {
|
||||
if (player.isConnectedTo(vChannel)) {
|
||||
event.getMessage().delete().queue();
|
||||
|
||||
player.play(args, event.getTextChannel(), event.getMember(), false);
|
||||
player.play(args[0], event.getTextChannel(), event.getMember(), false);
|
||||
|
||||
} else
|
||||
event.getTextChannel().sendMessage("Not in your voice channel").queue();
|
||||
} else {
|
||||
player.connect(vChannel);
|
||||
event.getMessage().delete().queue();
|
||||
player.play(args, event.getTextChannel(), event.getMember(), false);
|
||||
player.play(args[0], event.getTextChannel(), event.getMember(), false);
|
||||
}
|
||||
} else
|
||||
event.getTextChannel().sendMessage("You are not in a voice channel").queue();
|
||||
|
||||
@@ -56,7 +56,7 @@ public class SkipCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class StopCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class VolumeCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
Member member = event.getMember();
|
||||
MusicManager player = MusicManager.get(event.getGuild());
|
||||
|
||||
@@ -67,7 +67,7 @@ public class VolumeCommand extends AbstractCommand {
|
||||
if (player.isConnectedTo(vChannel)) {
|
||||
|
||||
try {
|
||||
int volume = Integer.parseInt(args.split(" ")[0]);
|
||||
int volume = Integer.parseInt(args[0]);
|
||||
player.setVolume(volume);
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package netneutrality.command.music;/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* https://xtremcommunity.com/
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
import netneutrality.command.CommandType;
|
||||
import netneutrality.command.Visibility;
|
||||
|
||||
public class VoteSkipCommand extends AbstractCommand {
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getAlias() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Visibility getVisibility() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandType getType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -61,7 +61,7 @@ public class DatabaseCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
//TODO: Clean up the mess
|
||||
|
||||
event.getMessage().delete().queue();
|
||||
@@ -69,26 +69,26 @@ public class DatabaseCommand extends AbstractCommand {
|
||||
if (!event.getAuthor().getDiscriminator().equals(Settings.getInstance().getCreator().getDiscriminator()))
|
||||
return null;
|
||||
|
||||
if (countArgs(args) > 0) {
|
||||
switch (parseArgs(args, 0)) {
|
||||
if (args.length > 0) {
|
||||
switch (args[0]) {
|
||||
|
||||
case "message":
|
||||
|
||||
if (countArgs(args) > 1) {
|
||||
if (args.length > 1) {
|
||||
|
||||
MMessage message = ((DBMessage) DBController.get("message")).getMessage(parseArgs(args, 1));
|
||||
MMessage message = ((DBMessage) DBController.get("message")).getMessage(args[1]);
|
||||
if (message != null) {
|
||||
EmbedBuilder embed = new EmbedBuilder();
|
||||
embed.setColor(Color.BLUE);
|
||||
embed.setTimestamp(
|
||||
DateTimeFormatter.ofPattern(Settings.getInstance().DATETIMEFORMAT).parse(message.getDateSent()));
|
||||
embed.setFooter("Guild : " + message.getServerName() + " | ID : " + message.getMessageId(), null);
|
||||
embed.setFooter("Guild : " + message.getServerId() + " | ID : " + message.getMessageId(), null);
|
||||
embed.setDescription(
|
||||
"Message from " + message.getSender() + " on the channel " + message.getChannelName());
|
||||
embed.addField("Message: ", "" + message.getMessage(), false);
|
||||
event.getTextChannel().sendMessage(embed.build()).queue();
|
||||
} else {
|
||||
User user = event.getJDA().getUserById(parseArgs(args, 1));
|
||||
User user = event.getJDA().getUserById(args[1]);
|
||||
if (user != null) {
|
||||
ArrayList<MMessage> messages = ((DBMessage) DBController.get("message"))
|
||||
.getMessagesFromUser(user.getName(), event.getGuild().getName(), 10);
|
||||
|
||||
@@ -60,7 +60,7 @@ public class EvalMethod extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
|
||||
if (event.getAuthor().getId().equals(Settings.getInstance().getCreator().getId())) {
|
||||
ScriptEngine se = new ScriptEngineManager().getEngineByName("Nashorn");
|
||||
|
||||
@@ -52,7 +52,7 @@ public class LoggingCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
|
||||
|
||||
return null;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class SellyCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
|
||||
String sellyEmail = ((DBSettings) DBController.get("settings")).getSettingsByKey("selly_email");
|
||||
String sellyKey = ((DBSettings) DBController.get("settings")).getSettingsByKey("");
|
||||
@@ -70,9 +70,9 @@ public class SellyCommand extends AbstractCommand {
|
||||
|
||||
System.out.println(selly.getProducts().toString());
|
||||
|
||||
if (countArgs(args) > 1) {
|
||||
String email = parseArgs(args, 0);
|
||||
String id = parseArgs(args, 1);
|
||||
if (args.length > 1) {
|
||||
String email = args[0];
|
||||
String id = args[1];
|
||||
|
||||
if (orders.containsKey(id)) {
|
||||
MSellyOrder order = orders.get(id);
|
||||
|
||||
@@ -48,7 +48,7 @@ public class ShutdownCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
event.getJDA().shutdown();
|
||||
System.exit(0);
|
||||
return null;
|
||||
|
||||
@@ -15,10 +15,6 @@ import netneutrality.utils.Settings;
|
||||
|
||||
public class TestCommand extends AbstractCommand {
|
||||
|
||||
public TestCommand() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
return true;
|
||||
@@ -60,7 +56,7 @@ public class TestCommand extends AbstractCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
public String execute(MessageReceivedEvent event, String[] args) {
|
||||
if (event.getAuthor().getDiscriminator().equals(Settings.getInstance().getCreator().getDiscriminator())) {
|
||||
MessageFunction.isStartingWithMention(event.getMessage());
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user