diff --git a/pom.xml b/pom.xml index bfe2c10..207c412 100644 --- a/pom.xml +++ b/pom.xml @@ -3,22 +3,27 @@ 4.0.0 com.xtremcommunity.discord netneutrality - 0.0.1 - MusicBot - Music bot + 1.0.0 + netneutrality-discord-bot + Discord bot + jar - 1.8 - 1.8 + 1.11 + 1.11 - - https://gitlab.xtremcommunity.com/nn.jar - + - jcenter - http://jcenter.bintray.com + central + https://repo1.maven.org/maven2/ + + + + dv8tion + m2-dv8tion + https://m2.dv8tion.net/releases @@ -27,27 +32,27 @@ net.dv8tion JDA - 4.1.0_81 + 4.3.0_277 com.squareup.okhttp3 okhttp - 3.13.0 + 4.9.1 org.json json - 20180813 + 20210307 org.reflections reflections - 0.9.11 + 0.9.12 @@ -58,33 +63,33 @@ org.apache.logging.log4j log4j-api - 2.10.0 + 2.14.1 org.apache.logging.log4j log4j-core - 2.10.0 + 2.14.1 org.apache.logging.log4j log4j-slf4j-impl - 2.10.0 + 2.14.1 org.fusesource.jansi jansi - 1.17 + 2.3.4 runtime com.sedmelluq lavaplayer - 1.3.33 + 1.3.77 junit junit - RELEASE + 4.13.2 diff --git a/src/main/java/netneutrality/MusicBot.java b/src/main/java/netneutrality/MusicBot.java index b69c9ba..af727d1 100644 --- a/src/main/java/netneutrality/MusicBot.java +++ b/src/main/java/netneutrality/MusicBot.java @@ -26,10 +26,11 @@ public class MusicBot { public static void main(String[] args) { System.setProperty("log4j.skipJansi", "false"); + Settings.init(); DBController.init(); try { - jda = new JDABuilder(AccountType.BOT).setToken(Settings.TOKEN).build(); + jda = JDABuilder.createDefault(Settings.TOKEN).build(); jda.awaitReady(); } catch (LoginException | IllegalArgumentException e) { LogHandler.log(e); @@ -42,8 +43,7 @@ public class MusicBot { jda.addEventListener(new NewCommandListener(), new EditHandler()); // WebApi webserver = new WebApi(); - - jda.getPresence().setActivity(Activity.watching("rape")); + jda.getPresence().setActivity(Activity.watching("you")); ConsoleHandler consoleInput = new ConsoleHandler(); @@ -61,9 +61,9 @@ public class MusicBot { public static void shutdown() { LOGGER.info("[Net Neutrality] Shutting down..."); MusicManager.disconnectPlayers(); + ThreadManager.shutdownExecutor(); disconnect(); DBController.shutdown(); - ThreadManager.shutdownExecutor(); LOGGER.info("[Net Neutrality] Shutdown complete"); System.exit(0); } @@ -73,8 +73,10 @@ public class MusicBot { } public static void disconnect() { - if (jda != null) - jda.shutdown(); + if (jda != null) { + jda.shutdownNow(); + } + } diff --git a/src/main/java/netneutrality/ThreadManager.java b/src/main/java/netneutrality/ThreadManager.java index 4a4239c..379fcba 100644 --- a/src/main/java/netneutrality/ThreadManager.java +++ b/src/main/java/netneutrality/ThreadManager.java @@ -17,10 +17,13 @@ public class ThreadManager { public static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); public static void shutdownExecutor() { + MusicBot.LOGGER.info("[Executor] Shutting down..."); + try { - MusicBot.LOGGER.info("[Executor] Shutting down..."); executor.shutdown(); + scheduler.shutdown(); executor.awaitTermination(5, TimeUnit.SECONDS); + scheduler.awaitTermination(5, TimeUnit.SECONDS); } catch (InterruptedException e) { MusicBot.LOGGER.warn("[Executor] Running tasks interrupted"); @@ -28,9 +31,18 @@ public class ThreadManager { finally { if (!executor.isTerminated()) { MusicBot.LOGGER.warn("[Executor] Forcing shutdown of running tasks.."); + executor.shutdownNow(); } - executor.shutdownNow(); - MusicBot.LOGGER.info("[Executor] Shutdown finished!"); + + if (!scheduler.isTerminated()) { + MusicBot.LOGGER.warn("[Executor] Forcing shutdown of running tasks.."); + scheduler.shutdownNow(); + } + } + + MusicBot.LOGGER.info("[Executor] Shutdown finished!"); } + + } diff --git a/src/main/java/netneutrality/db/MysqlDatabase.java b/src/main/java/netneutrality/db/MysqlDatabase.java index 2de9858..3648e27 100644 --- a/src/main/java/netneutrality/db/MysqlDatabase.java +++ b/src/main/java/netneutrality/db/MysqlDatabase.java @@ -117,6 +117,7 @@ public class MysqlDatabase { private int executeUpdate(String sql, Object[] params) { + try { PreparedStatement query = connection.prepareStatement(sql); resolveParameters(query, params); @@ -142,7 +143,8 @@ public class MysqlDatabase { try { PreparedStatement query = connection.prepareStatement(sql); resolveParameters(query, params); - return query.executeQuery(); + ResultSet rs = query.executeQuery(); + return rs; } catch (SQLException e) { MusicBot.LOGGER.error(e.toString()); e.printStackTrace(); diff --git a/src/main/java/netneutrality/utils/Settings.java b/src/main/java/netneutrality/utils/Settings.java index 281a608..036ddbf 100644 --- a/src/main/java/netneutrality/utils/Settings.java +++ b/src/main/java/netneutrality/utils/Settings.java @@ -7,23 +7,40 @@ import netneutrality.MusicBot; import netneutrality.db.DBController; import netneutrality.db.controllers.DBSettings; +import java.io.*; +import java.util.Properties; + public class Settings { - public static final String DATETIMEFORMAT = "yyyy-MM-dd HH:mm:ss"; - public static String PREFIX = ((DBSettings) DBController.get("settings")).getSettingsByKey("prefix"); - public static final String TOKEN = ((DBSettings) DBController.get("settings")).getSettingsByKey("token"); + static Properties prop = new Properties(); + static String configFile = "bot.config"; - public static User getCreator() { - return MusicBot.getJDA().getUserById(((DBSettings) DBController.get("settings")).getSettingsByKey("owner")); - } + public static void init() { + InputStream is = Settings.class.getClassLoader().getResourceAsStream(configFile); + + try (FileInputStream fis = new FileInputStream(configFile)) { + prop.load(fis); + } catch (IOException ignored) { + + } + + } + + public static final String DATETIMEFORMAT = "yyyy-MM-dd HH:mm:ss"; + public static String PREFIX = prop.getProperty("bot.prefix"); + public static final String TOKEN = prop.getProperty("bot.token"); + + public static User getCreator() { + return MusicBot.getJDA().getUserById(prop.getProperty("bot.owner")); + } + + public static Guild getOwnerGuild() { + return MusicBot.getJDA().getGuildById(prop.getProperty("bot.ownerguild")); + } + + public static TextChannel getLogChannel() { + return MusicBot.getJDA().getTextChannelById(prop.getProperty("bot.errorchannel")); + } - public static Guild getOwnerGuild() { - return MusicBot.getJDA().getGuildById(((DBSettings) DBController.get("settings")).getSettingsByKey("ownerguild")); - } - public static TextChannel getLogChannel() { - return MusicBot.getJDA().getTextChannelById(((DBSettings) DBController.get("settings")).getSettingsByKey("errorchannel")); - } - - } diff --git a/src/main/resources/bot.config b/src/main/resources/bot.config new file mode 100644 index 0000000..e2460e0 --- /dev/null +++ b/src/main/resources/bot.config @@ -0,0 +1,5 @@ +bot.token="" +bot.prefix="$" +bot.owner="" +bot.ownerguild="" +bot.errorchannel="" \ No newline at end of file