Refactored code

This commit is contained in:
Anthony Robert committed 2019-03-17 16:22:28 -04:00
1 parent 32d65af2cc
commit b249e89b56
20 files changed
+177 -208

No files matched your search

@@ -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();
}
}
}
@@ -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()) {
@@ -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];
}
@@ -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"};
}
@@ -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"};
}
@@ -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"};
}
@@ -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";
}
@@ -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"};
}
@@ -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" };
}
@@ -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];
}
@@ -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;
}
@@ -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
*/
@@ -56,9 +56,7 @@ public class DBController {
public static void shutdown() {
try {
database.close();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (SQLException | NullPointerException ignored) { }
}
/**
@@ -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);
@@ -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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<MBlacklist> 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<ArrayList<MBlacklist>> success) {
ThreadManager.executor.submit(() -> {
ArrayList<MBlacklist> 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<Boolean> 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<Boolean> 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<Boolean> 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<MBlacklist> 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<ArrayList<MBlacklist>> success) {
ThreadManager.executor.submit(() -> {
ArrayList<MBlacklist> 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";
}
}
@@ -38,6 +38,10 @@ public class MRowModel {
}
}
public int count() {
return row.size();
}
@Override
public String toString() {
return row.toString();
@@ -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){
}
}
@@ -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() + "]");
}
+1 -1
View File
@@ -2,7 +2,7 @@
<Configuration status="WARN" xmlns="http://logging.apache.org/log4j/2.0/config">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] %msg%n" />
<PatternLayout pattern="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} %highlight{${LOG_LEVEL_PATTERN:-%5p}}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green, DEBUG=green bold, TRACE=blue} [%15.15t] %style{%-40.40C}{cyan} : %m%n" />
</Console>
</Appenders>
<Loggers>
@@ -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"));
}
}