From b249e89b56215850a94c505b26752ed2e287069c Mon Sep 17 00:00:00 2001 From: Anthony Robert Date: Sun, 17 Mar 2019 16:22:28 -0400 Subject: [PATCH] Refactored code --- src/main/java/netneutrality/StatusThread.java | 32 --- .../java/netneutrality/ThreadManager.java | 4 +- .../command/basic/PingCommand.java | 4 - .../command/crypto/BitcoinPriceCommand.java | 4 - .../command/crypto/EthereumPriceCommand.java | 4 - .../command/crypto/LitecoinPriceCommand.java | 4 - .../command/message/BlacklistCommand.java | 11 - .../command/message/PruneCommand.java | 8 - .../command/specific/DatabaseCommand.java | 8 - .../command/specific/NiggerCommand.java | 8 - .../command/specific/ShutdownCommand.java | 8 - .../netneutrality/db/AbstractController.java | 2 +- .../java/netneutrality/db/DBController.java | 4 +- .../java/netneutrality/db/MysqlDatabase.java | 6 + .../db/controllers/DBBlacklist.java | 219 +++++++++--------- .../netneutrality/db/models/MRowModel.java | 4 + .../handler/ServerJoinHandler.java | 21 ++ .../netneutrality/http/server/WebApi.java | 2 +- src/main/resources/log4j2.xml | 2 +- .../netneutrality/db/MysqlDatabaseTest.java | 30 +++ 20 files changed, 177 insertions(+), 208 deletions(-) delete mode 100644 src/main/java/netneutrality/StatusThread.java create mode 100644 src/main/java/netneutrality/handler/ServerJoinHandler.java create mode 100644 src/test/java/netneutrality/db/MysqlDatabaseTest.java diff --git a/src/main/java/netneutrality/StatusThread.java b/src/main/java/netneutrality/StatusThread.java deleted file mode 100644 index 1c8af3f..0000000 --- a/src/main/java/netneutrality/StatusThread.java +++ /dev/null @@ -1,32 +0,0 @@ -package netneutrality; - -import net.dv8tion.jda.core.OnlineStatus; -import net.dv8tion.jda.core.managers.Presence; - -public class StatusThread implements Runnable { - - private Presence status; - - public StatusThread(Presence pr) { - this.status = pr; - } - - @Override - public void run() { - try { - while (true) { - status.setStatus(OnlineStatus.ONLINE); - Thread.sleep(10000); - status.setStatus(OnlineStatus.IDLE); - Thread.sleep(10000); - status.setStatus(OnlineStatus.DO_NOT_DISTURB); - Thread.sleep(10000); - } - - } catch (InterruptedException e) { - e.printStackTrace(); - } - - } - -} diff --git a/src/main/java/netneutrality/ThreadManager.java b/src/main/java/netneutrality/ThreadManager.java index bd2a69d..614c5e0 100644 --- a/src/main/java/netneutrality/ThreadManager.java +++ b/src/main/java/netneutrality/ThreadManager.java @@ -14,7 +14,7 @@ import java.util.concurrent.TimeUnit; public class ThreadManager { public static final ExecutorService executor = Executors.newSingleThreadExecutor(); - public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); public static void shutdownExecutor() { try { @@ -23,7 +23,7 @@ public class ThreadManager { executor.awaitTermination(5, TimeUnit.SECONDS); } catch (InterruptedException e) { - System.err.println("[Executor] Running tasks interrupted!"); + System.err.println("[Executor] Running tasks interrupted"); } finally { if (!executor.isTerminated()) { diff --git a/src/main/java/netneutrality/command/basic/PingCommand.java b/src/main/java/netneutrality/command/basic/PingCommand.java index 2bff225..3b13a5d 100644 --- a/src/main/java/netneutrality/command/basic/PingCommand.java +++ b/src/main/java/netneutrality/command/basic/PingCommand.java @@ -21,25 +21,21 @@ public class PingCommand extends AbstractCommand { @Override public boolean needAdmin() { - // TODO Auto-generated method stub return false; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "ping"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[0]; } diff --git a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java index 1156a69..03edff2 100644 --- a/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/BitcoinPriceCommand.java @@ -68,25 +68,21 @@ public class BitcoinPriceCommand extends AbstractCommand { @Override public boolean needAdmin() { - // TODO Auto-generated method stub return false; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "bitcoin"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[] {"btc"}; } diff --git a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java index 5852dc3..7ae2728 100644 --- a/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/EthereumPriceCommand.java @@ -60,25 +60,21 @@ public class EthereumPriceCommand extends AbstractCommand { @Override public boolean needAdmin() { - // TODO Auto-generated method stub return false; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "ethereum"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[] {"eth"}; } diff --git a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java index 5636395..fa590f6 100644 --- a/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java +++ b/src/main/java/netneutrality/command/crypto/LitecoinPriceCommand.java @@ -60,25 +60,21 @@ public class LitecoinPriceCommand extends AbstractCommand { @Override public boolean needAdmin() { - // TODO Auto-generated method stub return false; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "litecoin"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[] {"ltc"}; } diff --git a/src/main/java/netneutrality/command/message/BlacklistCommand.java b/src/main/java/netneutrality/command/message/BlacklistCommand.java index 970ad80..ce71bc6 100644 --- a/src/main/java/netneutrality/command/message/BlacklistCommand.java +++ b/src/main/java/netneutrality/command/message/BlacklistCommand.java @@ -1,37 +1,26 @@ package netneutrality.command.message; -import java.util.ArrayList; -import java.util.function.Consumer; - import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import netneutrality.command.AbstractCommand; import netneutrality.command.Visibility; import netneutrality.db.DBController; import netneutrality.db.controllers.DBBlacklist; import netneutrality.db.models.MBlacklist; -import netneutrality.handler.LogHandler; public class BlacklistCommand extends AbstractCommand { - - public BlacklistCommand() { - // TODO Auto-generated constructor stub - } @Override public boolean needAdmin() { - // TODO Auto-generated method stub return true; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "blacklist"; } diff --git a/src/main/java/netneutrality/command/message/PruneCommand.java b/src/main/java/netneutrality/command/message/PruneCommand.java index 21d84d1..fbe9188 100644 --- a/src/main/java/netneutrality/command/message/PruneCommand.java +++ b/src/main/java/netneutrality/command/message/PruneCommand.java @@ -7,31 +7,23 @@ import netneutrality.utils.ChannelFunction; public class PruneCommand extends AbstractCommand { - public PruneCommand() { - // TODO Auto-generated constructor stub - } - @Override public boolean needAdmin() { - // TODO Auto-generated method stub return true; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "prune"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[] {"purge"}; } diff --git a/src/main/java/netneutrality/command/specific/DatabaseCommand.java b/src/main/java/netneutrality/command/specific/DatabaseCommand.java index 96ba1a4..ceae448 100644 --- a/src/main/java/netneutrality/command/specific/DatabaseCommand.java +++ b/src/main/java/netneutrality/command/specific/DatabaseCommand.java @@ -19,31 +19,23 @@ import netneutrality.utils.Settings; public class DatabaseCommand extends AbstractCommand { - public DatabaseCommand() { - // TODO Auto-generated constructor stub - } - @Override public boolean needAdmin() { - // TODO Auto-generated method stub return true; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "database"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[] { "db" }; } diff --git a/src/main/java/netneutrality/command/specific/NiggerCommand.java b/src/main/java/netneutrality/command/specific/NiggerCommand.java index 9d33f19..11d09ca 100644 --- a/src/main/java/netneutrality/command/specific/NiggerCommand.java +++ b/src/main/java/netneutrality/command/specific/NiggerCommand.java @@ -6,10 +6,6 @@ import netneutrality.command.Visibility; public class NiggerCommand extends AbstractCommand { - public NiggerCommand() { - - } - @Override public String execute(MessageReceivedEvent event, String args) { event.getMessage().delete().queue(); @@ -20,25 +16,21 @@ public class NiggerCommand extends AbstractCommand { @Override public boolean needAdmin() { - // TODO Auto-generated method stub return false; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return true; } @Override public String getCommand() { - // TODO Auto-generated method stub return "nigger"; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return new String[0]; } diff --git a/src/main/java/netneutrality/command/specific/ShutdownCommand.java b/src/main/java/netneutrality/command/specific/ShutdownCommand.java index 8536f2e..23dd64f 100644 --- a/src/main/java/netneutrality/command/specific/ShutdownCommand.java +++ b/src/main/java/netneutrality/command/specific/ShutdownCommand.java @@ -5,32 +5,24 @@ import netneutrality.command.AbstractCommand; import netneutrality.command.Visibility; public class ShutdownCommand extends AbstractCommand { - - public ShutdownCommand() { - // TODO Auto-generated constructor stub - } @Override public boolean needAdmin() { - // TODO Auto-generated method stub return true; } @Override public boolean isEnabled() { - // TODO Auto-generated method stub return false; } @Override public String getCommand() { - // TODO Auto-generated method stub return null; } @Override public String[] getAlias() { - // TODO Auto-generated method stub return null; } diff --git a/src/main/java/netneutrality/db/AbstractController.java b/src/main/java/netneutrality/db/AbstractController.java index 75fd1d5..1bcdd72 100644 --- a/src/main/java/netneutrality/db/AbstractController.java +++ b/src/main/java/netneutrality/db/AbstractController.java @@ -5,7 +5,7 @@ public abstract class AbstractController { protected MysqlDatabase database; /** - * The controller name to be used in {@link DBController} get(String controller) method + * The controller name to be used in {@link DBController#get(String controller)} method * * @return String */ diff --git a/src/main/java/netneutrality/db/DBController.java b/src/main/java/netneutrality/db/DBController.java index 07e0656..1d96ddd 100644 --- a/src/main/java/netneutrality/db/DBController.java +++ b/src/main/java/netneutrality/db/DBController.java @@ -56,9 +56,7 @@ public class DBController { public static void shutdown() { try { database.close(); - } catch (SQLException e) { - e.printStackTrace(); - } + } catch (SQLException | NullPointerException ignored) { } } /** diff --git a/src/main/java/netneutrality/db/MysqlDatabase.java b/src/main/java/netneutrality/db/MysqlDatabase.java index acc279c..39315f0 100644 --- a/src/main/java/netneutrality/db/MysqlDatabase.java +++ b/src/main/java/netneutrality/db/MysqlDatabase.java @@ -41,6 +41,8 @@ public class MysqlDatabase { * @return {@link ResultSet} */ public ResultSet query(String query) { + MusicBot.LOGGER.debug("Query: " + query); + Statement stmt; try { stmt = connection.createStatement(); @@ -98,6 +100,8 @@ public class MysqlDatabase { } private int executeUpdate(String sql, Object[] params) { + MusicBot.LOGGER.debug("Query: " + sql); + try { PreparedStatement query = connection.prepareStatement(sql); resolveParameters(query, params); @@ -118,6 +122,8 @@ public class MysqlDatabase { * @return a ResultSet object, which can be converted to an model using {@link MysqlDatabase#convertToTableModel(ResultSet)} */ public ResultSet prepareAndExecute(String sql, Object... params) { + MusicBot.LOGGER.debug("Query: " + sql); + try { PreparedStatement query = connection.prepareStatement(sql); resolveParameters(query, params); diff --git a/src/main/java/netneutrality/db/controllers/DBBlacklist.java b/src/main/java/netneutrality/db/controllers/DBBlacklist.java index 09cfe57..29b7294 100644 --- a/src/main/java/netneutrality/db/controllers/DBBlacklist.java +++ b/src/main/java/netneutrality/db/controllers/DBBlacklist.java @@ -14,129 +14,130 @@ import netneutrality.db.models.MTableModel; public class DBBlacklist extends AbstractController { - 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 DBBlacklist() { - public void add(MBlacklist obj, Consumer success) { - ThreadManager.executor.submit(() -> { - if (!isAlreadyBlacklisted(obj.getWord(), obj.getServerId())) { - database.insert("INSERT INTO blacklist VALUES(?,?,?,?)", obj.getWord(), obj.getServerId(), obj.isEnabled(), obj.getCreatorId()); - success.accept(true); - } else { - success.accept(false); - } + } - }); + /** + * 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) { + ThreadManager.executor.submit(() -> { + if (!isAlreadyBlacklisted(obj.getWord(), obj.getServerId())) { + database.insert("INSERT INTO blacklist VALUES(?,?,?,?)", obj.getWord(), obj.getServerId(), obj.isEnabled(), obj.getCreatorId()); + success.accept(true); + } else { + success.accept(false); + } - } - - public void delete(String word, String serverId, Consumer success) { - ThreadManager.executor.submit(() -> { - if (isAlreadyBlacklisted(word, serverId)) { - System.out.println("true"); - database.delete("DELETE FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); - success.accept(true); - } else { - success.accept(false); - } - }); - - } - - public void enable(String word, String serverId, Consumer success) { - ThreadManager.executor.submit(() -> { - if (isAlreadyBlacklisted(word, serverId)) { - database.update("UPDATE blacklist SET isEnabled = 1 WHERE word = ? AND serverId = ?", word, serverId); - success.accept(true); - } else { - success.accept(false); - } - }); - } - - public void disable(String word, String serverId, Consumer success) { - ThreadManager.executor.submit(() -> { - if (isAlreadyBlacklisted(word, serverId)) { - database.update("UPDATE blacklist SET isEnabled = 0 WHERE word = ? AND serverId = ?", word, serverId); - success.accept(true); - } else { - success.accept(false); - } - }); - } - - public void getBlacklistForWord(String word, String serverId, Consumer success) { - ThreadManager.executor.submit(() -> { - MBlacklist blacklisted = null; - if (isAlreadyBlacklisted(word, serverId)) { - ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); - MTableModel table = database.convertToTableModel(rs); - - if (table.getNbRows() > 0) { - blacklisted = new MBlacklist((String) table.getRow(0).get(0), (Boolean) table.getRow(0).get(2), (String) table.getRow(0).get(3), - (String) table.getRow(0).get(1)); - } - } else { - throw new RuntimeException("Is not blacklisted"); - } - - success.accept(blacklisted); }); - } - public void getBlacklistFromServer(String serverId, Consumer> success) { - ThreadManager.executor.submit(() -> { - ArrayList output = new ArrayList<>(); + } - try { - ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE serverId = ? AND isEnabled = 1", serverId); - MTableModel model = MysqlDatabase.convertToTableModel(rs); + public void delete(String word, String serverId, Consumer success) { + ThreadManager.executor.submit(() -> { + if (isAlreadyBlacklisted(word, serverId)) { + System.out.println("true"); + database.delete("DELETE FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); + success.accept(true); + } else { + success.accept(false); + } + }); - if (model.getNbRows() != 0) { - for (int row = 0; row < model.getNbRows(); row++) { - output.add(new MBlacklist((String) model.getRow(row).get(0), (Boolean) model.getRow(row).get(2), (String) model.getRow(row).get(3), - (String) model.getRow(row).get(1))); - } - } else { - throw new RuntimeException("Blacklist is empty"); - } + } - } catch (NullPointerException | IndexOutOfBoundsException ignored) { } + public void enable(String word, String serverId, Consumer success) { - success.accept(output); - }); - } + ThreadManager.executor.submit(() -> { + if (isAlreadyBlacklisted(word, serverId)) { + database.update("UPDATE blacklist SET isEnabled = 1 WHERE word = ? AND serverId = ?", word, serverId); + success.accept(true); + } else { + success.accept(false); + } + }); + } - public boolean isAlreadyBlacklisted(String word, String serverId) { - ResultSet rs = database.prepareAndExecute("SELECT COUNT(*) FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); + public void disable(String word, String serverId, Consumer success) { + ThreadManager.executor.submit(() -> { + if (isAlreadyBlacklisted(word, serverId)) { + database.update("UPDATE blacklist SET isEnabled = 0 WHERE word = ? AND serverId = ?", word, serverId); + success.accept(true); + } else { + success.accept(false); + } + }); + } - try { - if (rs.next()) { - return rs.getInt(1) != 0; - } - } catch (SQLException e) { - //TODO: error log - e.printStackTrace(); - } + public void getBlacklistForWord(String word, String serverId, Consumer success) { + ThreadManager.executor.submit(() -> { + MBlacklist blacklisted = null; - return false; - } + if (isAlreadyBlacklisted(word, serverId)) { + ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); + MTableModel table = database.convertToTableModel(rs); - @Override - public String getControllerName() { - return "blacklist"; - } + if (table.getNbRows() > 0) { + blacklisted = new MBlacklist((String) table.getRow(0).get(0), (Boolean) table.getRow(0).get(2), (String) table.getRow(0).get(3), + (String) table.getRow(0).get(1)); + } + } + + success.accept(blacklisted); + }); + + } + + public void getBlacklistFromServer(String serverId, Consumer> success) { + ThreadManager.executor.submit(() -> { + ArrayList output = new ArrayList<>(); + + try { + ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE serverId = ? AND isEnabled = 1", serverId); + MTableModel model = MysqlDatabase.convertToTableModel(rs); + + if (model.getNbRows() != 0) { + for (int row = 0; row < model.getNbRows(); row++) { + output.add(new MBlacklist((String) model.getRow(row).get(0), (Boolean) model.getRow(row).get(2), (String) model.getRow(row).get(3), + (String) model.getRow(row).get(1))); + } + } else { + throw new RuntimeException("Blacklist is empty"); + } + + } catch (NullPointerException | IndexOutOfBoundsException ignored) { } + + success.accept(output); + }); + + } + + public boolean isAlreadyBlacklisted(String word, String serverId) { + ResultSet rs = database.prepareAndExecute("SELECT COUNT(*) FROM blacklist WHERE word = ? AND serverId = ?", word, serverId); + + try { + if (rs.next()) { + return rs.getInt(1) != 0; + } + } catch (SQLException e) { + //TODO: error log + e.printStackTrace(); + } + + return false; + } + + @Override + public String getControllerName() { + return "blacklist"; + } } diff --git a/src/main/java/netneutrality/db/models/MRowModel.java b/src/main/java/netneutrality/db/models/MRowModel.java index 4469bc1..0d0dae4 100644 --- a/src/main/java/netneutrality/db/models/MRowModel.java +++ b/src/main/java/netneutrality/db/models/MRowModel.java @@ -38,6 +38,10 @@ public class MRowModel { } } + public int count() { + return row.size(); + } + @Override public String toString() { return row.toString(); diff --git a/src/main/java/netneutrality/handler/ServerJoinHandler.java b/src/main/java/netneutrality/handler/ServerJoinHandler.java new file mode 100644 index 0000000..25f5154 --- /dev/null +++ b/src/main/java/netneutrality/handler/ServerJoinHandler.java @@ -0,0 +1,21 @@ +package netneutrality.handler; + +/* + * Copyright (c) anthorob + * + * https://xtremcommunity.com/ + * https://discord.gg/CdFcyQ + */ + +import net.dv8tion.jda.core.events.guild.GuildJoinEvent; +import net.dv8tion.jda.core.hooks.ListenerAdapter; + +public class ServerJoinHandler extends ListenerAdapter { + + @Override + public void onGuildJoin(GuildJoinEvent event){ + + + + } +} diff --git a/src/main/java/netneutrality/http/server/WebApi.java b/src/main/java/netneutrality/http/server/WebApi.java index 2224b07..6aa372a 100644 --- a/src/main/java/netneutrality/http/server/WebApi.java +++ b/src/main/java/netneutrality/http/server/WebApi.java @@ -28,7 +28,7 @@ public class WebApi { server.createContext("/guild", new GuildBrowser()); server.setExecutor(null); server.start(); - MusicBot.LOGGER.debug("Web server started at [" + server.getAddress().getAddress().getAddress().toString() + "]"); + MusicBot.LOGGER.debug("Web server started at [" + server.getAddress().getAddress().toString() + "]"); } diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index e0516ea..9bc2e7f 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -2,7 +2,7 @@ - + diff --git a/src/test/java/netneutrality/db/MysqlDatabaseTest.java b/src/test/java/netneutrality/db/MysqlDatabaseTest.java new file mode 100644 index 0000000..f11bb4b --- /dev/null +++ b/src/test/java/netneutrality/db/MysqlDatabaseTest.java @@ -0,0 +1,30 @@ +package netneutrality.db; + +/* + * Copyright (c) anthorob + * + * https://xtremcommunity.com/ + * https://discord.gg/CdFcyQ + */ + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class MysqlDatabaseTest { + + MysqlDatabase db; + + @Before + public void setUp() throws Exception { + db = new MysqlDatabase("discord"); + } + + @Test + public void exists() { + + Assert.assertTrue(db.exists("settings", "skey", "prefix")); + } +}