diff --git a/src/main/java/netneutrality/db/MysqlDatabase.java b/src/main/java/netneutrality/db/MysqlDatabase.java index 531c038..6313543 100644 --- a/src/main/java/netneutrality/db/MysqlDatabase.java +++ b/src/main/java/netneutrality/db/MysqlDatabase.java @@ -111,11 +111,16 @@ public class MysqlDatabase { * @return a ResultSet object, which can be converted to an array using {@link #convertToArray(ResultSet)} * @throws SQLException */ - public ResultSet prepareAndExecute(String sql, Object... params) throws SQLException { - prepareString = sql; - query = connection.prepareStatement(sql); - resolveParameters(query, params); - return query.executeQuery(); + public ResultSet prepareAndExecute(String sql, Object... params) { + try { + query = connection.prepareStatement(sql); + resolveParameters(query, params); + return query.executeQuery(); + } catch (SQLException e) { + e.printStackTrace(); + } + + return null; } // @@ -245,21 +250,25 @@ public class MysqlDatabase { * @return a {@link MTableModel} with the appropriate column and rows * @throws SQLException */ - public MTableModel convertToTableModel(ResultSet rs) throws SQLException { + public static MTableModel convertToTableModel(ResultSet rs) { MTableModel table = new MTableModel(); - nbRow = getNbRowFromTable(prepareString); - ResultSetMetaData metadata = rs.getMetaData(); - for (int i = 1; i < metadata.getColumnCount() + 1; i++) { - table.addColumn(metadata.getColumnName(i)); - } - - while (rs.next()) { - MRowModel row = new MRowModel(); - for (int i = 0; i < metadata.getColumnCount(); i++) { - row.addColumnToRow(rs.getObject(i + 1)); + try { + ResultSetMetaData metadata = rs.getMetaData(); + for (int i = 1; i < metadata.getColumnCount() + 1; i++) { + table.addColumn(metadata.getColumnName(i)); } - table.addRow(row); + + while (rs.next()) { + MRowModel row = new MRowModel(); + for (int i = 0; i < metadata.getColumnCount(); i++) { + row.addColumnToRow(rs.getObject(i + 1)); + } + table.addRow(row); + } + + } catch (SQLException e) { + e.printStackTrace(); } return table; @@ -276,7 +285,7 @@ public class MysqlDatabase { return nbRow; } - private String findTable(String sql) { + private static String findTable(String sql) { int indexFrom = sql.indexOf("FROM") + 5; int indexWhere = sql.indexOf("WHERE") - 1; @@ -286,8 +295,8 @@ public class MysqlDatabase { return sql.substring(indexFrom, indexWhere); } - private int getNbRowFromTable(String sql) throws SQLException { - ResultSet nbRowRs = query("SELECT COUNT(*) FROM " + findTable(sql)); + private static int getNbRowFromTable(String sql) throws SQLException { + ResultSet nbRowRs = DBController.get().query("SELECT COUNT(*) FROM " + findTable(sql)); if (nbRowRs.next()) return nbRowRs.getInt(1); diff --git a/src/main/java/netneutrality/db/controllers/DBBlacklist.java b/src/main/java/netneutrality/db/controllers/DBBlacklist.java index 3679223..7841ece 100644 --- a/src/main/java/netneutrality/db/controllers/DBBlacklist.java +++ b/src/main/java/netneutrality/db/controllers/DBBlacklist.java @@ -108,7 +108,7 @@ public class DBBlacklist extends AbstractController { try { ResultSet rs = database.prepareAndExecute("SELECT * FROM blacklist WHERE serverId = ? AND isEnabled = 1", serverId); - MTableModel model = database.convertToTableModel(rs); + MTableModel model = MysqlDatabase.convertToTableModel(rs); if (model.getNbRows() != 0) { for (int row = 0; row < model.getNbRows(); row++) { @@ -119,8 +119,6 @@ public class DBBlacklist extends AbstractController { throw new RuntimeException("Blacklist is empty"); } - } catch (SQLException e) { - e.printStackTrace(); } catch (NullPointerException | IndexOutOfBoundsException ignored) { } success.accept(output); diff --git a/src/main/java/netneutrality/handler/EditHandler.java b/src/main/java/netneutrality/handler/EditHandler.java index 16b264c..c6b285b 100644 --- a/src/main/java/netneutrality/handler/EditHandler.java +++ b/src/main/java/netneutrality/handler/EditHandler.java @@ -6,6 +6,7 @@ import net.dv8tion.jda.core.EmbedBuilder; import net.dv8tion.jda.core.events.message.MessageUpdateEvent; import net.dv8tion.jda.core.hooks.ListenerAdapter; import netneutrality.db.DBController; +import netneutrality.db.MysqlDatabase; import netneutrality.db.controllers.DBMessage; import netneutrality.db.controllers.DBSettings; @@ -15,8 +16,8 @@ public class EditHandler extends ListenerAdapter { public void onMessageUpdate(MessageUpdateEvent event) { if (event.getAuthor().isBot()) return; - - String logChannel = ((DBSettings) DBController.get("settings")).getLoggingChannel(event.getGuild().getId()); + + Object logChannel = MysqlDatabase.convertToTableModel(DBController.get().prepareAndExecute("SELECT channelId FROM logging WHERE serverId = ? AND enabled = 1", event.getGuild().getId())).getRowModel(0).getItem(0); if (logChannel != null) { String originalMessage = ((DBMessage) DBController.get("message")).getMessageString(event.getMessage().getId()); ((DBMessage) DBController.get("message")).logEdit(event.getMessage().getId(), event.getMessage().getContentDisplay()); @@ -38,7 +39,7 @@ public class EditHandler extends ListenerAdapter { editEmbed.setFooter("ID : " + event.getMessageId(), null); editEmbed.setTimestamp(event.getMessage().getCreationTime()); - event.getJDA().getTextChannelById(logChannel).sendMessage(editEmbed.build()).queue(); + event.getJDA().getTextChannelById(logChannel.toString()).sendMessage(editEmbed.build()).queue(); }