diff --git a/src/main/java/netneutrality/command/AbstractCommand.java b/src/main/java/netneutrality/command/AbstractCommand.java index 2ffb9e9..cb3592a 100644 --- a/src/main/java/netneutrality/command/AbstractCommand.java +++ b/src/main/java/netneutrality/command/AbstractCommand.java @@ -35,6 +35,8 @@ public abstract class AbstractCommand { public abstract String getUsage(); + public abstract String getDescription(); + public abstract Visibility getVisibility(); /** @@ -59,4 +61,6 @@ public abstract class AbstractCommand { List args = Arrays.asList(command.split(" ")); return args.get(arg); } + + } diff --git a/src/main/java/netneutrality/command/basic/HelpCommand.java b/src/main/java/netneutrality/command/basic/HelpCommand.java index cc2c340..d0cbe00 100644 --- a/src/main/java/netneutrality/command/basic/HelpCommand.java +++ b/src/main/java/netneutrality/command/basic/HelpCommand.java @@ -7,70 +7,92 @@ import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import netneutrality.command.AbstractCommand; +import netneutrality.command.CommandManager; import netneutrality.command.Visibility; import netneutrality.utils.Settings; import java.awt.*; import java.util.HashMap; +import java.util.SortedSet; +import java.util.TreeSet; public class HelpCommand extends AbstractCommand { - - public HelpCommand() { - - } - @Override - public String execute(MessageReceivedEvent event, String args) { - return null; - } + public HelpCommand() { - public void sendHelp(HashMap commands, HashMap alias, User user, MessageChannel channel) { - StringBuilder help = new StringBuilder(); + } - for (AbstractCommand command : commands.values()) { - if (command.getUsage() != null) - help.append(Settings.PREFIX).append(command.getCommand()).append(" (: ").append(command.getUsage()).append("\n"); - } + @Override + public String execute(MessageReceivedEvent event, String args) { + sendHelp(CommandManager.commands, CommandManager.commandsAlias, event.getAuthor(), event.getChannel()); - EmbedBuilder embed = new EmbedBuilder(); - embed.setColor(Color.green); - embed.addField("Commands for Net Neutrality", help.toString(), false); + return null; + } - if (channel instanceof TextChannel) - channel.sendMessage(new MessageBuilder().append(user).append(" help has been sent your way!").build()).queue(); + @Override + public boolean needAdmin() { + return false; + } - user.openPrivateChannel().queue(t -> t.sendMessage(embed.build()).queue()); - } + @Override + public boolean isEnabled() { + return true; + } - @Override - public boolean needAdmin() { - return false; - } + @Override + public String getCommand() { + return "help"; + } - @Override - public boolean isEnabled() { - return true; - } + @Override + public String[] getAlias() { + return new String[0]; + } - @Override - public String getCommand() { - return "help"; - } + @Override + public String getUsage() { + return null; + } - @Override - public String[] getAlias() { - return new String[0]; - } + @Override + public String getDescription() { + return "Get every command with its usage"; + } - @Override - public String getUsage() { - return "Get every command with its usage"; - } - - @Override - public Visibility getVisibility() { - return Visibility.BOTH; - } + @Override + public Visibility getVisibility() { + return Visibility.BOTH; + } + public void sendHelp(HashMap commands, HashMap alias, User user, MessageChannel channel) { + StringBuilder help = new StringBuilder(); + + SortedSet keys = new TreeSet<>(commands.keySet()); + for (String key : keys) { + AbstractCommand command = commands.get(key); + + if (command.isEnabled()) { + help.append(Settings.PREFIX).append(command.getCommand()); + if (command.getUsage() != null) + help.append(" ").append(command.getUsage()); + + if (command.getDescription() != null) + help.append(": ").append(command.getDescription()); + + help.append("\n"); + } + + + } + + EmbedBuilder embed = new EmbedBuilder(); + embed.setColor(Color.green); + embed.addField("Commands for Net Neutrality", help.toString(), false); + + if (channel instanceof TextChannel) + channel.sendMessage(new MessageBuilder().append(user).append(" help has been sent your way!").build()).queue(); + + user.openPrivateChannel().queue(t -> t.sendMessage(embed.build()).queue()); + } } diff --git a/src/main/java/netneutrality/command/basic/PingCommand.java b/src/main/java/netneutrality/command/basic/PingCommand.java index 6f6a9ea..831c845 100644 --- a/src/main/java/netneutrality/command/basic/PingCommand.java +++ b/src/main/java/netneutrality/command/basic/PingCommand.java @@ -41,6 +41,11 @@ public class PingCommand extends AbstractCommand { @Override public String getUsage() { + return null; + } + + @Override + public String getDescription() { return "Pong!"; } diff --git a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java index 3d1ea18..46d0331 100644 --- a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java @@ -88,6 +88,11 @@ public class BitcoinPriceCommand extends AbstractCommand { @Override public String getUsage() { + return null; + } + + @Override + public String getDescription() { return "Get the bitcoin price"; } diff --git a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java index 66cc77a..45fda37 100644 --- a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java @@ -80,6 +80,11 @@ public class EthereumPriceCommand extends AbstractCommand { @Override public String getUsage() { + return null; + } + + @Override + public String getDescription() { return "Get the ethereum price"; } diff --git a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java index 34cda87..674b612 100644 --- a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java @@ -80,6 +80,11 @@ public class LitecoinPriceCommand extends AbstractCommand { @Override public String getUsage() { + return null; + } + + @Override + public String getDescription() { return "Get the litecoin price"; } diff --git a/src/main/java/netneutrality/command/message/BlacklistCommand.java b/src/main/java/netneutrality/command/message/BlacklistCommand.java index 6f65dca..82879df 100644 --- a/src/main/java/netneutrality/command/message/BlacklistCommand.java +++ b/src/main/java/netneutrality/command/message/BlacklistCommand.java @@ -1,12 +1,15 @@ package netneutrality.command.message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import netneutrality.MusicBot; import netneutrality.command.AbstractCommand; import netneutrality.command.Visibility; import netneutrality.db.DBController; import netneutrality.db.controllers.DBBlacklist; import netneutrality.db.models.MBlacklist; +import java.util.ArrayList; + public class BlacklistCommand extends AbstractCommand { @Override @@ -34,6 +37,11 @@ public class BlacklistCommand extends AbstractCommand { return "Manages the blacklist of your server."; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; @@ -50,8 +58,6 @@ public class BlacklistCommand extends AbstractCommand { case "get": event.getTextChannel().sendMessage("Retrieving list, please wait...").queue(t -> { - - try { StringBuilder sb = new StringBuilder(); ((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(event.getGuild().getId(), mBlacklists -> { for (MBlacklist bl : mBlacklists) { @@ -61,10 +67,12 @@ public class BlacklistCommand extends AbstractCommand { t.editMessage("List of blacklisted words for this server [" + event.getGuild().getName() + "] :\n" + (mBlacklists.isEmpty() ? "No word found" : sb.toString())).queue(); }); - } catch (RuntimeException e) { - e.printStackTrace(); - } - +// ArrayList mBlacklists = ((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(event.getGuild().getId()); +// for (MBlacklist bl : mBlacklists) { +// sb.append(bl.getWord()).append(" -> ").append(bl.isEnabled() ? "enabled" : "disabled").append("\n"); +// } +// +// t.editMessage("List of blacklisted words for this server [" + event.getGuild().getName() + "] :\n" + (mBlacklists.isEmpty() ? "No word found" : sb.toString())).queue(); }); diff --git a/src/main/java/netneutrality/command/message/PruneCommand.java b/src/main/java/netneutrality/command/message/PruneCommand.java index e09f1cc..6607323 100644 --- a/src/main/java/netneutrality/command/message/PruneCommand.java +++ b/src/main/java/netneutrality/command/message/PruneCommand.java @@ -32,6 +32,11 @@ public class PruneCommand extends AbstractCommand { return "Prune n messages from the channel you are currently on"; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/BitconnectCommand.java b/src/main/java/netneutrality/command/music/BitconnectCommand.java index 11710ee..745717e 100644 --- a/src/main/java/netneutrality/command/music/BitconnectCommand.java +++ b/src/main/java/netneutrality/command/music/BitconnectCommand.java @@ -39,6 +39,11 @@ public class BitconnectCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/DeleteQueueCommand.java b/src/main/java/netneutrality/command/music/DeleteQueueCommand.java index 2371432..75c363e 100644 --- a/src/main/java/netneutrality/command/music/DeleteQueueCommand.java +++ b/src/main/java/netneutrality/command/music/DeleteQueueCommand.java @@ -39,6 +39,11 @@ public class DeleteQueueCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/JoinCommand.java b/src/main/java/netneutrality/command/music/JoinCommand.java index 1abdf57..026c977 100644 --- a/src/main/java/netneutrality/command/music/JoinCommand.java +++ b/src/main/java/netneutrality/command/music/JoinCommand.java @@ -39,6 +39,11 @@ public class JoinCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/LeaveCommand.java b/src/main/java/netneutrality/command/music/LeaveCommand.java index eae40f2..b331631 100644 --- a/src/main/java/netneutrality/command/music/LeaveCommand.java +++ b/src/main/java/netneutrality/command/music/LeaveCommand.java @@ -39,6 +39,11 @@ public class LeaveCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/PlayCommand.java b/src/main/java/netneutrality/command/music/PlayCommand.java index 022fea4..5b3d5c4 100644 --- a/src/main/java/netneutrality/command/music/PlayCommand.java +++ b/src/main/java/netneutrality/command/music/PlayCommand.java @@ -39,6 +39,11 @@ public class PlayCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; @@ -56,18 +61,14 @@ public class PlayCommand extends AbstractCommand { if (player.isConnectedTo(vChannel)) { event.getMessage().delete().queue(); - if (args.startsWith("ytsearch:")) { - player.play(args, event.getTextChannel(), event.getMember(), false); - } else { - player.play(args.split(" ")[0], event.getTextChannel(), event.getMember(), false); - } + player.play(args, 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.split(" ")[0], event.getTextChannel(), event.getMember(), false); + player.play(args, event.getTextChannel(), event.getMember(), false); } } else event.getTextChannel().sendMessage("You are not in a voice channel").queue(); diff --git a/src/main/java/netneutrality/command/music/SkipCommand.java b/src/main/java/netneutrality/command/music/SkipCommand.java index 21d9b83..0ac8c39 100644 --- a/src/main/java/netneutrality/command/music/SkipCommand.java +++ b/src/main/java/netneutrality/command/music/SkipCommand.java @@ -39,6 +39,11 @@ public class SkipCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/music/StopCommand.java b/src/main/java/netneutrality/command/music/StopCommand.java index 4dccd0b..8ccf159 100644 --- a/src/main/java/netneutrality/command/music/StopCommand.java +++ b/src/main/java/netneutrality/command/music/StopCommand.java @@ -39,6 +39,11 @@ public class StopCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; @@ -55,6 +60,7 @@ public class StopCommand extends AbstractCommand { if (player.isConnected()) { if (player.isConnectedTo(vChannel)) { player.stopMusic(); + player.leave(); } else event.getTextChannel().sendMessage("Not in your voice channel").queue(); } else diff --git a/src/main/java/netneutrality/command/music/VolumeCommand.java b/src/main/java/netneutrality/command/music/VolumeCommand.java index 84ce9cc..b48d2bc 100644 --- a/src/main/java/netneutrality/command/music/VolumeCommand.java +++ b/src/main/java/netneutrality/command/music/VolumeCommand.java @@ -39,6 +39,11 @@ public class VolumeCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/specific/DatabaseCommand.java b/src/main/java/netneutrality/command/specific/DatabaseCommand.java index 417b0c2..de48d7b 100644 --- a/src/main/java/netneutrality/command/specific/DatabaseCommand.java +++ b/src/main/java/netneutrality/command/specific/DatabaseCommand.java @@ -44,6 +44,11 @@ public class DatabaseCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/specific/EvalMethod.java b/src/main/java/netneutrality/command/specific/EvalMethod.java index 88575ba..6708e35 100644 --- a/src/main/java/netneutrality/command/specific/EvalMethod.java +++ b/src/main/java/netneutrality/command/specific/EvalMethod.java @@ -43,6 +43,11 @@ public class EvalMethod extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.BOTH; diff --git a/src/main/java/netneutrality/command/specific/LoggingCommand.java b/src/main/java/netneutrality/command/specific/LoggingCommand.java index dd8f520..b049f9f 100644 --- a/src/main/java/netneutrality/command/specific/LoggingCommand.java +++ b/src/main/java/netneutrality/command/specific/LoggingCommand.java @@ -35,6 +35,11 @@ public class LoggingCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.CHANNEL; diff --git a/src/main/java/netneutrality/command/specific/SellyCommand.java b/src/main/java/netneutrality/command/specific/SellyCommand.java index 7a4f802..1e15e10 100644 --- a/src/main/java/netneutrality/command/specific/SellyCommand.java +++ b/src/main/java/netneutrality/command/specific/SellyCommand.java @@ -43,6 +43,11 @@ public class SellyCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.PRIVATE; diff --git a/src/main/java/netneutrality/command/specific/ShutdownCommand.java b/src/main/java/netneutrality/command/specific/ShutdownCommand.java index 09a28e5..c9a14e5 100644 --- a/src/main/java/netneutrality/command/specific/ShutdownCommand.java +++ b/src/main/java/netneutrality/command/specific/ShutdownCommand.java @@ -31,6 +31,11 @@ public class ShutdownCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.BOTH; diff --git a/src/main/java/netneutrality/command/specific/TestCommand.java b/src/main/java/netneutrality/command/specific/TestCommand.java index c4f26b6..a4bbfc3 100644 --- a/src/main/java/netneutrality/command/specific/TestCommand.java +++ b/src/main/java/netneutrality/command/specific/TestCommand.java @@ -43,6 +43,11 @@ public class TestCommand extends AbstractCommand { return null; } + @Override + public String getDescription() { + return null; + } + @Override public Visibility getVisibility() { return Visibility.BOTH;