diff --git a/pom.xml b/pom.xml
index 684495b..90548ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,13 @@
4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.5.4
+
+
+
com.xtremcommunity.discord
netneutrality
1.0.0
@@ -9,8 +16,7 @@
jar
- 1.11
- 1.11
+ 11
@@ -56,9 +62,9 @@
- mysql
- mysql-connector-java
- 8.0.26
+ org.mariadb.jdbc
+ mariadb-java-client
+ 2.7.4
org.apache.logging.log4j
@@ -75,6 +81,12 @@
log4j-slf4j-impl
2.14.1
+
+ commons-logging
+ commons-logging
+ 1.1.1
+
+
org.fusesource.jansi
jansi
@@ -91,6 +103,8 @@
junit
4.13.2
+
+
\ No newline at end of file
diff --git a/src/main/java/netneutrality/ThreadManager.java b/src/main/java/netneutrality/ThreadManager.java
index 9d361e6..1c24f4b 100644
--- a/src/main/java/netneutrality/ThreadManager.java
+++ b/src/main/java/netneutrality/ThreadManager.java
@@ -6,6 +6,8 @@ package netneutrality;
* This file is closed-source. It should not be distributed or copied in any way or form
*/
+import netneutrality.thread.BaseThread;
+import netneutrality.utils.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,9 +18,24 @@ import java.util.concurrent.TimeUnit;
public class ThreadManager {
+ private static ThreadManager INSTANCE;
private final static Logger logger = LoggerFactory.getLogger(ThreadManager.class);
- public static final ExecutorService executor = Executors.newSingleThreadExecutor();
- public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
+ public static final ExecutorService executor = Executors.newSingleThreadExecutor(new BaseThread("executor"));
+ public static final ExecutorService dBExecutor = Executors.newSingleThreadExecutor(new BaseThread("db-action"));
+ public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(5, new BaseThread("scheduled-action"));
+
+
+ public ThreadManager() {
+
+ }
+
+ public static ThreadManager getInstance() {
+ if(INSTANCE == null) {
+ INSTANCE = new ThreadManager();
+ }
+
+ return INSTANCE;
+ }
public static void shutdownExecutor() {
logger.info("[Executor] Shutting down...");
diff --git a/src/main/java/netneutrality/command/AbstractCommand.java b/src/main/java/netneutrality/command/AbstractCommand.java
index cb3592a..4395888 100644
--- a/src/main/java/netneutrality/command/AbstractCommand.java
+++ b/src/main/java/netneutrality/command/AbstractCommand.java
@@ -39,13 +39,15 @@ public abstract class AbstractCommand {
public abstract Visibility getVisibility();
+ public abstract CommandType getType();
+
/**
- * @param event
* @param args the arguments to the command
- * @return
*/
public abstract String execute(MessageReceivedEvent event, String args);
-
+
+
+
public int countArgs(String command) {
if (command.isEmpty())
return 0;
diff --git a/src/main/java/netneutrality/command/CommandType.java b/src/main/java/netneutrality/command/CommandType.java
new file mode 100644
index 0000000..ff7fd0e
--- /dev/null
+++ b/src/main/java/netneutrality/command/CommandType.java
@@ -0,0 +1,14 @@
+package netneutrality.command;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+public enum CommandType {
+ MUSIC(1), ADMINISTRATION(0), UTILITY(5);
+
+ CommandType(int i) {
+
+ }
+}
diff --git a/src/main/java/netneutrality/command/PermissionManager.java b/src/main/java/netneutrality/command/PermissionManager.java
new file mode 100644
index 0000000..dec8203
--- /dev/null
+++ b/src/main/java/netneutrality/command/PermissionManager.java
@@ -0,0 +1,28 @@
+package netneutrality.command;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+import net.dv8tion.jda.api.entities.Guild;
+import net.dv8tion.jda.api.entities.Member;
+import net.dv8tion.jda.api.entities.Role;
+import netneutrality.db.DBController;
+import netneutrality.db.entities.Permission;
+import netneutrality.db.models.MTableModel;
+
+import java.util.List;
+
+public class PermissionManager {
+
+ public static boolean CheckPermissionForUser(Guild guild, Member member, AbstractCommand command) {
+
+ //Permission permissions = DBController.get().prepareAndExecuteAsync("SELECT * FROM permissions WHERE guild_id = ?").blocking();
+
+ List roles = member.getRoles();
+
+ return false;
+ }
+
+}
diff --git a/src/main/java/netneutrality/command/Visibility.java b/src/main/java/netneutrality/command/Visibility.java
index a20df14..413f4e0 100644
--- a/src/main/java/netneutrality/command/Visibility.java
+++ b/src/main/java/netneutrality/command/Visibility.java
@@ -15,7 +15,7 @@ public enum Visibility {
PRIVATE, CHANNEL, BOTH;
public static boolean check(MessageChannel channel, Visibility v) {
- if (v == BOTH && channel instanceof TextChannel || channel instanceof PrivateChannel)
+ if (v == BOTH && (channel instanceof TextChannel || channel instanceof PrivateChannel))
return true;
if (v == PRIVATE && channel instanceof PrivateChannel)
diff --git a/src/main/java/netneutrality/command/basic/HelpCommand.java b/src/main/java/netneutrality/command/basic/HelpCommand.java
index 4b6741b..792a9b2 100644
--- a/src/main/java/netneutrality/command/basic/HelpCommand.java
+++ b/src/main/java/netneutrality/command/basic/HelpCommand.java
@@ -1,6 +1,5 @@
package netneutrality.command.basic;
-import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.MessageBuilder;
import net.dv8tion.jda.api.entities.MessageChannel;
import net.dv8tion.jda.api.entities.TextChannel;
@@ -8,13 +7,11 @@ 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.CommandType;
import netneutrality.command.Visibility;
-import netneutrality.utils.Settings;
+import netneutrality.utils.MessageFunction;
-import java.awt.*;
import java.util.HashMap;
-import java.util.SortedSet;
-import java.util.TreeSet;
public class HelpCommand extends AbstractCommand {
@@ -64,35 +61,16 @@ public class HelpCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return CommandType.UTILITY;
+ }
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.getInstance().getPrefix()).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());
+ user.openPrivateChannel().queue(t -> t.sendMessage(MessageFunction.buildHelpMessage(commands, alias)).queue());
}
}
diff --git a/src/main/java/netneutrality/command/basic/PingCommand.java b/src/main/java/netneutrality/command/basic/PingCommand.java
index 831c845..5c91b8a 100644
--- a/src/main/java/netneutrality/command/basic/PingCommand.java
+++ b/src/main/java/netneutrality/command/basic/PingCommand.java
@@ -3,13 +3,11 @@ package netneutrality.command.basic;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.MusicBot;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
public class PingCommand extends AbstractCommand {
- public PingCommand() {
- }
-
@Override
public String execute(MessageReceivedEvent event, String args) {
if (countArgs(args) == 0)
@@ -54,4 +52,9 @@ public class PingCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
}
diff --git a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java
index 46d0331..a61ce0d 100644
--- a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java
+++ b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java
@@ -3,6 +3,7 @@ package netneutrality.command.crypto;
import java.io.IOException;
import java.util.function.Consumer;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import org.json.JSONException;
import org.json.JSONObject;
@@ -101,4 +102,9 @@ public class BitcoinPriceCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
}
diff --git a/src/main/java/netneutrality/command/crypto/Currency.java b/src/main/java/netneutrality/command/crypto/Currency.java
index 8447223..2b8235a 100644
--- a/src/main/java/netneutrality/command/crypto/Currency.java
+++ b/src/main/java/netneutrality/command/crypto/Currency.java
@@ -18,7 +18,7 @@ public enum Currency {
WST("WST"), XAF("XAF"), XAG("XAG"), XAU("XAU"), XBA("XBA"), XBB("XBB"), XBC("XBC"), XBD("XBD"), XCD("XCD"), XDR("XDR"), XFU("XFU"), XOF("XOF"),
XPD("XPD"), XPF("XPF"), XPT("XPT"), XSU("XSU"), XTS("XTS"), XUA("XUA"), XXX("XXX"), YER("YER"), ZAR("ZAR"), ZMW("ZMW");
- private String iso4217Code;
+ private final String iso4217Code;
Currency(String code) {
this.iso4217Code = code;
diff --git a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java
index 45fda37..6e1ef17 100644
--- a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java
+++ b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java
@@ -3,6 +3,7 @@ package netneutrality.command.crypto;
import java.io.IOException;
import java.util.function.Consumer;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import org.json.JSONException;
@@ -38,21 +39,17 @@ public class EthereumPriceCommand extends AbstractCommand {
}
- event.getTextChannel().sendMessage("Retreiving price, please wait...").queue(new Consumer() {
+ event.getTextChannel().sendMessage("Retreiving price, please wait...").queue(t -> {
- @Override
- public void accept(Message t) {
-
- try {
- WebModule ethereumHttp = new WebModule(currencyUrl + currency.toUpperCase()).request();
- price = Double.toString(ethereumHttp.getAsObject().getDouble(currency));
-
- } catch (IOException | RuntimeException e) {
- e.printStackTrace();
- t.editMessage("Error getting ethereum price!").queue();
- }
- t.editMessage(messageBuilder(price)).queue();
+ try {
+ WebModule ethereumHttp = new WebModule(currencyUrl + currency.toUpperCase()).request();
+ price = Double.toString(ethereumHttp.getAsObject().getDouble(currency));
+
+ } catch (IOException | RuntimeException e) {
+ e.printStackTrace();
+ t.editMessage("Error getting ethereum price!").queue();
}
+ t.editMessage(messageBuilder(price)).queue();
});
return null;
@@ -93,4 +90,9 @@ public class EthereumPriceCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
}
diff --git a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java
index 674b612..2c8bb6e 100644
--- a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java
+++ b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java
@@ -3,6 +3,7 @@ package netneutrality.command.crypto;
import java.io.IOException;
import java.util.function.Consumer;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import org.json.JSONException;
@@ -38,21 +39,17 @@ public class LitecoinPriceCommand extends AbstractCommand {
}
- event.getTextChannel().sendMessage("Retreiving price, please wait...").queue(new Consumer() {
+ event.getTextChannel().sendMessage("Retreiving price, please wait...").queue(t -> {
- @Override
- public void accept(Message t) {
-
- try {
- WebModule litecoinHttp = new WebModule(currencyUrl + currency).request();
- price = litecoinHttp.getAsArray().getJSONObject(0).getString("price_" + currency.toLowerCase());
- } catch (IOException | RuntimeException e) {
- e.printStackTrace();
- t.editMessage("Error getting litecoin price!").queue();
- }
- t.editMessage(messageBuilder(price)).queue();
-
+ try {
+ WebModule litecoinHttp = new WebModule(currencyUrl + currency).request();
+ price = litecoinHttp.getAsArray().getJSONObject(0).getString("price_" + currency.toLowerCase());
+ } catch (IOException | RuntimeException e) {
+ e.printStackTrace();
+ t.editMessage("Error getting litecoin price!").queue();
}
+ t.editMessage(messageBuilder(price)).queue();
+
});
return null;
@@ -92,4 +89,9 @@ public class LitecoinPriceCommand extends AbstractCommand {
public Visibility getVisibility() {
return Visibility.BOTH;
}
+
+ @Override
+ public CommandType getType() {
+ return null;
+ }
}
diff --git a/src/main/java/netneutrality/command/message/BlacklistCommand.java b/src/main/java/netneutrality/command/message/BlacklistCommand.java
index 82879df..3618cba 100644
--- a/src/main/java/netneutrality/command/message/BlacklistCommand.java
+++ b/src/main/java/netneutrality/command/message/BlacklistCommand.java
@@ -1,134 +1,130 @@
package netneutrality.command.message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
-import netneutrality.MusicBot;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
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
- public boolean needAdmin() {
- return true;
- }
- @Override
- public boolean isEnabled() {
- return true;
- }
+ @Override
+ public boolean needAdmin() {
+ return true;
+ }
- @Override
- public String getCommand() {
- return "blacklist";
- }
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
- @Override
- public String[] getAlias() {
- return new String[] {"bl"};
- }
+ @Override
+ public String getCommand() {
+ return "blacklist";
+ }
- @Override
- public String getUsage() {
- return "Manages the blacklist of your server.";
- }
+ @Override
+ public String[] getAlias() {
+ return new String[] {"bl"};
+ }
- @Override
- public String getDescription() {
- return null;
- }
+ @Override
+ public String getUsage() {
+ return null;
+ }
- @Override
- public Visibility getVisibility() {
- return Visibility.CHANNEL;
- }
+ @Override
+ public String getDescription() {
+ return "Manages the blacklist of your server.";
+ }
- @Override
- public String execute(MessageReceivedEvent event, String args) {
+ @Override
+ public Visibility getVisibility() {
+ return Visibility.CHANNEL;
+ }
- if (countArgs(args) > 0 && countArgs(args) < 3) {
- String word = (countArgs(args) == 2 ? parseArgs(args, 1) : "");
-
- switch (parseArgs(args, 0)) {
-
- case "get":
- event.getTextChannel().sendMessage("Retrieving list, please wait...").queue(t -> {
+ @Override
+ public CommandType getType() {
+ return null;
+ }
- StringBuilder sb = new StringBuilder();
+ @Override
+ public String execute(MessageReceivedEvent event, String args) {
+
+ if (countArgs(args) > 0 && countArgs(args) < 3) {
+ String word = (countArgs(args) == 2 ? parseArgs(args, 1) : "");
+
+ switch (parseArgs(args, 0)) {
+
+ case "get":
+ event.getTextChannel().sendMessage("Retrieving list, please wait...").queue(t -> {
+
+ StringBuilder sb = new StringBuilder();
((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(event.getGuild().getId(), mBlacklists -> {
- for (MBlacklist bl : mBlacklists) {
- sb.append(bl.getWord()).append(" -> ").append(bl.isEnabled() ? "enabled" : "disabled").append("\n");
- }
+ 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();
- });
+ t.editMessage("List of blacklisted words for this server [" + event.getGuild().getName() + "] :\n" + (mBlacklists.isEmpty() ? "No word found" : sb.toString())).queue();
+ });
-// 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();
+ });
- });
-
- break;
-
- case "add":
+ break;
- ((DBBlacklist) DBController.get("blacklist")).add(new MBlacklist(word, true, event.getAuthor().getId(), event.getGuild().getId()), response -> {
- if (response) {
- event.getTextChannel().sendMessage("Added the word \"" + word + "\" to the blacklist.").queue();
- } else {
- event.getTextChannel().sendMessage("Error adding \"" + word + "\" to the blacklist. It's already blacklisted!").queue();
- }
- });
- break;
-
- case "remove":
+ case "add":
- ((DBBlacklist) DBController.get("blacklist")).delete(word, event.getGuild().getId(), success -> {
- if (success) {
- event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
- } else {
- event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
- }
- });
+ ((DBBlacklist) DBController.get("blacklist")).add(new MBlacklist(word, true, event.getAuthor().getId(), event.getGuild().getId()), response -> {
+ if (response) {
+ event.getTextChannel().sendMessage("Added the word \"" + word + "\" to the blacklist.").queue();
+ } else {
+ event.getTextChannel().sendMessage("Error adding \"" + word + "\" to the blacklist. It's already blacklisted!").queue();
+ }
+ });
+ break;
- break;
-
- case "disable":
+ case "remove":
- ((DBBlacklist) DBController.get("blacklist")).disable(word, event.getGuild().getId(), success -> {
- if (success) {
- event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
- } else {
- event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
- }
- });
-
- break;
-
- case "enable":
+ ((DBBlacklist) DBController.get("blacklist")).delete(word, event.getGuild().getId(), success -> {
+ if (success) {
+ event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
+ } else {
+ event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
+ }
+ });
- ((DBBlacklist) DBController.get("blacklist")).enable(word, event.getGuild().getId(), success -> {
- if (success) {
- event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
- } else {
- event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
- }
- });
-
- break;
-
- }
- }
-
- return null;
- }
+ break;
+
+ case "disable":
+
+ ((DBBlacklist) DBController.get("blacklist")).disable(word, event.getGuild().getId(), success -> {
+ if (success) {
+ event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
+ } else {
+ event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
+ }
+ });
+
+ break;
+
+ case "enable":
+
+ ((DBBlacklist) DBController.get("blacklist")).enable(word, event.getGuild().getId(), success -> {
+ if (success) {
+ event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue();
+ } else {
+ event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue();
+ }
+ });
+
+ break;
+
+ }
+ }
+
+ return null;
+ }
}
diff --git a/src/main/java/netneutrality/command/message/PruneCommand.java b/src/main/java/netneutrality/command/message/PruneCommand.java
index 6607323..6fda00e 100644
--- a/src/main/java/netneutrality/command/message/PruneCommand.java
+++ b/src/main/java/netneutrality/command/message/PruneCommand.java
@@ -2,6 +2,7 @@ package netneutrality.command.message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.utils.ChannelFunction;
@@ -42,6 +43,11 @@ public class PruneCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
if (countArgs(args) == 1)
diff --git a/src/main/java/netneutrality/command/music/BitconnectCommand.java b/src/main/java/netneutrality/command/music/BitconnectCommand.java
index 745717e..896c31b 100644
--- a/src/main/java/netneutrality/command/music/BitconnectCommand.java
+++ b/src/main/java/netneutrality/command/music/BitconnectCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class BitconnectCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
@@ -59,16 +65,14 @@ public class BitconnectCommand extends AbstractCommand {
if (player.isConnected()) {
if (player.isConnectedTo(vChannel)) {
- player.play("https://www.youtube.com/watch?v=A8M70M7tzTI", event.getTextChannel(), event.getMember(), true);
+ player.play("https://www.youtube.com/watch?v=e5nyQmaq4k4", event.getTextChannel(), member, true);
} else
event.getTextChannel().sendMessage("Not in your voice channel").queue();
} else {
player.connect(vChannel);
- player.play("https://www.youtube.com/watch?v=A8M70M7tzTI", event.getTextChannel(), event.getMember(), true);
+ player.play("https://www.youtube.com/watch?v=e5nyQmaq4k4", event.getTextChannel(), member, true);
}
-
-
} else
event.getTextChannel().sendMessage("You are not in a voice channel").queue();
diff --git a/src/main/java/netneutrality/command/music/DeleteQueueCommand.java b/src/main/java/netneutrality/command/music/DeleteQueueCommand.java
index 75c363e..2b20368 100644
--- a/src/main/java/netneutrality/command/music/DeleteQueueCommand.java
+++ b/src/main/java/netneutrality/command/music/DeleteQueueCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class DeleteQueueCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/JoinCommand.java b/src/main/java/netneutrality/command/music/JoinCommand.java
index 026c977..3667fbe 100644
--- a/src/main/java/netneutrality/command/music/JoinCommand.java
+++ b/src/main/java/netneutrality/command/music/JoinCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class JoinCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/LeaveCommand.java b/src/main/java/netneutrality/command/music/LeaveCommand.java
index b331631..3bb094d 100644
--- a/src/main/java/netneutrality/command/music/LeaveCommand.java
+++ b/src/main/java/netneutrality/command/music/LeaveCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class LeaveCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/PlayCommand.java b/src/main/java/netneutrality/command/music/PlayCommand.java
index 5b3d5c4..f8c87e2 100644
--- a/src/main/java/netneutrality/command/music/PlayCommand.java
+++ b/src/main/java/netneutrality/command/music/PlayCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class PlayCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/SkipCommand.java b/src/main/java/netneutrality/command/music/SkipCommand.java
index 0ac8c39..cf031ab 100644
--- a/src/main/java/netneutrality/command/music/SkipCommand.java
+++ b/src/main/java/netneutrality/command/music/SkipCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class SkipCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/StopCommand.java b/src/main/java/netneutrality/command/music/StopCommand.java
index 8ccf159..bf45cc0 100644
--- a/src/main/java/netneutrality/command/music/StopCommand.java
+++ b/src/main/java/netneutrality/command/music/StopCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class StopCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/music/VolumeCommand.java b/src/main/java/netneutrality/command/music/VolumeCommand.java
index b48d2bc..fec6c46 100644
--- a/src/main/java/netneutrality/command/music/VolumeCommand.java
+++ b/src/main/java/netneutrality/command/music/VolumeCommand.java
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.VoiceChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
@@ -49,6 +50,11 @@ public class VolumeCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
Member member = event.getMember();
diff --git a/src/main/java/netneutrality/command/specific/DatabaseCommand.java b/src/main/java/netneutrality/command/specific/DatabaseCommand.java
index 775db24..f348f59 100644
--- a/src/main/java/netneutrality/command/specific/DatabaseCommand.java
+++ b/src/main/java/netneutrality/command/specific/DatabaseCommand.java
@@ -11,6 +11,7 @@ import net.dv8tion.jda.api.entities.PrivateChannel;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.db.DBController;
import netneutrality.db.controllers.DBMessage;
@@ -54,6 +55,11 @@ public class DatabaseCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
//TODO: Clean up the mess
diff --git a/src/main/java/netneutrality/command/specific/EvalMethod.java b/src/main/java/netneutrality/command/specific/EvalMethod.java
index 3435c89..9b9677a 100644
--- a/src/main/java/netneutrality/command/specific/EvalMethod.java
+++ b/src/main/java/netneutrality/command/specific/EvalMethod.java
@@ -8,6 +8,7 @@ package netneutrality.command.specific;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.music.MusicManager;
import netneutrality.utils.Settings;
@@ -25,7 +26,7 @@ public class EvalMethod extends AbstractCommand {
@Override
public boolean isEnabled() {
- return true;
+ return false;
}
@Override
@@ -53,6 +54,11 @@ public class EvalMethod extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
diff --git a/src/main/java/netneutrality/command/specific/LoggingCommand.java b/src/main/java/netneutrality/command/specific/LoggingCommand.java
index b049f9f..3ea3b70 100644
--- a/src/main/java/netneutrality/command/specific/LoggingCommand.java
+++ b/src/main/java/netneutrality/command/specific/LoggingCommand.java
@@ -2,6 +2,7 @@ package netneutrality.command.specific;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
public class LoggingCommand extends AbstractCommand {
@@ -45,6 +46,11 @@ public class LoggingCommand extends AbstractCommand {
return Visibility.CHANNEL;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
diff --git a/src/main/java/netneutrality/command/specific/SellyCommand.java b/src/main/java/netneutrality/command/specific/SellyCommand.java
index 1e15e10..cd30092 100644
--- a/src/main/java/netneutrality/command/specific/SellyCommand.java
+++ b/src/main/java/netneutrality/command/specific/SellyCommand.java
@@ -8,6 +8,7 @@ package netneutrality.command.specific;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.db.DBController;
import netneutrality.db.controllers.DBSettings;
@@ -53,6 +54,11 @@ public class SellyCommand extends AbstractCommand {
return Visibility.PRIVATE;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
diff --git a/src/main/java/netneutrality/command/specific/ShutdownCommand.java b/src/main/java/netneutrality/command/specific/ShutdownCommand.java
index c9a14e5..1c6432a 100644
--- a/src/main/java/netneutrality/command/specific/ShutdownCommand.java
+++ b/src/main/java/netneutrality/command/specific/ShutdownCommand.java
@@ -2,6 +2,7 @@ package netneutrality.command.specific;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
public class ShutdownCommand extends AbstractCommand {
@@ -41,6 +42,11 @@ public class ShutdownCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
event.getJDA().shutdown();
diff --git a/src/main/java/netneutrality/command/specific/TestCommand.java b/src/main/java/netneutrality/command/specific/TestCommand.java
index 99c719e..076b24c 100644
--- a/src/main/java/netneutrality/command/specific/TestCommand.java
+++ b/src/main/java/netneutrality/command/specific/TestCommand.java
@@ -8,6 +8,7 @@ package netneutrality.command.specific;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import netneutrality.command.AbstractCommand;
+import netneutrality.command.CommandType;
import netneutrality.command.Visibility;
import netneutrality.utils.MessageFunction;
import netneutrality.utils.Settings;
@@ -53,6 +54,11 @@ public class TestCommand extends AbstractCommand {
return Visibility.BOTH;
}
+ @Override
+ public CommandType getType() {
+ return null;
+ }
+
@Override
public String execute(MessageReceivedEvent event, String args) {
if (event.getAuthor().getDiscriminator().equals(Settings.getInstance().getCreator().getDiscriminator())) {
diff --git a/src/main/java/netneutrality/db/controllers/DBBlacklist.java b/src/main/java/netneutrality/db/controllers/DBBlacklist.java
index c84fdda..f2b9370 100644
--- a/src/main/java/netneutrality/db/controllers/DBBlacklist.java
+++ b/src/main/java/netneutrality/db/controllers/DBBlacklist.java
@@ -1,15 +1,13 @@
package netneutrality.db.controllers;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.ArrayList;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
-import netneutrality.MusicBot;
import netneutrality.ThreadManager;
import netneutrality.db.AbstractController;
-import netneutrality.db.DBController;
import netneutrality.db.MysqlDatabase;
import netneutrality.db.models.MBlacklist;
import netneutrality.db.models.MTableModel;
@@ -18,21 +16,12 @@ import org.slf4j.LoggerFactory;
public class DBBlacklist extends AbstractController {
- private final static Logger logger = LoggerFactory.getLogger(DBBlacklist.class);
+ private final Logger logger = LoggerFactory.getLogger(DBBlacklist.class);
public DBBlacklist() {
}
- /**
- * Returns an instance of {@link MysqlDatabase} with the database name as set in the {@link DBController} class
- *
- * @return {@link MysqlDatabase}
- */
- public MysqlDatabase getDatabase() {
- return database;
- }
-
public void add(MBlacklist obj, Consumer success) {
isAlreadyBlacklisted(obj.getWord(), obj.getServerId(), blacklisted -> {
if (blacklisted == 0) {
@@ -49,7 +38,7 @@ public class DBBlacklist extends AbstractController {
isAlreadyBlacklisted(word, serverId, blacklisted -> {
if (blacklisted >= 1) {
database.prepareAndExecuteAsync("DELETE FROM blacklist WHERE word = ? AND serverId = ?", word, serverId).async();
- logger.info("blacklisted");
+ logger.debug("removed word from blacklist");
success.accept(true);
} else {
logger.info("not blacklisted");
@@ -82,7 +71,7 @@ public class DBBlacklist extends AbstractController {
logger.info("disabled");
success.accept(true);
} else {
- logger.info("error disabled");
+ logger.info("error disabling");
success.accept(false);
}
});
@@ -109,16 +98,12 @@ public class DBBlacklist extends AbstractController {
}
public void getBlacklistFromServer(String serverId, Consumer> success) {
-
database.prepareAndExecuteAsync("SELECT * FROM blacklist WHERE serverId = ? AND isEnabled = 1", serverId).async(model -> {
ArrayList output = new ArrayList<>();
-
if (model.getNbRows() > 0) {
-
for (int row = 0; row < model.getNbRows(); row++) {
- logger.debug("enter loop");
MBlacklist bl = new MBlacklist(model.getRow(row));
output.add(bl);
}
@@ -130,7 +115,7 @@ public class DBBlacklist extends AbstractController {
}
@Deprecated
- public ArrayList getBlacklistFromServer(String serverId) {
+ public ArrayList getBlacklistFromServer(String serverId) throws ExecutionException, InterruptedException {
MTableModel model = database.prepareAndExecuteAsync("SELECT * FROM blacklist WHERE serverId = ? AND isEnabled = 1", serverId).blocking();
ArrayList output = new ArrayList<>();
diff --git a/src/main/java/netneutrality/db/controllers/DBGuild.java b/src/main/java/netneutrality/db/controllers/DBGuild.java
new file mode 100644
index 0000000..84edf01
--- /dev/null
+++ b/src/main/java/netneutrality/db/controllers/DBGuild.java
@@ -0,0 +1,18 @@
+package netneutrality.db.controllers;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+import netneutrality.db.AbstractController;
+
+public class DBGuild extends AbstractController {
+
+
+
+ @Override
+ public String getControllerName() {
+ return "guild";
+ }
+}
diff --git a/src/main/java/netneutrality/db/controllers/DBMessage.java b/src/main/java/netneutrality/db/controllers/DBMessage.java
index c0767bd..7b32ec9 100644
--- a/src/main/java/netneutrality/db/controllers/DBMessage.java
+++ b/src/main/java/netneutrality/db/controllers/DBMessage.java
@@ -4,6 +4,7 @@ import java.sql.SQLException;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.sql.ResultSet;
+import java.util.function.Consumer;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Message;
@@ -35,7 +36,7 @@ public class DBMessage extends AbstractController {
}
public void log(Guild guild, TextChannel channel, User author, Message message) {
- String servername = guild.getName();
+ String servername = guild.getId();
String channelname = channel.getName();
String username = author.getName();
String datesent = message.getTimeCreated().format(DateTimeFormatter.ofPattern(Settings.getInstance().DATETIMEFORMAT));
@@ -62,6 +63,22 @@ public class DBMessage extends AbstractController {
return null;
}
+ public void getMessagesFromUser(String username, String serverName, int max, Consumer> success) {
+ database.prepareAndExecuteAsync("SELECT * FROM log_message WHERE userName = ? AND serverName = ? ORDER BY dateSent DESC LIMIT ?", username, serverName, max).async(table -> {
+ ArrayList messages = new ArrayList<>();
+
+ if (table.getNbRows() > 0) {
+ for (int row = 0; row < max; row++) {
+ messages.add(new MMessage(table.getRowModel(row)));
+ }
+ }
+
+ success.accept(messages);
+ });
+
+ }
+
+ @Deprecated
public ArrayList getMessagesFromUser(String username, String serverName, int max) {
ArrayList messages = new ArrayList<>();
diff --git a/src/main/java/netneutrality/db/controllers/DBSettings.java b/src/main/java/netneutrality/db/controllers/DBSettings.java
index df5c4ba..a8e1fe9 100644
--- a/src/main/java/netneutrality/db/controllers/DBSettings.java
+++ b/src/main/java/netneutrality/db/controllers/DBSettings.java
@@ -1,10 +1,9 @@
package netneutrality.db.controllers;
-import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.ExecutionException;
import java.util.function.Consumer;
import netneutrality.db.AbstractController;
-import netneutrality.db.MysqlDatabase;
import netneutrality.db.models.MTableModel;
public class DBSettings extends AbstractController {
diff --git a/src/main/java/netneutrality/db/entities/EntityInterface.java b/src/main/java/netneutrality/db/entities/EntityInterface.java
new file mode 100644
index 0000000..65940aa
--- /dev/null
+++ b/src/main/java/netneutrality/db/entities/EntityInterface.java
@@ -0,0 +1,14 @@
+package netneutrality.db.entities;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+import netneutrality.db.models.MTableModel;
+
+public interface EntityInterface {
+
+ public E ConvertFromTableModel(MTableModel table);
+
+}
diff --git a/src/main/java/netneutrality/db/entities/Guild.java b/src/main/java/netneutrality/db/entities/Guild.java
new file mode 100644
index 0000000..c562498
--- /dev/null
+++ b/src/main/java/netneutrality/db/entities/Guild.java
@@ -0,0 +1,16 @@
+package netneutrality.db.entities;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+
+public class Guild {
+
+ private int guildID;
+
+ public Guild() {
+
+ }
+}
diff --git a/src/main/java/netneutrality/db/entities/Permission.java b/src/main/java/netneutrality/db/entities/Permission.java
new file mode 100644
index 0000000..553b1ed
--- /dev/null
+++ b/src/main/java/netneutrality/db/entities/Permission.java
@@ -0,0 +1,53 @@
+package netneutrality.db.entities;/*
+ * Copyright (c) anthorob
+ *
+ * https://xtremcommunity.com/
+ * https://discord.gg/CdFcyQ
+ */
+
+import netneutrality.command.CommandType;
+import netneutrality.db.models.MTableModel;
+
+import java.util.List;
+
+public class Permission implements EntityInterface {
+ private final String guild_id;
+ private final String role_id;
+ private final CommandType type;
+ private final String command;
+
+ public Permission(String guild_id, String role_id, CommandType type, String command) {
+ this.guild_id = guild_id;
+ this.role_id = role_id;
+ this.type = type;
+ this.command = command;
+ }
+
+ public Permission(List