From 0cccb6dedfa37182de7768c57dc013d973c13758 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sat, 2 Jun 2018 07:59:42 +0300 Subject: [PATCH] Made all database methods throw runtime exceptions instead --- .../com/djrapitops/plan/ShutdownHook.java | 5 +- .../com/djrapitops/plan/api/CommonAPI.java | 4 +- .../connection/TransferDatabaseException.java | 4 +- .../exceptions/database/DBOpException.java | 16 + .../plan/command/commands/InspectCommand.java | 16 +- .../command/commands/ListServersCommand.java | 4 +- .../command/commands/QInspectCommand.java | 11 +- .../plan/command/commands/SearchCommand.java | 5 + .../plan/command/commands/UpdateCommand.java | 8 +- .../commands/manage/ManageClearCommand.java | 16 +- .../manage/ManageConDebugCommand.java | 29 +- .../commands/manage/ManageRemoveCommand.java | 4 +- .../plan/system/cache/DataCache.java | 18 +- .../plan/system/cache/SessionCache.java | 4 +- .../databases/operation/BackupOperations.java | 7 +- .../databases/operation/CheckOperations.java | 11 +- .../databases/operation/CountOperations.java | 6 +- .../databases/operation/FetchOperations.java | 71 ++- .../databases/operation/RemoveOperations.java | 12 +- .../databases/operation/SaveOperations.java | 48 +- .../databases/operation/SearchOperations.java | 4 +- .../operation/TransferOperations.java | 8 +- .../system/database/databases/sql/SQLDB.java | 77 +++- .../databases/sql/operation/SQLBackupOps.java | 6 +- .../databases/sql/operation/SQLCheckOps.java | 36 +- .../databases/sql/operation/SQLCountOps.java | 18 +- .../databases/sql/operation/SQLFetchOps.java | 423 ++++++------------ .../databases/sql/operation/SQLRemoveOps.java | 61 +-- .../databases/sql/operation/SQLSaveOps.java | 178 ++------ .../databases/sql/operation/SQLSearchOps.java | 10 +- .../sql/operation/SQLTransferOps.java | 26 +- .../databases/sql/tables/ActionsTable.java | 11 +- .../databases/sql/tables/CommandUseTable.java | 18 +- .../databases/sql/tables/GeoInfoTable.java | 54 ++- .../databases/sql/tables/KillsTable.java | 16 +- .../databases/sql/tables/NicknamesTable.java | 46 +- .../databases/sql/tables/SecurityTable.java | 14 +- .../databases/sql/tables/ServerTable.java | 34 +- .../databases/sql/tables/SessionsTable.java | 71 ++- .../databases/sql/tables/TPSTable.java | 24 +- .../database/databases/sql/tables/Table.java | 77 ++-- .../databases/sql/tables/TransferTable.java | 8 +- .../databases/sql/tables/UserIDTable.java | 2 +- .../databases/sql/tables/UserInfoTable.java | 28 +- .../databases/sql/tables/UsersTable.java | 89 ++-- .../databases/sql/tables/VersionTable.java | 7 +- .../databases/sql/tables/WorldTable.java | 29 +- .../databases/sql/tables/WorldTimesTable.java | 17 +- .../sql/tables/move/BatchOperationTable.java | 62 ++- .../sql/tables/move/TransferTable.java | 6 +- .../tables/move/Version18TransferTable.java | 9 +- .../tables/move/Version8TransferTable.java | 11 +- .../connection/BungeeConnectionSystem.java | 4 +- .../system/info/connection/ConnectionIn.java | 4 +- .../info/connection/ConnectionSystem.java | 4 +- .../connection/ServerConnectionSystem.java | 15 +- .../system/info/server/BukkitServerInfo.java | 24 +- .../processors/CommandProcessor.java | 8 +- .../processors/TPSInsertProcessor.java | 8 +- .../processors/player/BanAndOpProcessor.java | 12 +- .../player/BungeePlayerRegisterProcessor.java | 4 - .../player/FirstLeaveProcessor.java | 4 - .../processors/player/IPUpdateProcessor.java | 3 +- .../processors/player/KickProcessor.java | 8 +- .../processors/player/NameProcessor.java | 26 +- .../processors/player/RegisterProcessor.java | 4 - .../webserver/auth/BasicAuthentication.java | 4 +- .../webserver/pages/PlayerPageHandler.java | 7 - .../webserver/pages/ServerPageHandler.java | 4 - .../response/pages/DebugPageResponse.java | 4 +- .../response/pages/PlayersPageResponse.java | 6 +- .../djrapitops/plan/utilities/MiscUtils.java | 10 +- .../utilities/file/export/HtmlExport.java | 26 +- .../plan/utilities/html/HtmlStructure.java | 6 +- .../plan/utilities/uuid/UUIDUtility.java | 11 +- .../system/database/databases/SQLiteTest.java | 175 ++++---- .../plan/utilities/MiscUtilsTest.java | 4 +- 77 files changed, 871 insertions(+), 1293 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/ShutdownHook.java b/Plan/src/main/java/com/djrapitops/plan/ShutdownHook.java index 5ea31ebc5..3897cc53c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ShutdownHook.java +++ b/Plan/src/main/java/com/djrapitops/plan/ShutdownHook.java @@ -6,6 +6,7 @@ package com.djrapitops.plan; import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.Actions; import com.djrapitops.plan.data.container.Action; import com.djrapitops.plan.data.container.Session; @@ -81,7 +82,7 @@ public class ShutdownHook extends Thread { UUID uuid = entry.getKey(); int messagesSent = entry.getValue(); db.save().action(uuid, new Action(now, Actions.FIRST_LOGOUT, "Messages sent: " + messagesSent)); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } } @@ -101,7 +102,7 @@ public class ShutdownHook extends Thread { try { Log.debug("Shutdown: Saving a session: " + session.getSessionStart()); db.save().session(uuid, session); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/api/CommonAPI.java b/Plan/src/main/java/com/djrapitops/plan/api/CommonAPI.java index 0d1d12826..13c599a5b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/CommonAPI.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/CommonAPI.java @@ -4,7 +4,7 @@ */ package com.djrapitops.plan.api; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.utilities.uuid.UUIDUtility; import com.djrapitops.plugin.api.utility.log.Log; @@ -38,7 +38,7 @@ public abstract class CommonAPI implements PlanAPI { public Map getKnownPlayerNames() { try { return fetchFromPlanDB().getPlayerNames(); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); return new HashMap<>(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/TransferDatabaseException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/TransferDatabaseException.java index 68fae09d6..6a08b8929 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/TransferDatabaseException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/connection/TransferDatabaseException.java @@ -4,8 +4,6 @@ */ package com.djrapitops.plan.api.exceptions.connection; -import com.djrapitops.plan.api.exceptions.database.DBException; - /** * Thrown when DBException occurs during InfoRequest#placeIntoDatabase. * @@ -13,7 +11,7 @@ import com.djrapitops.plan.api.exceptions.database.DBException; */ public class TransferDatabaseException extends WebException { - public TransferDatabaseException(DBException cause) { + public TransferDatabaseException(Exception cause) { super(cause); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/database/DBOpException.java b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/database/DBOpException.java index 30b908273..5a1a897c1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/exceptions/database/DBOpException.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/exceptions/database/DBOpException.java @@ -1,5 +1,7 @@ package com.djrapitops.plan.api.exceptions.database; +import java.sql.SQLException; + /** * Runtime exception for wrapping database errors. * @@ -7,6 +9,8 @@ package com.djrapitops.plan.api.exceptions.database; */ public class DBOpException extends RuntimeException { + private boolean fatal = false; + public DBOpException(String message) { super(message); } @@ -14,4 +18,16 @@ public class DBOpException extends RuntimeException { public DBOpException(String message, Throwable cause) { super(message, cause); } + + public static DBOpException forCause(String sql, SQLException e) { + return new DBOpException("SQL Failed: " + sql + "; " + e.getMessage(), e); + } + + public boolean isFatal() { + return fatal; + } + + public void setFatal(boolean fatal) { + this.fatal = fatal; + } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java index 36c340016..0759200b9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java @@ -1,7 +1,6 @@ package com.djrapitops.plan.command.commands; -import com.djrapitops.plan.api.exceptions.database.DBException; -import com.djrapitops.plan.api.exceptions.database.FatalDBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.Processing; import com.djrapitops.plan.system.processing.processors.info.InspectCacheRequestProcessor; @@ -68,12 +67,13 @@ public class InspectCommand extends CommandNode { } } Processing.submit(new InspectCacheRequestProcessor(uuid, sender, playerName)); - } catch (FatalDBException ex) { - Log.toLog(this.getClass(), ex); - sender.sendMessage("§cFatal database exception occurred: " + ex.getMessage()); - } catch (DBException ex) { - Log.toLog(this.getClass(), ex); - sender.sendMessage("§eNon-Fatal database exception occurred: " + ex.getMessage()); + } catch (DBOpException e) { + if (e.isFatal()) { + sender.sendMessage("§cFatal database exception occurred: " + e.getMessage()); + } else { + sender.sendMessage("§eNon-Fatal database exception occurred: " + e.getMessage()); + } + Log.toLog(this.getClass(), e); } finally { this.cancel(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/ListServersCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/ListServersCommand.java index cd147a0eb..af56e3564 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/ListServersCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/ListServersCommand.java @@ -1,7 +1,7 @@ package com.djrapitops.plan.command.commands; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plan.system.settings.Permissions; @@ -44,7 +44,7 @@ public class ListServersCommand extends CommandNode { sender.sendMessage(" " + tCol + server.getId() + sCol + " : " + server.getName() + " : " + server.getWebAddress()); } sender.sendMessage(Locale.get(Msg.CMD_CONSTANT_FOOTER).toString()); - } catch (DBException e) { + } catch (DBOpException e) { sender.sendMessage("§cDatabase Exception occurred."); Log.toLog(this.getClass(), e); } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/QInspectCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/QInspectCommand.java index a600d2b28..59355cd14 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/QInspectCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/QInspectCommand.java @@ -1,7 +1,7 @@ package com.djrapitops.plan.command.commands; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.PlayerProfile; import com.djrapitops.plan.data.calculation.ActivityIndex; import com.djrapitops.plan.system.database.databases.Database; @@ -73,8 +73,13 @@ public class QInspectCommand extends CommandNode { PlayerProfile playerProfile = database.fetch().getPlayerProfile(uuid); sendMessages(sender, playerProfile); - } catch (DBException ex) { - Log.toLog(this.getClass(), ex); + } catch (DBOpException e) { + if (e.isFatal()) { + sender.sendMessage("§cFatal database exception occurred: " + e.getMessage()); + } else { + sender.sendMessage("§eNon-Fatal database exception occurred: " + e.getMessage()); + } + Log.toLog(this.getClass(), e); } finally { this.cancel(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java index c36eaf12e..f8ee36c69 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java @@ -1,9 +1,11 @@ package com.djrapitops.plan.command.commands; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.settings.Permissions; import com.djrapitops.plan.system.settings.locale.Locale; import com.djrapitops.plan.system.settings.locale.Msg; import com.djrapitops.plan.utilities.MiscUtils; +import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.command.CommandNode; import com.djrapitops.plugin.command.CommandType; import com.djrapitops.plugin.command.ISender; @@ -57,6 +59,9 @@ public class SearchCommand extends CommandNode { } sender.sendMessage(Locale.get(Msg.CMD_CONSTANT_FOOTER).toString()); + } catch (DBOpException e) { + sender.sendMessage("§cDatabase error occurred: " + e.getMessage()); + Log.toLog(this.getClass(), e); } finally { this.cancel(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/UpdateCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/UpdateCommand.java index a12ffd7ea..c8a499f0a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/UpdateCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/UpdateCommand.java @@ -1,7 +1,7 @@ package com.djrapitops.plan.command.commands; import com.djrapitops.plan.api.exceptions.connection.*; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.command.commands.manage.ManageConDebugCommand; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.database.databases.operation.FetchOperations; @@ -101,7 +101,7 @@ public class UpdateCommand extends CommandNode { try { cancel(sender, Database.getActive().fetch().getServers()); sender.sendMessage("§aCancel operation performed."); - } catch (DBException e) { + } catch (DBOpException e) { sender.sendMessage("§cDatabase error occurred, cancel could not be performed."); Log.toLog(this.getClass().getName(), e); } @@ -120,7 +120,7 @@ public class UpdateCommand extends CommandNode { try { List servers = Database.getActive().fetch().getServers(); update(sender, servers, args); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass().getName(), e); } } @@ -228,7 +228,7 @@ public class UpdateCommand extends CommandNode { success = false; } return success; - } catch (DBException e) { + } catch (DBOpException e) { sender.sendMessage("§cDatabase error occurred, update has been cancelled."); Log.toLog(this.getClass().getName(), e); return false; diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java index b42b4b419..197064c6f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java @@ -1,8 +1,7 @@ package com.djrapitops.plan.command.commands.manage; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.api.exceptions.database.DBInitException; -import com.djrapitops.plan.api.exceptions.database.FatalDBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.DBSystem; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.settings.Permissions; @@ -66,12 +65,13 @@ public class ManageClearCommand extends CommandNode { database.remove().everything(); sender.sendMessage(Locale.get(Msg.MANAGE_INFO_CLEAR_SUCCESS).toString()); - } catch (FatalDBException e) { - sender.sendMessage(Locale.get(Msg.MANAGE_INFO_FAIL).toString() - + " Error was fatal, so all information may not have been removed."); - Log.toLog(this.getClass(), e); - } catch (DBException e) { - sender.sendMessage(Locale.get(Msg.MANAGE_INFO_FAIL).toString()); + } catch (DBOpException e) { + if (e.isFatal()) { + sender.sendMessage(Locale.get(Msg.MANAGE_INFO_FAIL).toString() + + " Error was fatal, so all information may not have been removed."); + } else { + sender.sendMessage(Locale.get(Msg.MANAGE_INFO_FAIL).toString()); + } Log.toLog(this.getClass(), e); } finally { this.cancel(); diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java index 7414538e8..2c95c27e2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java @@ -2,7 +2,6 @@ package com.djrapitops.plan.command.commands.manage; import com.djrapitops.plan.PlanPlugin; import com.djrapitops.plan.api.exceptions.connection.*; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.InfoSystem; import com.djrapitops.plan.system.info.request.CheckConnectionRequest; @@ -11,7 +10,6 @@ import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plan.system.processing.Processing; import com.djrapitops.plan.system.settings.Permissions; import com.djrapitops.plan.system.webserver.WebServerSystem; -import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.command.CommandNode; import com.djrapitops.plugin.command.CommandType; import com.djrapitops.plugin.command.ISender; @@ -44,24 +42,19 @@ public class ManageConDebugCommand extends CommandNode { } private void testServers(ISender sender) { - try { - List servers = Database.getActive().fetch().getServers(); + List servers = Database.getActive().fetch().getServers(); - if (servers.isEmpty()) { - sender.sendMessage("§cNo Servers found in the database."); + if (servers.isEmpty()) { + sender.sendMessage("§cNo Servers found in the database."); + } + + String accessAddress = WebServerSystem.getInstance().getWebServer().getAccessAddress(); + UUID thisServer = ServerInfo.getServerUUID(); + for (Server server : servers) { + if (thisServer.equals(server.getUuid())) { + continue; } - - String accessAddress = WebServerSystem.getInstance().getWebServer().getAccessAddress(); - UUID thisServer = ServerInfo.getServerUUID(); - for (Server server : servers) { - if (thisServer.equals(server.getUuid())) { - continue; - } - testServer(sender, accessAddress, server); - } - - } catch (DBException e) { - Log.toLog(this.getClass().getName(), e); + testServer(sender, accessAddress, server); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java index bc4ee44ab..f7ed4ba4d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java @@ -1,6 +1,6 @@ package com.djrapitops.plan.command.commands.manage; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.settings.Permissions; import com.djrapitops.plan.system.settings.locale.Locale; @@ -70,7 +70,7 @@ public class ManageRemoveCommand extends CommandNode { database.remove().player(uuid); sender.sendMessage(Locale.get(Msg.MANAGE_INFO_REMOVE_SUCCESS).parse(playerName, Database.getActive().getConfigName())); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); sender.sendMessage(Locale.get(Msg.MANAGE_INFO_FAIL).toString()); } finally { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/cache/DataCache.java b/Plan/src/main/java/com/djrapitops/plan/system/cache/DataCache.java index ceeaf749e..8039ad9cc 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/cache/DataCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/cache/DataCache.java @@ -1,6 +1,6 @@ package com.djrapitops.plan.system.cache; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.PlanSystem; import com.djrapitops.plan.system.SubSystem; import com.djrapitops.plan.system.database.databases.Database; @@ -69,18 +69,6 @@ public class DataCache extends SessionCache implements SubSystem { } } - public void cacheSavedNames() { - try { - Map playerNames = db.fetch().getPlayerNames(); - this.playerNames.putAll(playerNames); - for (Map.Entry entry : playerNames.entrySet()) { - uuids.put(entry.getValue(), entry.getKey()); - } - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } - } - /** * Used to get the player name in the cache. * @@ -93,7 +81,7 @@ public class DataCache extends SessionCache implements SubSystem { try { name = db.fetch().getPlayerName(uuid); playerNames.put(uuid, name); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); name = "Error occurred"; } @@ -118,7 +106,7 @@ public class DataCache extends SessionCache implements SubSystem { if (!nicknames.isEmpty()) { return nicknames.get(nicknames.size() - 1); } - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java b/Plan/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java index a13f3d62a..7981571a1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java @@ -1,6 +1,6 @@ package com.djrapitops.plan.system.cache; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.system.PlanSystem; import com.djrapitops.plan.system.database.databases.Database; @@ -61,7 +61,7 @@ public class SessionCache { } session.endSession(time); Database.getActive().save().session(uuid, session); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } finally { activeSessions.remove(uuid); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/BackupOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/BackupOperations.java index 8c2e76b44..f5f0375f8 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/BackupOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/BackupOperations.java @@ -1,14 +1,11 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; -import java.sql.SQLException; - public interface BackupOperations { - void backup(Database toDatabase) throws SQLException; + void backup(Database toDatabase); - void restore(Database fromDatabase) throws DBException, SQLException; + void restore(Database fromDatabase); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CheckOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CheckOperations.java index c58e4f3b2..3a61a83e5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CheckOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CheckOperations.java @@ -1,21 +1,20 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.info.server.ServerInfo; import java.util.UUID; public interface CheckOperations { - boolean isPlayerRegistered(UUID player) throws DBException; + boolean isPlayerRegistered(UUID player); - boolean isPlayerRegistered(UUID player, UUID server) throws DBException; + boolean isPlayerRegistered(UUID player, UUID server); - boolean doesWebUserExists(String username) throws DBException; + boolean doesWebUserExists(String username); - default boolean isPlayerRegisteredOnThisServer(UUID player) throws DBException { + default boolean isPlayerRegisteredOnThisServer(UUID player) { return isPlayerRegistered(player, ServerInfo.getServerUUID()); } - boolean isServerInDatabase(UUID serverUUID) throws DBException; + boolean isServerInDatabase(UUID serverUUID); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CountOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CountOperations.java index 8ab728d06..49d7a5994 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CountOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/CountOperations.java @@ -1,12 +1,10 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; - import java.util.UUID; public interface CountOperations { - int getServerPlayerCount(UUID server) throws DBException; + int getServerPlayerCount(UUID server); - int getNetworkPlayerCount() throws DBException; + int getNetworkPlayerCount(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/FetchOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/FetchOperations.java index 6dfd0d144..22693cd05 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/FetchOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/FetchOperations.java @@ -1,6 +1,5 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.PlayerProfile; import com.djrapitops.plan.data.ServerProfile; import com.djrapitops.plan.data.WebUser; @@ -14,83 +13,83 @@ public interface FetchOperations { // Profiles - ServerProfile getServerProfile(UUID serverUUID) throws DBException; + ServerProfile getServerProfile(UUID serverUUID); - List getPlayers(UUID serverUUID) throws DBException; + List getPlayers(UUID serverUUID); - PlayerProfile getPlayerProfile(UUID uuid) throws DBException; + PlayerProfile getPlayerProfile(UUID uuid); // UUIDs PlayerContainer getPlayerContainer(UUID uuid); - Set getSavedUUIDs() throws DBException; + Set getSavedUUIDs(); - Set getSavedUUIDs(UUID server) throws DBException; + Set getSavedUUIDs(UUID server); - Map getServerNames() throws DBException; + Map getServerNames(); - Optional getServerUUID(String serverName) throws DBException; + Optional getServerUUID(String serverName); - UUID getUuidOf(String playerName) throws DBException; + UUID getUuidOf(String playerName); // WebUsers - WebUser getWebUser(String username) throws DBException; + WebUser getWebUser(String username); // Servers - Optional getServerName(UUID serverUUID) throws DBException; + Optional getServerName(UUID serverUUID); - Optional getBungeeInformation() throws DBException; + Optional getBungeeInformation(); - Optional getServerID(UUID serverUUID) throws DBException; + Optional getServerID(UUID serverUUID); // Raw Data - List getTPSData(UUID serverUUID) throws DBException; + List getTPSData(UUID serverUUID); - List getNetworkOnlineData() throws DBException; + List getNetworkOnlineData(); - List getRegisterDates() throws DBException; + List getRegisterDates(); - Optional getAllTimePeak(UUID serverUUID) throws DBException; + Optional getAllTimePeak(UUID serverUUID); - Optional getPeakPlayerCount(UUID serverUUID, long afterDate) throws DBException; + Optional getPeakPlayerCount(UUID serverUUID, long afterDate); - Map>> getSessionsWithNoExtras() throws DBException; + Map>> getSessionsWithNoExtras(); - Map>> getSessionsAndExtras() throws DBException; + Map>> getSessionsAndExtras(); - Set getWorldNames(UUID serverUuid) throws DBException; + Set getWorldNames(UUID serverUuid); - List getNicknamesOfPlayerOnServer(UUID uuid, UUID serverUUID) throws DBException; + List getNicknamesOfPlayerOnServer(UUID uuid, UUID serverUUID); - List getActions(UUID uuid) throws DBException; + List getActions(UUID uuid); - Map getUsers() throws DBException; + Map getUsers(); - Map getLastSeenForAllPlayers() throws DBException; + Map getLastSeenForAllPlayers(); - Map> getAllGeoInfo() throws DBException; + Map> getAllGeoInfo(); - Map getPlayerNames() throws DBException; + Map getPlayerNames(); - String getPlayerName(UUID playerUUID) throws DBException; + String getPlayerName(UUID playerUUID); - List getNicknames(UUID uuid) throws DBException; + List getNicknames(UUID uuid); - Map getBukkitServers() throws DBException; + Map getBukkitServers(); - List getWebUsers() throws DBException; + List getWebUsers(); - Map getServerNamesByID() throws DBException; + Map getServerNamesByID(); - Map>> getSessionsInLastMonth() throws DBException; + Map>> getSessionsInLastMonth(); - List getServers() throws DBException; + List getServers(); - List getServerUUIDs() throws DBException; + List getServerUUIDs(); - List getNetworkGeolocations() throws DBException; + List getNetworkGeolocations(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/RemoveOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/RemoveOperations.java index 672351821..4f2beec10 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/RemoveOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/RemoveOperations.java @@ -1,18 +1,12 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; - import java.util.UUID; public interface RemoveOperations { - void player(UUID uuid) throws DBException; + void player(UUID uuid); - void player(UUID player, UUID server) throws DBException; + void everything(); - void server(UUID serverUUID) throws DBException; - - void everything() throws DBException; - - void webUser(String name) throws DBException; + void webUser(String name); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java index 29c3ff5a8..fdda1dc7f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java @@ -4,7 +4,6 @@ */ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.data.container.*; import com.djrapitops.plan.system.info.server.Server; @@ -15,7 +14,7 @@ import java.util.UUID; /** * Operation methods for saving data. - * + *

* Note: Method names subject to change (TODO remove insert update and such) * * @author Rsl1122 @@ -24,50 +23,49 @@ public interface SaveOperations { // Bulk save - void insertTPS(Map> ofServers) throws DBException; + void insertTPS(Map> ofServers); - void insertCommandUsage(Map> ofServers) throws DBException; + void insertCommandUsage(Map> ofServers); - void insertUsers(Map ofServers) throws DBException; + void insertUsers(Map ofServers); - void insertSessions(Map>> ofServers, boolean containsExtraData) - throws DBException; + void insertSessions(Map>> ofServers, boolean containsExtraData); - void kickAmount(Map ofUsers) throws DBException; + void kickAmount(Map ofUsers); - void insertUserInfo(Map> ofServers) throws DBException; + void insertUserInfo(Map> ofServers); - void insertNicknames(Map>> ofServers) throws DBException; + void insertNicknames(Map>> ofServers); - void insertAllGeoInfo(Map> ofUsers) throws DBException; + void insertAllGeoInfo(Map> ofUsers); // Single data point - void banStatus(UUID uuid, boolean banned) throws DBException; + void banStatus(UUID uuid, boolean banned); - void opStatus(UUID uuid, boolean op) throws DBException; + void opStatus(UUID uuid, boolean op); - void registerNewUser(UUID uuid, long registered, String name) throws DBException; + void registerNewUser(UUID uuid, long registered, String name); - void action(UUID uuid, Action action) throws DBException; + void action(UUID uuid, Action action); - void geoInfo(UUID uuid, GeoInfo geoInfo) throws DBException; + void geoInfo(UUID uuid, GeoInfo geoInfo); - void playerWasKicked(UUID uuid) throws DBException; + void playerWasKicked(UUID uuid); - void playerName(UUID uuid, String playerName) throws DBException; + void playerName(UUID uuid, String playerName); - void playerDisplayName(UUID uuid, String displayName) throws DBException; + void playerDisplayName(UUID uuid, String displayName); - void registerNewUserOnThisServer(UUID uuid, long registered) throws DBException; + void registerNewUserOnThisServer(UUID uuid, long registered); - void commandUsed(String commandName) throws DBException; + void commandUsed(String commandName); - void insertTPSforThisServer(TPS tps) throws DBException; + void insertTPSforThisServer(TPS tps); - void session(UUID uuid, Session session) throws DBException; + void session(UUID uuid, Session session); - void serverInfoForThisServer(Server server) throws DBException; + void serverInfoForThisServer(Server server); - void webUser(WebUser webUser) throws DBException; + void webUser(WebUser webUser); } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SearchOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SearchOperations.java index a4662b1e3..c2c3a6a0c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SearchOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/SearchOperations.java @@ -1,11 +1,9 @@ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; - import java.util.List; public interface SearchOperations { - List matchingPlayers(String search) throws DBException; + List matchingPlayers(String search); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/TransferOperations.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/TransferOperations.java index add26f022..8c7f3e3fc 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/TransferOperations.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/operation/TransferOperations.java @@ -4,8 +4,6 @@ */ package com.djrapitops.plan.system.database.databases.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; - import java.util.Optional; import java.util.UUID; @@ -20,12 +18,12 @@ public interface TransferOperations { // Save - void storeConfigSettings(String encodedSettingString) throws DBException; + void storeConfigSettings(String encodedSettingString); // Get @Deprecated - Optional getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException; + Optional getServerPlayerIsOnlineOn(UUID playerUUID); - Optional getEncodedConfigSettings() throws DBException; + Optional getEncodedConfigSettings(); } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/SQLDB.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/SQLDB.java index bdc6ccb70..b85d0e3c5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/SQLDB.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/SQLDB.java @@ -1,10 +1,12 @@ package com.djrapitops.plan.system.database.databases.sql; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.database.databases.operation.*; import com.djrapitops.plan.system.database.databases.sql.operation.*; +import com.djrapitops.plan.system.database.databases.sql.processing.ExecStatement; +import com.djrapitops.plan.system.database.databases.sql.processing.QueryStatement; import com.djrapitops.plan.system.database.databases.sql.tables.*; import com.djrapitops.plan.system.database.databases.sql.tables.move.Version8TransferTable; import com.djrapitops.plan.system.settings.Settings; @@ -16,6 +18,7 @@ import com.djrapitops.plugin.task.RunnableFactory; import org.apache.commons.dbcp2.BasicDataSource; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import java.util.Map; @@ -115,7 +118,7 @@ public abstract class SQLDB extends Database { if (isOpen()) { clean(); } - } catch (SQLException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); cancel(); } @@ -151,7 +154,7 @@ public abstract class SQLDB extends Database { public void run() { try { new Version8TransferTable(db).alterTablesToV10(); - } catch (DBInitException | SQLException e) { + } catch (DBInitException | DBOpException e) { Log.toLog(this.getClass(), e); } } @@ -191,7 +194,7 @@ public abstract class SQLDB extends Database { geoInfoTable.alterTableV18(); // version set in the runnable in above method } - } catch (SQLException e) { + } catch (DBOpException e) { throw new DBInitException("Failed to set-up Database", e); } } @@ -249,15 +252,15 @@ public abstract class SQLDB extends Database { } } - public int getVersion() throws SQLException { + public int getVersion() { return versionTable.getVersion(); } - public void setVersion(int version) throws SQLException { + public void setVersion(int version) { versionTable.setVersion(version); } - private void clean() throws SQLException { + private void clean() { tpsTable.clean(); transferTable.clean(); geoInfoTable.clean(); @@ -270,11 +273,7 @@ public abstract class SQLDB extends Database { .map(Map.Entry::getKey) .collect(Collectors.toList()); for (UUID uuid : inactivePlayers) { - try { - removeOps.player(uuid); - } catch (DBException e) { - Log.toLog(this.getClass().getName(), e); - } + removeOps.player(uuid); } int removed = inactivePlayers.size(); if (removed > 0) { @@ -289,7 +288,7 @@ public abstract class SQLDB extends Database { *

* MySQL has Auto Commit enabled. */ - public void commit(Connection connection) throws SQLException { + public void commit(Connection connection) { try { if (!usingMySQL) { connection.commit(); @@ -303,9 +302,13 @@ public abstract class SQLDB extends Database { } } - public void returnToPool(Connection connection) throws SQLException { - if (usingMySQL && connection != null) { - connection.close(); + public void returnToPool(Connection connection) { + try { + if (usingMySQL && connection != null) { + connection.close(); + } + } catch (SQLException e) { + Log.toLog(this.getClass(), e); } } @@ -324,6 +327,48 @@ public abstract class SQLDB extends Database { } } + public boolean execute(ExecStatement statement) { + Connection connection = null; + try { + connection = getConnection(); + try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { + return statement.execute(preparedStatement); + } + } catch (SQLException e) { + throw DBOpException.forCause(statement.getSql(), e); + } finally { + commit(connection); + } + } + + public void executeBatch(ExecStatement statement) { + Connection connection = null; + try { + connection = getConnection(); + try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { + statement.executeBatch(preparedStatement); + } + } catch (SQLException e) { + throw DBOpException.forCause(statement.getSql(), e); + } finally { + commit(connection); + } + } + + public T query(QueryStatement statement) { + Connection connection = null; + try { + connection = getConnection(); + try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { + return statement.executeQuery(preparedStatement); + } + } catch (SQLException e) { + throw DBOpException.forCause(statement.getSql(), e); + } finally { + returnToPool(connection); + } + } + public UsersTable getUsersTable() { return usersTable; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLBackupOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLBackupOps.java index e20d168cd..801ddb68a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLBackupOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLBackupOps.java @@ -5,8 +5,6 @@ import com.djrapitops.plan.system.database.databases.operation.BackupOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.tables.move.BatchOperationTable; -import java.sql.SQLException; - public class SQLBackupOps extends SQLOps implements BackupOperations { public SQLBackupOps(SQLDB db) { @@ -14,7 +12,7 @@ public class SQLBackupOps extends SQLOps implements BackupOperations { } @Override - public void backup(Database toDatabase) throws SQLException { + public void backup(Database toDatabase) { BatchOperationTable toDB = new BatchOperationTable((SQLDB) toDatabase); BatchOperationTable fromDB = new BatchOperationTable(db); @@ -23,7 +21,7 @@ public class SQLBackupOps extends SQLOps implements BackupOperations { } @Override - public void restore(Database fromDatabase) throws SQLException { + public void restore(Database fromDatabase) { fromDatabase.backup().backup(db); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCheckOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCheckOps.java index a496a03ef..121d9c961 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCheckOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCheckOps.java @@ -1,11 +1,9 @@ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.operation.CheckOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.info.server.ServerInfo; -import java.sql.SQLException; import java.util.UUID; public class SQLCheckOps extends SQLOps implements CheckOperations { @@ -15,43 +13,27 @@ public class SQLCheckOps extends SQLOps implements CheckOperations { } @Override - public boolean isPlayerRegistered(UUID player) throws DBException { - try { - return usersTable.isRegistered(player); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public boolean isPlayerRegistered(UUID player) { + return usersTable.isRegistered(player); } @Override - public boolean isPlayerRegistered(UUID player, UUID server) throws DBException { - try { - return userInfoTable.isRegistered(player, server); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public boolean isPlayerRegistered(UUID player, UUID server) { + return userInfoTable.isRegistered(player, server); } @Override - public boolean doesWebUserExists(String username) throws DBException { - try { - return securityTable.userExists(username); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public boolean doesWebUserExists(String username) { + return securityTable.userExists(username); } @Override - public boolean isPlayerRegisteredOnThisServer(UUID player) throws DBException { + public boolean isPlayerRegisteredOnThisServer(UUID player) { return isPlayerRegistered(player, ServerInfo.getServerUUID()); } @Override - public boolean isServerInDatabase(UUID serverUUID) throws DBException { - try { - return serverTable.getServerID(serverUUID).isPresent(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public boolean isServerInDatabase(UUID serverUUID) { + return serverTable.getServerID(serverUUID).isPresent(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCountOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCountOps.java index 7d544aca9..6faad1a66 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCountOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLCountOps.java @@ -1,10 +1,8 @@ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.operation.CountOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; -import java.sql.SQLException; import java.util.UUID; public class SQLCountOps extends SQLOps implements CountOperations { @@ -14,20 +12,12 @@ public class SQLCountOps extends SQLOps implements CountOperations { } @Override - public int getServerPlayerCount(UUID server) throws DBException { - try { - return userInfoTable.getServerUserCount(server); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public int getServerPlayerCount(UUID server) { + return userInfoTable.getServerUserCount(server); } @Override - public int getNetworkPlayerCount() throws DBException { - try { - return usersTable.getPlayerCount(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public int getNetworkPlayerCount() { + return usersTable.getPlayerCount(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java index f77b9043a..caf9ce904 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java @@ -1,7 +1,5 @@ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; -import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.PlayerProfile; import com.djrapitops.plan.data.ServerProfile; import com.djrapitops.plan.data.WebUser; @@ -13,7 +11,6 @@ import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plugin.api.TimeAmount; -import java.sql.SQLException; import java.util.*; public class SQLFetchOps extends SQLOps implements FetchOperations { @@ -23,116 +20,91 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { } @Override - public ServerProfile getServerProfile(UUID serverUUID) throws DBException { - try { - ServerProfile profile = new ServerProfile(serverUUID); + public ServerProfile getServerProfile(UUID serverUUID) { + ServerProfile profile = new ServerProfile(serverUUID); - profile.setPlayers(getPlayers(serverUUID)); - profile.setTps(tpsTable.getTPSData(serverUUID)); - Optional allTimePeak = tpsTable.getAllTimePeak(serverUUID); - allTimePeak.ifPresent(peak -> { - profile.setAllTimePeak(peak.getDate()); - profile.setAllTimePeakPlayers(peak.getPlayers()); - }); - Optional lastPeak = tpsTable.getPeakPlayerCount(serverUUID, System.currentTimeMillis() - (TimeAmount.DAY.ms() * 2L)); - lastPeak.ifPresent(peak -> { - profile.setLastPeakDate(peak.getDate()); - profile.setLastPeakPlayers(peak.getPlayers()); - }); + profile.setPlayers(getPlayers(serverUUID)); + profile.setTps(tpsTable.getTPSData(serverUUID)); + Optional allTimePeak = tpsTable.getAllTimePeak(serverUUID); + allTimePeak.ifPresent(peak -> { + profile.setAllTimePeak(peak.getDate()); + profile.setAllTimePeakPlayers(peak.getPlayers()); + }); + Optional lastPeak = tpsTable.getPeakPlayerCount(serverUUID, System.currentTimeMillis() - (TimeAmount.DAY.ms() * 2L)); + lastPeak.ifPresent(peak -> { + profile.setLastPeakDate(peak.getDate()); + profile.setLastPeakPlayers(peak.getPlayers()); + }); - profile.setCommandUsage(commandUseTable.getCommandUse(serverUUID)); - profile.setServerWorldtimes(worldTimesTable.getWorldTimesOfServer(serverUUID)); + profile.setCommandUsage(commandUseTable.getCommandUse(serverUUID)); + profile.setServerWorldtimes(worldTimesTable.getWorldTimesOfServer(serverUUID)); - return profile; - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + return profile; } @Override - public List getPlayers(UUID serverUUID) throws DBException { - try { - List serverUserInfo = userInfoTable.getServerUserInfo(serverUUID); - Map timesKicked = usersTable.getAllTimesKicked(); - Map> actions = actionsTable.getServerActions(serverUUID); - Map> geoInfo = geoInfoTable.getAllGeoInfo(); + public List getPlayers(UUID serverUUID) { + List serverUserInfo = userInfoTable.getServerUserInfo(serverUUID); + Map timesKicked = usersTable.getAllTimesKicked(); + Map> actions = actionsTable.getServerActions(serverUUID); + Map> geoInfo = geoInfoTable.getAllGeoInfo(); - Map> sessions = sessionsTable.getSessionInfoOfServer(serverUUID); - Map>> map = new HashMap<>(); - map.put(serverUUID, sessions); - killsTable.addKillsToSessions(map); - worldTimesTable.addWorldTimesToSessions(map); + Map> sessions = sessionsTable.getSessionInfoOfServer(serverUUID); + Map>> map = new HashMap<>(); + map.put(serverUUID, sessions); + killsTable.addKillsToSessions(map); + worldTimesTable.addWorldTimesToSessions(map); - List players = new ArrayList<>(); + List players = new ArrayList<>(); - for (UserInfo userInfo : serverUserInfo) { - UUID uuid = userInfo.getUuid(); - PlayerProfile profile = new PlayerProfile(uuid, userInfo.getName(), userInfo.getRegistered()); - profile.setTimesKicked(timesKicked.getOrDefault(uuid, 0)); - if (userInfo.isBanned()) { - profile.bannedOnServer(serverUUID); - } - if (userInfo.isOpped()) { - profile.oppedOnServer(serverUUID); - } - profile.setActions(actions.getOrDefault(uuid, new ArrayList<>())); - profile.setGeoInformation(geoInfo.getOrDefault(uuid, new ArrayList<>())); - profile.setSessions(serverUUID, sessions.getOrDefault(uuid, new ArrayList<>())); - - players.add(profile); + for (UserInfo userInfo : serverUserInfo) { + UUID uuid = userInfo.getUuid(); + PlayerProfile profile = new PlayerProfile(uuid, userInfo.getName(), userInfo.getRegistered()); + profile.setTimesKicked(timesKicked.getOrDefault(uuid, 0)); + if (userInfo.isBanned()) { + profile.bannedOnServer(serverUUID); } - return players; - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); + if (userInfo.isOpped()) { + profile.oppedOnServer(serverUUID); + } + profile.setActions(actions.getOrDefault(uuid, new ArrayList<>())); + profile.setGeoInformation(geoInfo.getOrDefault(uuid, new ArrayList<>())); + profile.setSessions(serverUUID, sessions.getOrDefault(uuid, new ArrayList<>())); + + players.add(profile); } + return players; } @Override - public PlayerProfile getPlayerProfile(UUID uuid) throws DBException { - try { - if (!usersTable.isRegistered(uuid)) { - return null; - } - - String playerName = usersTable.getPlayerName(uuid); - Optional registerDate = usersTable.getRegisterDate(uuid); - - if (!registerDate.isPresent()) { - throw new IllegalStateException("User has been saved with null register date to a NOT NULL column"); - } - - PlayerProfile profile = new PlayerProfile(uuid, playerName, registerDate.get()); - profile.setTimesKicked(usersTable.getTimesKicked(uuid)); - - Map userInfo = userInfoTable.getAllUserInfo(uuid); - addUserInfoToProfile(profile, userInfo); - - profile.setActions(actionsTable.getActions(uuid)); - profile.setNicknames(nicknamesTable.getAllNicknames(uuid)); - profile.setGeoInformation(geoInfoTable.getGeoInfo(uuid)); - - Map> sessions = sessionsTable.getSessions(uuid); - profile.setSessions(sessions); - profile.calculateWorldTimesPerServer(); - profile.setTotalWorldTimes(worldTimesTable.getWorldTimesOfUser(uuid)); - - return profile; - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } catch (DBOpException e) { - throw new DBException(e); + public PlayerProfile getPlayerProfile(UUID uuid) { + if (!usersTable.isRegistered(uuid)) { + return null; } - } - @Override - public PlayerContainer getPlayerContainer(UUID uuid) { - PlayerContainer container = new PlayerContainer(); - container.putRawData(PlayerKeys.UUID, uuid); + String playerName = usersTable.getPlayerName(uuid); + Optional registerDate = usersTable.getRegisterDate(uuid); - container.putAll(usersTable.getUserInformation(uuid)); + if (!registerDate.isPresent()) { + throw new IllegalStateException("User has been saved with null register date to a NOT NULL column"); + } - container.put(PlayerKeys.GEO_INFO, () -> GeoInfo.intoDateMap(geoInfoTable.getGeoInfo(uuid))); - return container; + PlayerProfile profile = new PlayerProfile(uuid, playerName, registerDate.get()); + profile.setTimesKicked(usersTable.getTimesKicked(uuid)); + + Map userInfo = userInfoTable.getAllUserInfo(uuid); + addUserInfoToProfile(profile, userInfo); + + profile.setActions(actionsTable.getActions(uuid)); + profile.setNicknames(nicknamesTable.getAllNicknames(uuid)); + profile.setGeoInformation(geoInfoTable.getGeoInfo(uuid)); + + Map> sessions = sessionsTable.getSessions(uuid); + profile.setSessions(sessions); + profile.calculateWorldTimesPerServer(); + profile.setTotalWorldTimes(worldTimesTable.getWorldTimesOfUser(uuid)); + + return profile; } private void addUserInfoToProfile(PlayerProfile profile, Map userInfo) { @@ -151,268 +123,163 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { } @Override - public Set getSavedUUIDs() throws DBException { - try { - return usersTable.getSavedUUIDs(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public PlayerContainer getPlayerContainer(UUID uuid) { + PlayerContainer container = new PlayerContainer(); + container.putRawData(PlayerKeys.UUID, uuid); + + container.putAll(usersTable.getUserInformation(uuid)); + container.put(PlayerKeys.GEO_INFO, () -> GeoInfo.intoDateMap(geoInfoTable.getGeoInfo(uuid))); + container.put(PlayerKeys.NICKNAMES, () -> nicknamesTable.getNicknameInformation(uuid)); + return container; } @Override - public Set getSavedUUIDs(UUID server) throws DBException { - try { - return userInfoTable.getSavedUUIDs(server); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Set getSavedUUIDs() { + return usersTable.getSavedUUIDs(); } @Override - public Map getServerNames() throws DBException { - try { - return serverTable.getServerNames(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Set getSavedUUIDs(UUID server) { + return userInfoTable.getSavedUUIDs(server); } @Override - public Optional getServerUUID(String serverName) throws DBException { - try { - return serverTable.getServerUUID(serverName); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map getServerNames() { + return serverTable.getServerNames(); } @Override - public UUID getUuidOf(String playerName) throws DBException { - try { - return usersTable.getUuidOf(playerName); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getServerUUID(String serverName) { + return serverTable.getServerUUID(serverName); } @Override - public WebUser getWebUser(String username) throws DBException { - try { - return securityTable.getWebUser(username); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public UUID getUuidOf(String playerName) { + return usersTable.getUuidOf(playerName); } @Override - public List getTPSData(UUID serverUUID) throws DBException { - try { - return tpsTable.getTPSData(serverUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public WebUser getWebUser(String username) { + return securityTable.getWebUser(username); } @Override - public List getNetworkOnlineData() throws DBException { - try { - return tpsTable.getNetworkOnlineData(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getTPSData(UUID serverUUID) { + return tpsTable.getTPSData(serverUUID); } @Override - public List getRegisterDates() throws DBException { - try { - return usersTable.getRegisterDates(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getNetworkOnlineData() { + return tpsTable.getNetworkOnlineData(); } @Override - public Optional getAllTimePeak(UUID serverUUID) throws DBException { - try { - return tpsTable.getAllTimePeak(serverUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getRegisterDates() { + return usersTable.getRegisterDates(); } @Override - public Optional getPeakPlayerCount(UUID serverUUID, long afterDate) throws DBException { - try { - return tpsTable.getPeakPlayerCount(serverUUID, afterDate); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getAllTimePeak(UUID serverUUID) { + return tpsTable.getAllTimePeak(serverUUID); } @Override - public Map>> getSessionsWithNoExtras() throws DBException { - try { - return sessionsTable.getAllSessions(false); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getPeakPlayerCount(UUID serverUUID, long afterDate) { + return tpsTable.getPeakPlayerCount(serverUUID, afterDate); } @Override - public Map>> getSessionsAndExtras() throws DBException { - try { - return sessionsTable.getAllSessions(true); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map>> getSessionsWithNoExtras() { + return sessionsTable.getAllSessions(false); } @Override - public Map>> getSessionsInLastMonth() throws DBException { - try { - return sessionsTable.getSessionInLastMonth(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map>> getSessionsAndExtras() { + return sessionsTable.getAllSessions(true); } @Override - public Set getWorldNames(UUID serverUuid) throws DBException { - try { - return worldTable.getWorldNames(serverUuid); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map>> getSessionsInLastMonth() { + return sessionsTable.getSessionInLastMonth(); } @Override - public List getNicknamesOfPlayerOnServer(UUID uuid, UUID serverUUID) throws DBException { - try { - return nicknamesTable.getNicknames(uuid, serverUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Set getWorldNames(UUID serverUuid) { + return worldTable.getWorldNames(serverUuid); } @Override - public List getActions(UUID uuid) throws DBException { - try { - return actionsTable.getActions(uuid); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getNicknamesOfPlayerOnServer(UUID uuid, UUID serverUUID) { + return nicknamesTable.getNicknames(uuid, serverUUID); } @Override - public Map getUsers() throws DBException { - try { - return usersTable.getUsers(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getActions(UUID uuid) { + return actionsTable.getActions(uuid); } @Override - public Map getLastSeenForAllPlayers() throws DBException { - try { - return sessionsTable.getLastSeenForAllPlayers(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map getUsers() { + return usersTable.getUsers(); } @Override - public Map> getAllGeoInfo() throws DBException { - try { - return geoInfoTable.getAllGeoInfo(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map getLastSeenForAllPlayers() { + return sessionsTable.getLastSeenForAllPlayers(); } @Override - public Map getPlayerNames() throws DBException { - try { - return usersTable.getPlayerNames(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map> getAllGeoInfo() { + return geoInfoTable.getAllGeoInfo(); } @Override - public String getPlayerName(UUID playerUUID) throws DBException { - try { - return usersTable.getPlayerName(playerUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map getPlayerNames() { + return usersTable.getPlayerNames(); } @Override - public Optional getServerName(UUID serverUUID) throws DBException { - try { - return serverTable.getServerName(serverUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public String getPlayerName(UUID playerUUID) { + return usersTable.getPlayerName(playerUUID); } @Override - public List getNicknames(UUID uuid) throws DBException { - try { - return nicknamesTable.getNicknames(uuid); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getServerName(UUID serverUUID) { + return serverTable.getServerName(serverUUID); } @Override - public Optional getBungeeInformation() throws DBException { - try { - return serverTable.getBungeeInfo(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getNicknames(UUID uuid) { + return nicknamesTable.getNicknames(uuid); } @Override - public Optional getServerID(UUID serverUUID) throws DBException { - try { - return serverTable.getServerID(serverUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getBungeeInformation() { + return serverTable.getBungeeInfo(); } @Override - public Map getBukkitServers() throws DBException { - try { - return serverTable.getBukkitServers(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getServerID(UUID serverUUID) { + return serverTable.getServerID(serverUUID); } @Override - public List getWebUsers() throws DBException { - try { - return securityTable.getUsers(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Map getBukkitServers() { + return serverTable.getBukkitServers(); } @Override - public Map getServerNamesByID() throws DBException { - try { - return serverTable.getServerNamesByID(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getWebUsers() { + return securityTable.getUsers(); } @Override - public List getServers() throws DBException { + public Map getServerNamesByID() { + return serverTable.getServerNamesByID(); + } + + @Override + public List getServers() { Map bukkitServers = getBukkitServers(); Optional bungeeInformation = getBungeeInformation(); @@ -424,20 +291,12 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { } @Override - public List getServerUUIDs() throws DBException { - try { - return serverTable.getServerUUIDs(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getServerUUIDs() { + return serverTable.getServerUUIDs(); } @Override - public List getNetworkGeolocations() throws DBException { - try { - return geoInfoTable.getNetworkGeolocations(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List getNetworkGeolocations() { + return geoInfoTable.getNetworkGeolocations(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLRemoveOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLRemoveOps.java index d48ebbe7f..64639e17c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLRemoveOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLRemoveOps.java @@ -1,13 +1,10 @@ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; -import com.djrapitops.plan.api.exceptions.database.FatalDBException; import com.djrapitops.plan.system.database.databases.operation.RemoveOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.tables.Table; import com.djrapitops.plan.system.database.databases.sql.tables.UserIDTable; -import java.sql.SQLException; import java.util.UUID; public class SQLRemoveOps extends SQLOps implements RemoveOperations { @@ -17,56 +14,34 @@ public class SQLRemoveOps extends SQLOps implements RemoveOperations { } @Override - public void player(UUID uuid) throws DBException { + public void player(UUID uuid) { if (uuid == null) { return; } - try { - String webUser = usersTable.getPlayerName(uuid); + String webUser = usersTable.getPlayerName(uuid); - for (Table t : db.getAllTablesInRemoveOrder()) { - if (!(t instanceof UserIDTable)) { - continue; - } - - UserIDTable table = (UserIDTable) t; - table.removeUser(uuid); + for (Table t : db.getAllTablesInRemoveOrder()) { + if (!(t instanceof UserIDTable)) { + continue; } - securityTable.removeUser(webUser); - } catch (SQLException e) { - throw SQLErrorUtil.getFatalExceptionFor(e); + UserIDTable table = (UserIDTable) t; + table.removeUser(uuid); + } + + securityTable.removeUser(webUser); + } + + @Override + public void everything() { + for (Table table : db.getAllTablesInRemoveOrder()) { + table.removeAllData(); } } @Override - public void player(UUID player, UUID server) throws DBException { - throw new FatalDBException("Not Implemented"); - } - - @Override - public void server(UUID serverUUID) throws DBException { - throw new FatalDBException("Not Implemented"); - } - - @Override - public void everything() throws DBException { - try { - for (Table table : db.getAllTablesInRemoveOrder()) { - table.removeAllData(); - } - } catch (SQLException e) { - throw SQLErrorUtil.getFatalExceptionFor(e); - } - } - - @Override - public void webUser(String userName) throws DBException { - try { - securityTable.removeUser(userName); - } catch (SQLException e) { - throw SQLErrorUtil.getFatalExceptionFor(e); - } + public void webUser(String userName) { + securityTable.removeUser(userName); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java index 45b93514e..51f0df92f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java @@ -4,14 +4,12 @@ */ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.data.container.*; import com.djrapitops.plan.system.database.databases.operation.SaveOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.info.server.Server; -import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.UUID; @@ -28,200 +26,112 @@ public class SQLSaveOps extends SQLOps implements SaveOperations { } @Override - public void insertTPS(Map> ofServers) throws DBException { - try { - tpsTable.insertAllTPS(ofServers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertTPS(Map> ofServers) { + tpsTable.insertAllTPS(ofServers); } @Override - public void insertCommandUsage(Map> ofServers) throws DBException { - try { - commandUseTable.insertCommandUsage(ofServers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertCommandUsage(Map> ofServers) { + commandUseTable.insertCommandUsage(ofServers); } @Override - public void insertUsers(Map ofServers) throws DBException { - try { - usersTable.insertUsers(ofServers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertUsers(Map ofServers) { + usersTable.insertUsers(ofServers); } @Override - public void insertSessions(Map>> ofServers, boolean containsExtraData) throws DBException { - try { - sessionsTable.insertSessions(ofServers, containsExtraData); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertSessions(Map>> ofServers, boolean containsExtraData) { + sessionsTable.insertSessions(ofServers, containsExtraData); } @Override - public void kickAmount(Map ofUsers) throws DBException { - try { - usersTable.updateKicked(ofUsers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void kickAmount(Map ofUsers) { + usersTable.updateKicked(ofUsers); } @Override - public void insertUserInfo(Map> ofServers) throws DBException { - try { - userInfoTable.insertUserInfo(ofServers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertUserInfo(Map> ofServers) { + userInfoTable.insertUserInfo(ofServers); } @Override - public void insertNicknames(Map>> ofServers) throws DBException { - try { - nicknamesTable.insertNicknames(ofServers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertNicknames(Map>> ofServers) { + nicknamesTable.insertNicknames(ofServers); } @Override - public void insertAllGeoInfo(Map> ofUsers) throws DBException { - try { - geoInfoTable.insertAllGeoInfo(ofUsers); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertAllGeoInfo(Map> ofUsers) { + geoInfoTable.insertAllGeoInfo(ofUsers); } @Override - public void banStatus(UUID uuid, boolean banned) throws DBException { - try { - userInfoTable.updateBanStatus(uuid, banned); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void banStatus(UUID uuid, boolean banned) { + userInfoTable.updateBanStatus(uuid, banned); } @Override - public void opStatus(UUID uuid, boolean op) throws DBException { - try { - userInfoTable.updateOpStatus(uuid, op); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void opStatus(UUID uuid, boolean op) { + userInfoTable.updateOpStatus(uuid, op); } @Override - public void registerNewUser(UUID uuid, long registered, String name) throws DBException { - try { - usersTable.registerUser(uuid, registered, name); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void registerNewUser(UUID uuid, long registered, String name) { + usersTable.registerUser(uuid, registered, name); } @Override - public void action(UUID uuid, Action action) throws DBException { - try { - actionsTable.insertAction(uuid, action); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void action(UUID uuid, Action action) { + actionsTable.insertAction(uuid, action); } @Override - public void geoInfo(UUID uuid, GeoInfo geoInfo) throws DBException { - try { - geoInfoTable.saveGeoInfo(uuid, geoInfo); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void geoInfo(UUID uuid, GeoInfo geoInfo) { + geoInfoTable.saveGeoInfo(uuid, geoInfo); } @Override - public void playerWasKicked(UUID uuid) throws DBException { - try { - usersTable.kicked(uuid); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void playerWasKicked(UUID uuid) { + usersTable.kicked(uuid); } @Override - public void playerName(UUID uuid, String playerName) throws DBException { - try { - usersTable.updateName(uuid, playerName); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void playerName(UUID uuid, String playerName) { + usersTable.updateName(uuid, playerName); } @Override - public void playerDisplayName(UUID uuid, String displayName) throws DBException { - try { - nicknamesTable.saveUserName(uuid, displayName); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void playerDisplayName(UUID uuid, String displayName) { + nicknamesTable.saveUserName(uuid, displayName); } @Override - public void registerNewUserOnThisServer(UUID uuid, long registered) throws DBException { - try { - userInfoTable.registerUserInfo(uuid, registered); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void registerNewUserOnThisServer(UUID uuid, long registered) { + userInfoTable.registerUserInfo(uuid, registered); } @Override - public void commandUsed(String commandName) throws DBException { - try { - commandUseTable.commandUsed(commandName); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void commandUsed(String commandName) { + commandUseTable.commandUsed(commandName); } @Override - public void insertTPSforThisServer(TPS tps) throws DBException { - try { - tpsTable.insertTPS(tps); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void insertTPSforThisServer(TPS tps) { + tpsTable.insertTPS(tps); } @Override - public void session(UUID uuid, Session session) throws DBException { - try { - sessionsTable.saveSession(uuid, session); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void session(UUID uuid, Session session) { + sessionsTable.saveSession(uuid, session); } @Override - public void serverInfoForThisServer(Server server) throws DBException { - try { - serverTable.saveCurrentServerInfo(server); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void serverInfoForThisServer(Server server) { + serverTable.saveCurrentServerInfo(server); } @Override - public void webUser(WebUser webUser) throws DBException { - try { - securityTable.addNewUser(webUser); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void webUser(WebUser webUser) { + securityTable.addNewUser(webUser); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSearchOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSearchOps.java index a560fbd6e..75d8f04c6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSearchOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSearchOps.java @@ -1,10 +1,8 @@ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.operation.SearchOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; -import java.sql.SQLException; import java.util.List; public class SQLSearchOps extends SQLOps implements SearchOperations { @@ -14,11 +12,7 @@ public class SQLSearchOps extends SQLOps implements SearchOperations { } @Override - public List matchingPlayers(String search) throws DBException { - try { - return usersTable.getMatchingNames(search); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public List matchingPlayers(String search) { + return usersTable.getMatchingNames(search); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLTransferOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLTransferOps.java index b94a16208..5fd37bcb7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLTransferOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLTransferOps.java @@ -4,11 +4,9 @@ */ package com.djrapitops.plan.system.database.databases.sql.operation; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.operation.TransferOperations; import com.djrapitops.plan.system.database.databases.sql.SQLDB; -import java.sql.SQLException; import java.util.Optional; import java.util.UUID; @@ -24,30 +22,18 @@ public class SQLTransferOps extends SQLOps implements TransferOperations { } @Override - public Optional getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException { - try { - return transferTable.getServerPlayerIsOnline(playerUUID); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getServerPlayerIsOnlineOn(UUID playerUUID) { + return transferTable.getServerPlayerIsOnline(playerUUID); } @Override - public void storeConfigSettings(String encodedSettingString) throws DBException { - try { - transferTable.storeConfigSettings(encodedSettingString); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public void storeConfigSettings(String encodedSettingString) { + transferTable.storeConfigSettings(encodedSettingString); } @Override - public Optional getEncodedConfigSettings() throws DBException { - try { - return transferTable.getConfigSettings(); - } catch (SQLException e) { - throw SQLErrorUtil.getExceptionFor(e); - } + public Optional getEncodedConfigSettings() { + return transferTable.getConfigSettings(); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ActionsTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ActionsTable.java index 909211fd1..bc1159896 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ActionsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ActionsTable.java @@ -78,9 +78,8 @@ public class ActionsTable extends UserIDTable { * * @param uuid UUID of the player * @return List of actions done by the player. Does not include the kills. - * @throws SQLException DB Error */ - public List getActions(UUID uuid) throws SQLException { + public List getActions(UUID uuid) { String sql = Select.all(tableName) .where(Col.USER_ID + "=" + usersTable.statementSelectID) .toString(); @@ -106,7 +105,7 @@ public class ActionsTable extends UserIDTable { }); } - public void insertAction(UUID uuid, Action action) throws SQLException { + public void insertAction(UUID uuid, Action action) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -119,7 +118,7 @@ public class ActionsTable extends UserIDTable { }); } - public Map>> getAllActions() throws SQLException { + public Map>> getAllActions() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; @@ -159,7 +158,7 @@ public class ActionsTable extends UserIDTable { }); } - public Map> getServerActions(UUID serverUUID) throws SQLException { + public Map> getServerActions(UUID serverUUID) { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String sql = "SELECT " + @@ -198,7 +197,7 @@ public class ActionsTable extends UserIDTable { }); } - public void insertActions(Map>> allActions) throws SQLException { + public void insertActions(Map>> allActions) { if (Verify.isEmpty(allActions)) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/CommandUseTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/CommandUseTable.java index 7789cd356..24081843b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/CommandUseTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/CommandUseTable.java @@ -62,9 +62,8 @@ public class CommandUseTable extends Table { * * @param serverUUID UUID of the server. * @return command - times used Map - * @throws SQLException DB Error */ - public Map getCommandUse(UUID serverUUID) throws SQLException { + public Map getCommandUse(UUID serverUUID) { String sql = Select.from(tableName, Col.COMMAND, Col.TIMES_USED) .where(Col.SERVER_ID + "=" + serverTable.statementSelectServerID) @@ -93,13 +92,12 @@ public class CommandUseTable extends Table { * Used to get all commands used in this server. * * @return command - times used Map - * @throws SQLException DB Error */ - public Map getCommandUse() throws SQLException { + public Map getCommandUse() { return getCommandUse(ServerInfo.getServerUUID()); } - public void commandUsed(String command) throws SQLException { + public void commandUsed(String command) { if (command.length() > 20) { return; } @@ -121,7 +119,7 @@ public class CommandUseTable extends Table { } } - public Optional getCommandByID(int id) throws SQLException { + public Optional getCommandByID(int id) { String sql = Select.from(tableName, Col.COMMAND).where(Col.COMMAND_ID + "=?").toString(); return query(new QueryStatement>(sql) { @@ -140,7 +138,7 @@ public class CommandUseTable extends Table { }); } - private void insertCommand(String command) throws SQLException { + private void insertCommand(String command) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -151,7 +149,7 @@ public class CommandUseTable extends Table { }); } - public Optional getCommandID(String command) throws SQLException { + public Optional getCommandID(String command) { String sql = Select.from(tableName, Col.COMMAND_ID).where(Col.COMMAND + "=?").toString(); return query(new QueryStatement>(sql) { @@ -170,7 +168,7 @@ public class CommandUseTable extends Table { }); } - public Map> getAllCommandUsages() throws SQLException { + public Map> getAllCommandUsages() { String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; String sql = "SELECT " + @@ -223,7 +221,7 @@ public class CommandUseTable extends Table { } } - public void insertCommandUsage(Map> allCommandUsages) throws SQLException { + public void insertCommandUsage(Map> allCommandUsages) { if (allCommandUsages.isEmpty()) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/GeoInfoTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/GeoInfoTable.java index fea5ae0d4..b99e5efb3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/GeoInfoTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/GeoInfoTable.java @@ -119,7 +119,7 @@ public class GeoInfoTable extends UserIDTable { }); new Version18TransferTable(db).alterTableV18(); db.setVersion(18); - } catch (SQLException | DBInitException e) { + } catch (DBOpException | DBInitException e) { Log.toLog(this.getClass(), e); } } @@ -134,32 +134,28 @@ public class GeoInfoTable extends UserIDTable { String sql = "SELECT DISTINCT * FROM " + tableName + " WHERE " + Col.USER_ID + "=" + usersTable.statementSelectID; - try { - return query(new QueryStatement>(sql, 100) { - @Override - public void prepare(PreparedStatement statement) throws SQLException { - statement.setString(1, uuid.toString()); - } + return query(new QueryStatement>(sql, 100) { + @Override + public void prepare(PreparedStatement statement) throws SQLException { + statement.setString(1, uuid.toString()); + } - @Override - public List processResults(ResultSet set) throws SQLException { - List geoInfo = new ArrayList<>(); - while (set.next()) { - String ip = set.getString(Col.IP.get()); - String geolocation = set.getString(Col.GEOLOCATION.get()); - String ipHash = set.getString(Col.IP_HASH.get()); - long lastUsed = set.getLong(Col.LAST_USED.get()); - geoInfo.add(new GeoInfo(ip, geolocation, lastUsed, ipHash)); - } - return geoInfo; + @Override + public List processResults(ResultSet set) throws SQLException { + List geoInfo = new ArrayList<>(); + while (set.next()) { + String ip = set.getString(Col.IP.get()); + String geolocation = set.getString(Col.GEOLOCATION.get()); + String ipHash = set.getString(Col.IP_HASH.get()); + long lastUsed = set.getLong(Col.LAST_USED.get()); + geoInfo.add(new GeoInfo(ip, geolocation, lastUsed, ipHash)); } - }); - } catch (SQLException e) { - throw new DBOpException("SQL Failed: " + sql, e); - } + return geoInfo; + } + }); } - private void updateGeoInfo(UUID uuid, GeoInfo info) throws SQLException { + private void updateGeoInfo(UUID uuid, GeoInfo info) { String sql = "UPDATE " + tableName + " SET " + Col.LAST_USED + "=?" + " WHERE " + Col.USER_ID + "=" + usersTable.statementSelectID + @@ -177,7 +173,7 @@ public class GeoInfoTable extends UserIDTable { }); } - public void saveGeoInfo(UUID uuid, GeoInfo info) throws SQLException { + public void saveGeoInfo(UUID uuid, GeoInfo info) { List geoInfo = getGeoInfo(uuid); if (geoInfo.contains(info)) { updateGeoInfo(uuid, info); @@ -186,7 +182,7 @@ public class GeoInfoTable extends UserIDTable { } } - private void insertGeoInfo(UUID uuid, GeoInfo info) throws SQLException { + private void insertGeoInfo(UUID uuid, GeoInfo info) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -199,7 +195,7 @@ public class GeoInfoTable extends UserIDTable { }); } - public Optional getGeolocation(String ip) throws SQLException { + public Optional getGeolocation(String ip) { String sql = Select.from(tableName, Col.GEOLOCATION) .where(Col.IP + "=?") .toString(); @@ -220,7 +216,7 @@ public class GeoInfoTable extends UserIDTable { }); } - public Map> getAllGeoInfo() throws SQLException { + public Map> getAllGeoInfo() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String sql = "SELECT " + @@ -254,7 +250,7 @@ public class GeoInfoTable extends UserIDTable { }); } - public List getNetworkGeolocations() throws SQLException { + public List getNetworkGeolocations() { List geolocations = new ArrayList<>(); Map> geoInfo = getAllGeoInfo(); @@ -269,7 +265,7 @@ public class GeoInfoTable extends UserIDTable { return geolocations; } - public void insertAllGeoInfo(Map> allIPsAndGeolocations) throws SQLException { + public void insertAllGeoInfo(Map> allIPsAndGeolocations) { if (Verify.isEmpty(allIPsAndGeolocations)) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/KillsTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/KillsTable.java index ca4ae6d98..b755c7ca5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/KillsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/KillsTable.java @@ -70,7 +70,7 @@ public class KillsTable extends UserIDTable { } @Override - public void removeUser(UUID uuid) throws SQLException { + public void removeUser(UUID uuid) { String sql = "DELETE FROM " + tableName + " WHERE " + Col.KILLER_ID + " = " + usersTable.statementSelectID + " OR " + Col.VICTIM_ID + " = " + usersTable.statementSelectID; @@ -84,7 +84,7 @@ public class KillsTable extends UserIDTable { }); } - public void addKillsToSessions(UUID uuid, Map sessions) throws SQLException { + public void addKillsToSessions(UUID uuid, Map sessions) { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as victim_uuid"; String sql = "SELECT " + @@ -121,7 +121,7 @@ public class KillsTable extends UserIDTable { }); } - public void savePlayerKills(UUID uuid, int sessionID, List playerKills) throws SQLException { + public void savePlayerKills(UUID uuid, int sessionID, List playerKills) { if (Verify.isEmpty(playerKills)) { return; } @@ -149,7 +149,7 @@ public class KillsTable extends UserIDTable { }); } - public Map> getPlayerKills() throws SQLException { + public Map> getPlayerKills() { String usersVictimIDColumn = usersTable + "." + UsersTable.Col.ID; String usersKillerIDColumn = "a." + UsersTable.Col.ID; String usersVictimUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as victim_uuid"; @@ -181,7 +181,7 @@ public class KillsTable extends UserIDTable { }); } - public Map> getAllPlayerKillsBySessionID() throws SQLException { + public Map> getAllPlayerKillsBySessionID() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as victim_uuid"; String sql = "SELECT " + @@ -214,7 +214,7 @@ public class KillsTable extends UserIDTable { }); } - public void addKillsToSessions(Map>> map) throws SQLException { + public void addKillsToSessions(Map>> map) { Map> playerKillsBySessionID = getAllPlayerKillsBySessionID(); for (UUID serverUUID : map.keySet()) { for (List sessions : map.get(serverUUID).values()) { @@ -228,7 +228,7 @@ public class KillsTable extends UserIDTable { } } - public void savePlayerKills(Map>> allSessions) throws SQLException { + public void savePlayerKills(Map>> allSessions) { if (Verify.isEmpty(allSessions)) { return; } @@ -265,7 +265,7 @@ public class KillsTable extends UserIDTable { }); } - public void alterTableV16() throws SQLException { + public void alterTableV16() { addColumns(Col.SERVER_ID + " integer NOT NULL DEFAULT 0"); Map sessionIDServerIDRelation = sessionsTable.getIDServerIDRelation(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java index 80673c39d..835fbfa05 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java @@ -1,6 +1,7 @@ package com.djrapitops.plan.system.database.databases.sql.tables; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.data.store.objects.Nickname; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.processing.ExecStatement; import com.djrapitops.plan.system.database.databases.sql.processing.QueryAllStatement; @@ -64,9 +65,8 @@ public class NicknamesTable extends UserIDTable { * * @param uuid UUID of the Player * @return The nicknames of the User in a map by ServerUUID - * @throws SQLException when an error at retrieval happens */ - public Map> getAllNicknames(UUID uuid) throws SQLException { + public Map> getAllNicknames(UUID uuid) { String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; String sql = "SELECT " + @@ -108,9 +108,8 @@ public class NicknamesTable extends UserIDTable { * @param uuid UUID of the Player * @param serverUUID UUID of the server * @return The nicknames of the User - * @throws SQLException when an error at retrieval happens */ - public List getNicknames(UUID uuid, UUID serverUUID) throws SQLException { + public List getNicknames(UUID uuid, UUID serverUUID) { String sql = "SELECT " + Col.NICKNAME + " FROM " + tableName + " WHERE (" + Col.USER_ID + "=" + usersTable.statementSelectID + ")" + " AND " + Col.SERVER_ID + "=" + serverTable.statementSelectServerID; @@ -146,13 +145,12 @@ public class NicknamesTable extends UserIDTable { * * @param uuid UUID of the Player * @return The nicknames of the User - * @throws SQLException when an error at retrieval happens */ - public List getNicknames(UUID uuid) throws SQLException { + public List getNicknames(UUID uuid) { return getNicknames(uuid, ServerInfo.getServerUUID()); } - public Map>> getAllNicknames() throws SQLException { + public Map>> getAllNicknames() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; @@ -186,7 +184,7 @@ public class NicknamesTable extends UserIDTable { }); } - public void saveUserName(UUID uuid, String displayName) throws SQLException { + public void saveUserName(UUID uuid, String displayName) { List saved = getNicknames(uuid); if (saved.contains(displayName)) { return; @@ -202,6 +200,36 @@ public class NicknamesTable extends UserIDTable { }); } + public List getNicknameInformation(UUID uuid) { + String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; + String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; + String sql = "SELECT " + + Col.NICKNAME + ", " + + serverUUIDColumn + + " FROM " + tableName + + " INNER JOIN " + serverTable + " on " + serverIDColumn + "=" + Col.SERVER_ID + + " WHERE (" + Col.USER_ID + "=" + usersTable.statementSelectID + ")"; + + return query(new QueryStatement>(sql, 5000) { + + @Override + public void prepare(PreparedStatement statement) throws SQLException { + statement.setString(1, uuid.toString()); + } + + @Override + public List processResults(ResultSet set) throws SQLException { + List nicknames = new ArrayList<>(); + while (set.next()) { + UUID serverUUID = UUID.fromString(set.getString("s_uuid")); + String nickname = set.getString(Col.NICKNAME.get()); + nicknames.add(new Nickname(nickname, -1, serverUUID)); // TODO Add last used + } + return nicknames; + } + }); + } + public enum Col implements Column { USER_ID(UserIDTable.Col.USER_ID.get()), SERVER_ID("server_id"), @@ -224,7 +252,7 @@ public class NicknamesTable extends UserIDTable { } } - public void insertNicknames(Map>> allNicknames) throws SQLException { + public void insertNicknames(Map>> allNicknames) { if (Verify.isEmpty(allNicknames)) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SecurityTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SecurityTable.java index 991253570..d05a08aa8 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SecurityTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SecurityTable.java @@ -52,7 +52,7 @@ public class SecurityTable extends Table { ); } - public void removeUser(String user) throws SQLException { + public void removeUser(String user) { String sql = "DELETE FROM " + tableName + " WHERE (" + Col.USERNAME + "=?)"; execute(new ExecStatement(sql) { @@ -63,7 +63,7 @@ public class SecurityTable extends Table { }); } - public WebUser getWebUser(String user) throws SQLException { + public WebUser getWebUser(String user) { String sql = Select.all(tableName).where(Col.USERNAME + "=?").toString(); return query(new QueryStatement(sql) { @@ -84,11 +84,11 @@ public class SecurityTable extends Table { }); } - public void addNewUser(WebUser info) throws SQLException { + public void addNewUser(WebUser info) { addNewUser(info.getName(), info.getSaltedPassHash(), info.getPermLevel()); } - public void addNewUser(String user, String saltPassHash, int permLevel) throws SQLException { + public void addNewUser(String user, String saltPassHash, int permLevel) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -99,11 +99,11 @@ public class SecurityTable extends Table { }); } - public boolean userExists(String user) throws SQLException { + public boolean userExists(String user) { return getWebUser(user) != null; } - public List getUsers() throws SQLException { + public List getUsers() { String sql = Select.all(tableName).toString(); return query(new QueryAllStatement>(sql, 5000) { @@ -144,7 +144,7 @@ public class SecurityTable extends Table { } } - public void addUsers(List users) throws SQLException { + public void addUsers(List users) { if (Verify.isEmpty(users)) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ServerTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ServerTable.java index 9346f5117..4bcec266b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ServerTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/ServerTable.java @@ -73,7 +73,7 @@ public class ServerTable extends Table { } } - private void updateServerInfo(Server info) throws SQLException { + private void updateServerInfo(Server info) { String sql = Update.values(tableName, Col.SERVER_UUID, Col.NAME, @@ -96,7 +96,7 @@ public class ServerTable extends Table { }); } - public void saveCurrentServerInfo(Server info) throws SQLException { + public void saveCurrentServerInfo(Server info) { if (getServerID(info.getUuid()).isPresent()) { updateServerInfo(info); } else { @@ -109,9 +109,8 @@ public class ServerTable extends Table { * * @param serverUUID UUID of the server. * @return ID or or empty optional. - * @throws SQLException DB Error */ - public Optional getServerID(UUID serverUUID) throws SQLException { + public Optional getServerID(UUID serverUUID) { String sql = Select.from(tableName, Col.SERVER_ID) .where(Col.SERVER_UUID + "=?") @@ -139,9 +138,8 @@ public class ServerTable extends Table { * * @param info Info to instert (All variables should be present. * @throws IllegalStateException if one of the Server variables is null - * @throws SQLException DB Error */ - private void saveNewServerInfo(Server info) throws SQLException { + private void saveNewServerInfo(Server info) { UUID uuid = info.getUuid(); String name = info.getName(); String webAddress = info.getWebAddress(); @@ -164,9 +162,8 @@ public class ServerTable extends Table { * * @param serverUUID UUID of the server. * @return Name or empty optional. - * @throws SQLException DB Error */ - public Optional getServerName(UUID serverUUID) throws SQLException { + public Optional getServerName(UUID serverUUID) { String sql = Select.from(tableName, Col.NAME) .where(Col.SERVER_UUID + "=?") @@ -189,7 +186,7 @@ public class ServerTable extends Table { }); } - public Map getServerNamesByID() throws SQLException { + public Map getServerNamesByID() { String sql = Select.from(tableName, Col.SERVER_ID, Col.NAME) .toString(); @@ -207,7 +204,7 @@ public class ServerTable extends Table { }); } - public Map getServerNames() throws SQLException { + public Map getServerNames() { String sql = Select.from(tableName, Col.SERVER_UUID, Col.NAME) .toString(); @@ -225,7 +222,7 @@ public class ServerTable extends Table { }); } - public Map getServerUUIDsByID() throws SQLException { + public Map getServerUUIDsByID() { String sql = Select.from(tableName, Col.SERVER_ID, Col.SERVER_UUID) .toString(); @@ -247,9 +244,8 @@ public class ServerTable extends Table { * Used to get BungeeCord WebServer info if present. * * @return information about Bungee server. - * @throws SQLException DB Error */ - public Optional getBungeeInfo() throws SQLException { + public Optional getBungeeInfo() { String sql = Select.from(tableName, "*") .where(Col.NAME + "=?") .toString(); @@ -276,7 +272,7 @@ public class ServerTable extends Table { }); } - public Map getBukkitServers() throws SQLException { + public Map getBukkitServers() { String sql = Select.from(tableName, "*") .where(Col.NAME + "!=?") .toString(); @@ -304,7 +300,7 @@ public class ServerTable extends Table { }); } - public List getServerUUIDs() throws SQLException { + public List getServerUUIDs() { String sql = Select.from(tableName, Col.SERVER_UUID) .toString(); @@ -325,7 +321,7 @@ public class ServerTable extends Table { return Col.SERVER_UUID.get(); } - public void insertAllServers(List allServer) throws SQLException { + public void insertAllServers(List allServer) { if (Verify.isEmpty(allServer)) { return; } @@ -353,7 +349,7 @@ public class ServerTable extends Table { }); } - public Optional getServerUUID(String serverName) throws SQLException { + public Optional getServerUUID(String serverName) { String sql = Select.from(tableName, Col.SERVER_UUID) .where(Col.NAME + "=?") @@ -376,7 +372,7 @@ public class ServerTable extends Table { }); } - public Optional getServerInfo(UUID serverUUID) throws SQLException { + public Optional getServerInfo(UUID serverUUID) { String sql = Select.from(tableName, "*") .where(Col.SERVER_UUID + "=?") .toString(); @@ -402,7 +398,7 @@ public class ServerTable extends Table { }); } - public int getMaxPlayers() throws SQLException { + public int getMaxPlayers() { String sql = "SELECT SUM(" + Col.MAX_PLAYERS + ") AS max FROM " + tableName; return query(new QueryAllStatement(sql) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SessionsTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SessionsTable.java index 6079fc625..2403a2ecc 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SessionsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/SessionsTable.java @@ -73,7 +73,7 @@ public class SessionsTable extends UserIDTable { * @param session session inserted. * @return ID of the inserted session or -1 if session has not been inserted. */ - private int getSessionID(UUID uuid, Session session) throws SQLException { + private int getSessionID(UUID uuid, Session session) { String sql = "SELECT " + Col.ID + " FROM " + tableName + " WHERE " + Col.USER_ID + "=" + usersTable.statementSelectID + " AND " + Col.SESSION_START + "=?" + @@ -104,9 +104,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the player. * @param session Session of the player that has ended ({@code endSession} has been called) - * @throws SQLException DB Error */ - public void saveSession(UUID uuid, Session session) throws SQLException { + public void saveSession(UUID uuid, Session session) { saveSessionInformation(uuid, session); int sessionID = getSessionID(uuid, session); if (sessionID == -1) { @@ -124,9 +123,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the player. * @param session Session of the player that has ended ({@code endSession} has been called) - * @throws SQLException DB Error */ - private void saveSessionInformation(UUID uuid, Session session) throws SQLException { + private void saveSessionInformation(UUID uuid, Session session) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -149,9 +147,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the player * @return Map with Sessions that don't contain Kills or WorldTimes. - * @throws SQLException DB Error */ - private Map> getSessionInformation(UUID uuid) throws SQLException { + private Map> getSessionInformation(UUID uuid) { Map serverUUIDs = serverTable.getServerUUIDsByID(); String sql = Select.from(tableName, "*") .where(Col.USER_ID + "=" + usersTable.statementSelectID) @@ -196,9 +193,8 @@ public class SessionsTable extends UserIDTable { * @param serverUUID UUID of the server. @see ServerTable * @param afterDate Epoch ms (Playtime after this date is calculated) * @return Milliseconds played after given epoch ms on the server. 0 if player or server not found. - * @throws SQLException DB Error */ - public long getPlaytime(UUID uuid, UUID serverUUID, long afterDate) throws SQLException { + public long getPlaytime(UUID uuid, UUID serverUUID, long afterDate) { String sql = "SELECT" + " (SUM(" + Col.SESSION_END + ") - SUM(" + Col.SESSION_START + ")) as playtime" + " FROM " + tableName + @@ -224,7 +220,7 @@ public class SessionsTable extends UserIDTable { }); } - public Map> getSessions(UUID uuid) throws SQLException { + public Map> getSessions(UUID uuid) { Map> sessions = getSessionInformation(uuid); Map allSessions = sessions.values().stream().flatMap(Collection::stream).collect(Collectors.toMap(Session::getSessionID, Function.identity())); @@ -238,9 +234,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the player. * @return Milliseconds played on THIS server. 0 if player or server not found. - * @throws SQLException DB Error */ - public long getPlaytime(UUID uuid) throws SQLException { + public long getPlaytime(UUID uuid) { return getPlaytime(uuid, ServerInfo.getServerUUID()); } @@ -250,9 +245,8 @@ public class SessionsTable extends UserIDTable { * @param uuid UUID of the player. * @param afterDate Epoch ms (Playtime after this date is calculated) * @return Milliseconds played on THIS server. 0 if player or server not found. - * @throws SQLException DB Error */ - public long getPlaytime(UUID uuid, long afterDate) throws SQLException { + public long getPlaytime(UUID uuid, long afterDate) { return getPlaytime(uuid, ServerInfo.getServerUUID(), afterDate); } @@ -262,9 +256,8 @@ public class SessionsTable extends UserIDTable { * @param uuid UUID of the player. * @param serverUUID UUID of the server. @see ServerTable * @return Milliseconds played on the server. 0 if player or server not found. - * @throws SQLException DB Error */ - public long getPlaytime(UUID uuid, UUID serverUUID) throws SQLException { + public long getPlaytime(UUID uuid, UUID serverUUID) { return getPlaytime(uuid, serverUUID, 0L); } @@ -274,9 +267,8 @@ public class SessionsTable extends UserIDTable { * @param uuid UUID of the Player. * @param afterDate Epoch ms (Playtime after this date is calculated) * @return key - ServerName, value ms played - * @throws SQLException DB Error */ - public Map getPlaytimeByServer(UUID uuid, long afterDate) throws SQLException { + public Map getPlaytimeByServer(UUID uuid, long afterDate) { Map serverNames = serverTable.getServerNamesByID(); String sql = "SELECT " + "(SUM(" + Col.SESSION_END + ") - SUM(" + Col.SESSION_START + ")) as playtime, " + @@ -310,9 +302,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the Player. * @return key - ServerName, value ms played - * @throws SQLException DB Error */ - public Map getPlaytimeByServer(UUID uuid) throws SQLException { + public Map getPlaytimeByServer(UUID uuid) { return getPlaytimeByServer(uuid, 0L); } @@ -322,9 +313,8 @@ public class SessionsTable extends UserIDTable { * @param serverUUID UUID of the server. * @param afterDate Epoch ms (Playtime after this date is calculated) * @return Milliseconds played after given epoch ms on the server. 0 if server not found. - * @throws SQLException DB Error */ - public long getPlaytimeOfServer(UUID serverUUID, long afterDate) throws SQLException { + public long getPlaytimeOfServer(UUID serverUUID, long afterDate) { String sql = "SELECT" + " (SUM(" + Col.SESSION_END + ") - SUM(" + Col.SESSION_START + ")) as playtime" + " FROM " + tableName + @@ -352,9 +342,8 @@ public class SessionsTable extends UserIDTable { * Used to get the Total Playtime of THIS Server. * * @return Milliseconds played on the server. 0 if server not found. - * @throws SQLException DB Error */ - public long getPlaytimeOfServer() throws SQLException { + public long getPlaytimeOfServer() { return getPlaytimeOfServer(ServerInfo.getServerUUID()); } @@ -363,9 +352,8 @@ public class SessionsTable extends UserIDTable { * * @param serverUUID UUID of the server. * @return Milliseconds played on the server. 0 if server not found. - * @throws SQLException DB Error */ - public long getPlaytimeOfServer(UUID serverUUID) throws SQLException { + public long getPlaytimeOfServer(UUID serverUUID) { return getPlaytimeOfServer(serverUUID, 0L); } @@ -374,9 +362,8 @@ public class SessionsTable extends UserIDTable { * * @param afterDate Epoch ms (Playtime after this date is calculated) * @return Milliseconds played after given epoch ms on the server. 0 if server not found. - * @throws SQLException DB Error */ - public long getPlaytimeOfServer(long afterDate) throws SQLException { + public long getPlaytimeOfServer(long afterDate) { return getPlaytimeOfServer(ServerInfo.getServerUUID(), afterDate); } @@ -387,9 +374,8 @@ public class SessionsTable extends UserIDTable { * @param serverUUID UUID of the server. * @param afterDate Epoch ms (Session count after this date is calculated) * @return How many sessions player has. 0 if player or server not found. - * @throws SQLException DB Error */ - public int getSessionCount(UUID uuid, UUID serverUUID, long afterDate) throws SQLException { + public int getSessionCount(UUID uuid, UUID serverUUID, long afterDate) { String sql = "SELECT" + " COUNT(*) as logintimes" + " FROM " + tableName + @@ -420,9 +406,8 @@ public class SessionsTable extends UserIDTable { * * @param uuid UUID of the player. * @return How many sessions player has. 0 if player or server not found. - * @throws SQLException DB Error */ - public int getSessionCount(UUID uuid) throws SQLException { + public int getSessionCount(UUID uuid) { return getSessionCount(uuid, 0L); } @@ -432,9 +417,8 @@ public class SessionsTable extends UserIDTable { * @param uuid UUID of the player. * @param afterDate Epoch ms (Session count after this date is calculated) * @return How many sessions player has. 0 if player or server not found. - * @throws SQLException DB Error */ - public int getSessionCount(UUID uuid, long afterDate) throws SQLException { + public int getSessionCount(UUID uuid, long afterDate) { return getSessionCount(uuid, ServerInfo.getServerUUID(), afterDate); } @@ -444,9 +428,8 @@ public class SessionsTable extends UserIDTable { * @param uuid UUID of the player. * @param serverUUID UUID of the server. * @return How many sessions player has. 0 if player or server not found. - * @throws SQLException DB Error */ - public int getSessionCount(UUID uuid, UUID serverUUID) throws SQLException { + public int getSessionCount(UUID uuid, UUID serverUUID) { return getSessionCount(uuid, serverUUID, 0L); } @@ -455,7 +438,7 @@ public class SessionsTable extends UserIDTable { return Col.ID.get(); } - public Map> getSessionInfoOfServer(UUID serverUUID) throws SQLException { + public Map> getSessionInfoOfServer(UUID serverUUID) { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String sql = "SELECT " + @@ -498,12 +481,12 @@ public class SessionsTable extends UserIDTable { }); } - public Map> getSessionInfoOfServer() throws SQLException { + public Map> getSessionInfoOfServer() { return getSessionInfoOfServer(ServerInfo.getServerUUID()); } // TODO Write tests for this method - public long getLastSeen(UUID uuid) throws SQLException { + public long getLastSeen(UUID uuid) { String sql = "SELECT" + " MAX(" + Col.SESSION_END + ") as last_seen" + " FROM " + tableName + @@ -525,7 +508,7 @@ public class SessionsTable extends UserIDTable { }); } - public Map getLastSeenForAllPlayers() throws SQLException { + public Map getLastSeenForAllPlayers() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String sql = "SELECT" + @@ -549,7 +532,7 @@ public class SessionsTable extends UserIDTable { }); } - public Map>> getAllSessions(boolean getKillsAndWorldTimes) throws SQLException { + public Map>> getAllSessions(boolean getKillsAndWorldTimes) { Map uuidsByID = usersTable.getUUIDsByID(); Map serverUUIDsByID = serverTable.getServerUUIDsByID(); @@ -599,7 +582,7 @@ public class SessionsTable extends UserIDTable { }); } - public Map>> getSessionInLastMonth() throws SQLException { + public Map>> getSessionInLastMonth() { Map uuidsByID = usersTable.getUUIDsByID(); Map serverUUIDsByID = serverTable.getServerUUIDsByID(); @@ -651,7 +634,7 @@ public class SessionsTable extends UserIDTable { }); } - public void insertSessions(Map>> allSessions, boolean saveKillsAndWorldTimes) throws SQLException { + public void insertSessions(Map>> allSessions, boolean saveKillsAndWorldTimes) { if (Verify.isEmpty(allSessions)) { return; } @@ -751,7 +734,7 @@ public class SessionsTable extends UserIDTable { addColumns(Col.AFK_TIME + " bigint NOT NULL DEFAULT 0"); } - public Map getIDServerIDRelation() throws SQLException { + public Map getIDServerIDRelation() { String sql = "SELECT " + Col.ID + ", " + Col.SERVER_ID + diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TPSTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TPSTable.java index 94139990e..ffb30582e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TPSTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TPSTable.java @@ -68,7 +68,7 @@ public class TPSTable extends Table { ); } - public List getTPSData(UUID serverUUID) throws SQLException { + public List getTPSData(UUID serverUUID) { String sql = Select.all(tableName) .where(Col.SERVER_ID + "=" + serverTable.statementSelectServerID) .toString(); @@ -104,16 +104,14 @@ public class TPSTable extends Table { /** * @return @throws SQLException */ - public List getTPSData() throws SQLException { + public List getTPSData() { return getTPSData(ServerInfo.getServerUUID()); } /** * Clean the TPS Table of old data. - * - * @throws SQLException DB Error */ - public void clean() throws SQLException { + public void clean() { Optional allTimePeak = getAllTimePeak(); int p = -1; if (allTimePeak.isPresent()) { @@ -137,7 +135,7 @@ public class TPSTable extends Table { }); } - public void insertTPS(TPS tps) throws SQLException { + public void insertTPS(TPS tps) { execute(new ExecStatement(insertStatement) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -153,7 +151,7 @@ public class TPSTable extends Table { }); } - public Optional getPeakPlayerCount(UUID serverUUID, long afterDate) throws SQLException { + public Optional getPeakPlayerCount(UUID serverUUID, long afterDate) { String sql = Select.all(tableName) .where(Col.SERVER_ID + "=" + serverTable.statementSelectServerID) .and(Col.PLAYERS_ONLINE + "= (SELECT MAX(" + Col.PLAYERS_ONLINE + ") FROM " + tableName + ")") @@ -188,19 +186,19 @@ public class TPSTable extends Table { }); } - public Optional getAllTimePeak(UUID serverUUID) throws SQLException { + public Optional getAllTimePeak(UUID serverUUID) { return getPeakPlayerCount(serverUUID, 0); } - public Optional getAllTimePeak() throws SQLException { + public Optional getAllTimePeak() { return getPeakPlayerCount(0); } - public Optional getPeakPlayerCount(long afterDate) throws SQLException { + public Optional getPeakPlayerCount(long afterDate) { return getPeakPlayerCount(ServerInfo.getServerUUID(), afterDate); } - public Map> getAllTPS() throws SQLException { + public Map> getAllTPS() { String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; String sql = "SELECT " + @@ -242,7 +240,7 @@ public class TPSTable extends Table { }); } - public List getNetworkOnlineData() throws SQLException { + public List getNetworkOnlineData() { Optional bungeeInfo = serverTable.getBungeeInfo(); if (!bungeeInfo.isPresent()) { return new ArrayList<>(); @@ -279,7 +277,7 @@ public class TPSTable extends Table { }); } - public void insertAllTPS(Map> allTPS) throws SQLException { + public void insertAllTPS(Map> allTPS) { if (Verify.isEmpty(allTPS)) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java index 73eb1d9f0..b2ac66c13 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java @@ -1,6 +1,7 @@ package com.djrapitops.plan.system.database.databases.sql.tables; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.processing.ExecStatement; import com.djrapitops.plan.system.database.databases.sql.processing.QueryStatement; @@ -13,6 +14,8 @@ import java.sql.PreparedStatement; import java.sql.SQLException; /** + * Abstract representation of a SQL database table. + * * @author Rsl1122 */ public abstract class Table { @@ -38,12 +41,12 @@ public abstract class Table { protected void createTable(String sql) throws DBInitException { try { execute(sql); - } catch (SQLException e) { + } catch (DBOpException e) { throw new DBInitException("Failed to create table: " + tableName, e); } } - protected void renameTable(String to) throws SQLException { + protected void renameTable(String to) { String sql = usingMySQL ? "RENAME TABLE " + tableName + " TO " + to : "ALTER TABLE " + tableName + " RENAME TO " + to; @@ -55,7 +58,9 @@ public abstract class Table { * * @return SQL Connection * @throws SQLException DB Error + * @deprecated Use db.getConnection - db is protected variable. */ + @Deprecated protected Connection getConnection() throws SQLException { return db.getConnection(); } @@ -64,20 +69,20 @@ public abstract class Table { * Get the Database Schema version from VersionTable. * * @return Database Schema version. - * @throws SQLException DB Error + * @deprecated Use db.getVersion - db is protected variable. */ - public int getVersion() throws SQLException { + @Deprecated + public int getVersion() { return db.getVersion(); } /** * Executes an SQL Statement * - * @param statementString Statement to setUp - * @return What setUp returns. - * @throws SQLException DB error + * @param statementString Statement to execute in the database. + * @return true if rows were updated. */ - protected boolean execute(String statementString) throws SQLException { + protected boolean execute(String statementString) { return execute(new ExecStatement(statementString) { @Override public void prepare(PreparedStatement statement) { @@ -87,7 +92,7 @@ public abstract class Table { } /** - * Used to setUp queries while possible SQLExceptions are suppressed. + * Used to execute statements while possible exceptions are suppressed. * * @param statements SQL statements to setUp */ @@ -96,8 +101,8 @@ public abstract class Table { for (String statement : statements) { try { execute(statement); - } catch (SQLException ignored) { - /* Ignored */ + } catch (DBOpException ignored) { + /* ignored */ } } } @@ -118,7 +123,7 @@ public abstract class Table { /** * Removes all data from the table. */ - public void removeAllData() throws SQLException { + public void removeAllData() { execute("DELETE FROM " + tableName); } @@ -158,7 +163,11 @@ public abstract class Table { Objects.equal(db, table.db); } - protected void commit(Connection connection) throws SQLException { + /** + * @deprecated Use db.commit - db is a protected variable. + */ + @Deprecated + protected void commit(Connection connection) { db.commit(connection); } @@ -167,45 +176,15 @@ public abstract class Table { return Objects.hashCode(tableName, db, usingMySQL); } - public SQLDB getDb() { - return db; + protected boolean execute(ExecStatement statement) { + return db.execute(statement); } - protected boolean execute(ExecStatement statement) throws SQLException { - Connection connection = null; - try { - connection = getConnection(); - try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { - return statement.execute(preparedStatement); - } - } finally { - commit(connection); - db.returnToPool(connection); - } + protected void executeBatch(ExecStatement statement) { + db.executeBatch(statement); } - protected void executeBatch(ExecStatement statement) throws SQLException { - Connection connection = null; - try { - connection = getConnection(); - try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { - statement.executeBatch(preparedStatement); - } - } finally { - commit(connection); - db.returnToPool(connection); - } - } - - protected T query(QueryStatement statement) throws SQLException { - Connection connection = null; - try { - connection = getConnection(); - try (PreparedStatement preparedStatement = connection.prepareStatement(statement.getSql())) { - return statement.executeQuery(preparedStatement); - } - } finally { - db.returnToPool(connection); - } + protected T query(QueryStatement statement) { + return db.query(statement); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TransferTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TransferTable.java index 320add322..737644c46 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TransferTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/TransferTable.java @@ -75,7 +75,7 @@ public class TransferTable extends Table { addColumns(Col.PART + " bigint NOT NULL DEFAULT 0"); } - public void clean() throws SQLException { + public void clean() { String sql = "DELETE FROM " + tableName + " WHERE " + Col.EXPIRY + " < ?" + " AND " + Col.INFO_TYPE + " != ?"; @@ -101,7 +101,7 @@ public class TransferTable extends Table { } @Deprecated - public Optional getServerPlayerIsOnline(UUID playerUUID) throws SQLException { + public Optional getServerPlayerIsOnline(UUID playerUUID) { String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; String sql = "SELECT " + @@ -127,7 +127,7 @@ public class TransferTable extends Table { }); } - public void storeConfigSettings(String encodedSettingString) throws SQLException { + public void storeConfigSettings(String encodedSettingString) { execute(new ExecStatement(insertStatementNoParts) { @Override public void prepare(PreparedStatement statement) throws SQLException { @@ -140,7 +140,7 @@ public class TransferTable extends Table { }); } - public Optional getConfigSettings() throws SQLException { + public Optional getConfigSettings() { return query(new QueryStatement>(selectStatement, 100) { @Override public void prepare(PreparedStatement statement) throws SQLException { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserIDTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserIDTable.java index 1c1e4b511..a5ea3d924 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserIDTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserIDTable.java @@ -42,7 +42,7 @@ public abstract class UserIDTable extends Table { usersTable = db.getUsersTable(); } - public void removeUser(UUID uuid) throws SQLException { + public void removeUser(UUID uuid) { String sql = "DELETE FROM " + tableName + " WHERE (" + Col.USER_ID + "=" + usersTable.statementSelectID + ")"; execute(new ExecStatement(sql) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserInfoTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserInfoTable.java index 91ec457c4..c61fbae8f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserInfoTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UserInfoTable.java @@ -50,7 +50,7 @@ public class UserInfoTable extends UserIDTable { serverTable = db.getServerTable(); } - public void registerUserInfo(UUID uuid, long registered) throws SQLException { + public void registerUserInfo(UUID uuid, long registered) { if (!usersTable.isRegistered(uuid)) { usersTable.registerUser(uuid, registered, "Waiting for Update.."); } @@ -74,7 +74,7 @@ public class UserInfoTable extends UserIDTable { }); } - public boolean isRegistered(UUID uuid, UUID serverUUID) throws SQLException { + public boolean isRegistered(UUID uuid, UUID serverUUID) { String sql = Select.from(tableName, "COUNT(" + Col.USER_ID + ") as c") .where(Col.USER_ID + "=" + usersTable.statementSelectID) .and(Col.SERVER_ID + "=" + serverTable.statementSelectServerID) @@ -94,11 +94,11 @@ public class UserInfoTable extends UserIDTable { }); } - public boolean isRegistered(UUID uuid) throws SQLException { + public boolean isRegistered(UUID uuid) { return isRegistered(uuid, ServerInfo.getServerUUID()); } - public void updateOpStatus(UUID uuid, boolean op) throws SQLException { + public void updateOpStatus(UUID uuid, boolean op) { String sql = Update.values(tableName, Col.OP) .where(Col.USER_ID + "=" + usersTable.statementSelectID) .toString(); @@ -112,7 +112,7 @@ public class UserInfoTable extends UserIDTable { }); } - public void updateBanStatus(UUID uuid, boolean banned) throws SQLException { + public void updateBanStatus(UUID uuid, boolean banned) { String sql = Update.values(tableName, Col.BANNED) .where(Col.USER_ID + "=" + usersTable.statementSelectID) .toString(); @@ -126,7 +126,7 @@ public class UserInfoTable extends UserIDTable { }); } - public Map getAllUserInfo(UUID uuid) throws SQLException { + public Map getAllUserInfo(UUID uuid) { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String usersNameColumn = usersTable + "." + UsersTable.Col.USER_NAME + " as name"; @@ -165,11 +165,11 @@ public class UserInfoTable extends UserIDTable { }); } - public UserInfo getUserInfo(UUID uuid) throws SQLException { + public UserInfo getUserInfo(UUID uuid) { return getAllUserInfo(uuid).get(ServerInfo.getServerUUID()); } - public List getServerUserInfo(UUID serverUUID) throws SQLException { + public List getServerUserInfo(UUID serverUUID) { Optional serverID = serverTable.getServerID(serverUUID); if (!serverID.isPresent()) { return new ArrayList<>(); @@ -212,11 +212,11 @@ public class UserInfoTable extends UserIDTable { * * @return List of UserInfo objects. */ - public List getServerUserInfo() throws SQLException { + public List getServerUserInfo() { return getServerUserInfo(ServerInfo.getServerUUID()); } - public Map> getAllUserInfo() throws SQLException { + public Map> getAllUserInfo() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; @@ -254,7 +254,7 @@ public class UserInfoTable extends UserIDTable { }); } - public void insertUserInfo(Map> allUserInfos) throws SQLException { + public void insertUserInfo(Map> allUserInfos) { if (Verify.isEmpty(allUserInfos)) { return; } @@ -290,7 +290,7 @@ public class UserInfoTable extends UserIDTable { }); } - public Map> getSavedUUIDs() throws SQLException { + public Map> getSavedUUIDs() { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; @@ -320,7 +320,7 @@ public class UserInfoTable extends UserIDTable { }); } - public int getServerUserCount(UUID serverUUID) throws SQLException { + public int getServerUserCount(UUID serverUUID) { String sql = "SELECT " + " COUNT(" + Col.REGISTERED + ") as c" + " FROM " + tableName + @@ -366,7 +366,7 @@ public class UserInfoTable extends UserIDTable { } } - public Set getSavedUUIDs(UUID serverUUID) throws SQLException { + public Set getSavedUUIDs(UUID serverUUID) { String usersIDColumn = usersTable + "." + UsersTable.Col.ID; String usersUUIDColumn = usersTable + "." + UsersTable.Col.UUID + " as uuid"; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UsersTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UsersTable.java index a9f30c756..dfa4c6b81 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UsersTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/UsersTable.java @@ -1,7 +1,6 @@ package com.djrapitops.plan.system.database.databases.sql.tables; import com.djrapitops.plan.api.exceptions.database.DBInitException; -import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.UserInfo; import com.djrapitops.plan.data.store.Key; import com.djrapitops.plan.data.store.containers.DataContainer; @@ -57,9 +56,8 @@ public class UsersTable extends UserIDTable { /** * @return a {@link Set} of the saved UUIDs. - * @throws SQLException when an error at retrieving the UUIDs happens */ - public Set getSavedUUIDs() throws SQLException { + public Set getSavedUUIDs() { String sql = Select.from(tableName, Col.UUID).toString(); return query(new QueryAllStatement>(sql, 50000) { @@ -79,10 +77,9 @@ public class UsersTable extends UserIDTable { * Remove a user from Users Table. * * @param uuid the UUID of the user that should be removed. - * @throws SQLException DB Error */ @Override - public void removeUser(UUID uuid) throws SQLException { + public void removeUser(UUID uuid) { String sql = "DELETE FROM " + tableName + " WHERE (" + Col.UUID + "=?)"; execute(new ExecStatement(sql) { @@ -114,9 +111,8 @@ public class UsersTable extends UserIDTable { * * @param playerName Name of a player * @return UUID of the player - * @throws SQLException DB Error */ - public UUID getUuidOf(String playerName) throws SQLException { + public UUID getUuidOf(String playerName) { String sql = Select.from(tableName, Col.UUID) .where("UPPER(" + Col.USER_NAME + ")=UPPER(?)") .toString(); @@ -138,7 +134,7 @@ public class UsersTable extends UserIDTable { }); } - public List getRegisterDates() throws SQLException { + public List getRegisterDates() { String sql = Select.from(tableName, Col.REGISTERED).toString(); return query(new QueryAllStatement>(sql, 50000) { @@ -153,7 +149,7 @@ public class UsersTable extends UserIDTable { }); } - public boolean isRegistered(UUID uuid) throws SQLException { + public boolean isRegistered(UUID uuid) { String sql = Select.from(tableName, "COUNT(" + Col.ID + ") as c") .where(Col.UUID + "=?") .toString(); @@ -177,10 +173,9 @@ public class UsersTable extends UserIDTable { * @param uuid UUID of the player. * @param registered Register date. * @param name Name of the player. - * @throws SQLException DB Error * @throws IllegalArgumentException If uuid or name are null. */ - public void registerUser(UUID uuid, long registered, String name) throws SQLException { + public void registerUser(UUID uuid, long registered, String name) { Verify.nullCheck(uuid, name); execute(new ExecStatement(insertStatement) { @@ -193,7 +188,7 @@ public class UsersTable extends UserIDTable { }); } - public void updateName(UUID uuid, String name) throws SQLException { + public void updateName(UUID uuid, String name) { String sql = Update.values(tableName, Col.USER_NAME.get()) .where(Col.UUID + "=?") .toString(); @@ -207,7 +202,7 @@ public class UsersTable extends UserIDTable { }); } - public int getTimesKicked(UUID uuid) throws SQLException { + public int getTimesKicked(UUID uuid) { String sql = Select.from(tableName, Col.TIMES_KICKED) .where(Col.UUID + "=?") .toString(); @@ -228,7 +223,7 @@ public class UsersTable extends UserIDTable { }); } - public void kicked(UUID uuid) throws SQLException { + public void kicked(UUID uuid) { String sql = "UPDATE " + tableName + " SET " + Col.TIMES_KICKED + "=" + Col.TIMES_KICKED + "+ 1" + " WHERE " + Col.UUID + "=?"; @@ -241,7 +236,7 @@ public class UsersTable extends UserIDTable { }); } - public String getPlayerName(UUID uuid) throws SQLException { + public String getPlayerName(UUID uuid) { String sql = Select.from(tableName, Col.USER_NAME).where(Col.UUID + "=?").toString(); return query(new QueryStatement(sql) { @@ -265,9 +260,8 @@ public class UsersTable extends UserIDTable { * * @param name the name / nickname. * @return a list of distinct names. - * @throws SQLException when an error at fetching the names happens. */ - public List getMatchingNames(String name) throws SQLException { + public List getMatchingNames(String name) { String searchString = "%" + name.toLowerCase() + "%"; NicknamesTable nicknamesTable = db.getNicknamesTable(); String sql = "SELECT DISTINCT " + Col.USER_NAME + " FROM " + tableName + @@ -302,7 +296,7 @@ public class UsersTable extends UserIDTable { return Col.USER_NAME.get(); } - public Map getUsers() throws SQLException { + public Map getUsers() { String sql = Select.all(tableName).toString(); return query(new QueryAllStatement>(sql, 20000) { @@ -328,9 +322,8 @@ public class UsersTable extends UserIDTable { * Use UserInfoTable instead. * * @param users Users to insert - * @throws SQLException DB Error */ - public void insertUsers(Map users) throws SQLException { + public void insertUsers(Map users) { if (Verify.isEmpty(users)) { return; } @@ -353,7 +346,7 @@ public class UsersTable extends UserIDTable { }); } - public void updateKicked(Map timesKicked) throws SQLException { + public void updateKicked(Map timesKicked) { if (Verify.isEmpty(timesKicked)) { return; } @@ -374,7 +367,7 @@ public class UsersTable extends UserIDTable { }); } - public Map getAllTimesKicked() throws SQLException { + public Map getAllTimesKicked() { String sql = Select.from(tableName, Col.UUID, Col.TIMES_KICKED).toString(); return query(new QueryAllStatement>(sql, 20000) { @@ -392,7 +385,7 @@ public class UsersTable extends UserIDTable { }); } - public Map getPlayerNames() throws SQLException { + public Map getPlayerNames() { String sql = Select.from(tableName, Col.UUID, Col.USER_NAME).toString(); return query(new QueryAllStatement>(sql, 20000) { @@ -410,7 +403,7 @@ public class UsersTable extends UserIDTable { }); } - public Optional getRegisterDate(UUID uuid) throws SQLException { + public Optional getRegisterDate(UUID uuid) { String sql = Select.from(tableName, Col.REGISTERED).where(Col.UUID + "=?").toString(); return query(new QueryStatement>(sql) { @@ -429,7 +422,7 @@ public class UsersTable extends UserIDTable { }); } - public int getPlayerCount() throws SQLException { + public int getPlayerCount() { String sql = "SELECT COUNT(*) AS player_count FROM " + tableName; return query(new QueryAllStatement(sql) { @@ -443,7 +436,7 @@ public class UsersTable extends UserIDTable { }); } - public Map getUUIDsByID() throws SQLException { + public Map getUUIDsByID() { String sql = Select.from(tableName, Col.ID, Col.UUID).toString(); return query(new QueryAllStatement>(sql, 20000) { @@ -467,33 +460,29 @@ public class UsersTable extends UserIDTable { DataContainer returnValue = new DataContainer(); Supplier usersTableResults = () -> { - try { - String sql = "SELECT * FROM " + tableName + " WHERE " + Col.UUID + "=?"; + String sql = "SELECT * FROM " + tableName + " WHERE " + Col.UUID + "=?"; - return query(new QueryStatement(sql) { - @Override - public void prepare(PreparedStatement statement) throws SQLException { - statement.setString(1, uuid.toString()); + return query(new QueryStatement(sql) { + @Override + public void prepare(PreparedStatement statement) throws SQLException { + statement.setString(1, uuid.toString()); + } + + @Override + public DataContainer processResults(ResultSet set) throws SQLException { + DataContainer container = new DataContainer(); + + if (set.next()) { + long registered = set.getLong(Col.REGISTERED.get()); + String name = set.getString(Col.USER_NAME.get()); + + container.putRawData(PlayerKeys.REGISTERED, registered); + container.putRawData(PlayerKeys.NAME, name); } - @Override - public DataContainer processResults(ResultSet set) throws SQLException { - DataContainer container = new DataContainer(); - - if (set.next()) { - long registered = set.getLong(Col.REGISTERED.get()); - String name = set.getString(Col.USER_NAME.get()); - - container.putRawData(PlayerKeys.REGISTERED, registered); - container.putRawData(PlayerKeys.NAME, name); - } - - return container; - } - }); - } catch (SQLException e) { - throw new DBOpException("Failed to fetch user info from plan_users", e); - } + return container; + } + }); }; returnValue.putSupplier(key, usersTableResults); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/VersionTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/VersionTable.java index ae2673875..096275018 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/VersionTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/VersionTable.java @@ -29,7 +29,7 @@ public class VersionTable extends Table { ); } - public boolean isNewDatabase() throws SQLException { + public boolean isNewDatabase() { String sql = usingMySQL ? "SHOW TABLES LIKE ?" : "SELECT tbl_name FROM sqlite_master WHERE tbl_name=?"; @@ -51,7 +51,7 @@ public class VersionTable extends Table { * @return @throws SQLException */ @Override - public int getVersion() throws SQLException { + public int getVersion() { String sql = "SELECT * FROM " + tableName; return query(new QueryAllStatement(sql) { @@ -70,9 +70,8 @@ public class VersionTable extends Table { * Set the DB Schema version * * @param version DB Schema version - * @throws SQLException DB Error */ - public void setVersion(int version) throws SQLException { + public void setVersion(int version) { removeAllData(); String sql = "INSERT INTO " + tableName + " (version) VALUES (?)"; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTable.java index 826d870de..bfdf93c89 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTable.java @@ -58,9 +58,8 @@ public class WorldTable extends Table { * Used to get the available world names. * * @return List of all world names in the database. - * @throws SQLException Database error occurs. */ - public List getAllWorlds() throws SQLException { + public List getAllWorlds() { String sql = "SELECT * FROM " + tableName; return query(new QueryAllStatement>(sql) { @@ -76,7 +75,7 @@ public class WorldTable extends Table { }); } - public Map> getWorldsPerServer() throws SQLException { + public Map> getWorldsPerServer() { Map serverUUIDsByID = serverTable.getServerUUIDsByID(); String sql = "SELECT * FROM " + tableName; @@ -96,7 +95,7 @@ public class WorldTable extends Table { }); } - public Map getServerUUIDByWorldID() throws SQLException { + public Map getServerUUIDByWorldID() { Map serverUUIDsByID = serverTable.getServerUUIDsByID(); String sql = "SELECT DISTINCT " + Col.ID + ", " + @@ -117,11 +116,11 @@ public class WorldTable extends Table { }); } - public List getWorlds() throws SQLException { + public List getWorlds() { return getWorlds(ServerInfo.getServerUUID()); } - public List getWorlds(UUID serverUUID) throws SQLException { + public List getWorlds(UUID serverUUID) { String sql = "SELECT * FROM " + tableName + " WHERE " + Col.SERVER_ID + "=" + serverTable.statementSelectServerID; @@ -144,7 +143,7 @@ public class WorldTable extends Table { }); } - public void saveWorlds(Collection worlds) throws SQLException { + public void saveWorlds(Collection worlds) { saveWorlds(worlds, ServerInfo.getServerUUID()); } @@ -154,9 +153,8 @@ public class WorldTable extends Table { * Already saved names will not be saved. * * @param worlds List of world names. - * @throws SQLException Database error occurs. */ - public void saveWorlds(Collection worlds, UUID serverUUID) throws SQLException { + public void saveWorlds(Collection worlds, UUID serverUUID) { Verify.nullCheck(worlds); Set worldsToSave = new HashSet<>(worlds); @@ -183,7 +181,7 @@ public class WorldTable extends Table { }); } - public Set getWorldNames(UUID serverUUID) throws SQLException { + public Set getWorldNames(UUID serverUUID) { String sql = "SELECT DISTINCT " + Col.NAME + " FROM " + tableName + " WHERE " + Col.SERVER_ID + "=" + serverTable.statementSelectServerID; return query(new QueryStatement>(sql, 100) { @@ -208,11 +206,10 @@ public class WorldTable extends Table { * * @param serverUUID UUID of the Server * @return World names known for that server - * @throws SQLException If DB Error occurs * @deprecated Use getWorldNames instead, this method is slower. */ @Deprecated - public Set getWorldNamesOld(UUID serverUUID) throws SQLException { + public Set getWorldNamesOld(UUID serverUUID) { WorldTimesTable worldTimesTable = db.getWorldTimesTable(); SessionsTable sessionsTable = db.getSessionsTable(); @@ -247,7 +244,7 @@ public class WorldTable extends Table { }); } - public void alterTableV16() throws SQLException { + public void alterTableV16() { addColumns(Col.SERVER_ID + " integer NOT NULL DEFAULT 0"); List serverUUIDs = serverTable.getServerUUIDs(); @@ -268,7 +265,7 @@ public class WorldTable extends Table { execute("DELETE FROM " + tableName + " WHERE " + Col.SERVER_ID + "=0"); } - private void updateWorldTimesTableWorldIDs() throws SQLException { + private void updateWorldTimesTableWorldIDs() { List worldObjects = getWorldObjects(); Map> oldToNewMap = worldObjects.stream() @@ -302,7 +299,7 @@ public class WorldTable extends Table { }); } - public Map> getWorldIDsByServerIDs() throws SQLException { + public Map> getWorldIDsByServerIDs() { String sql = "SELECT " + Col.ID + ", " + Col.SERVER_ID + @@ -324,7 +321,7 @@ public class WorldTable extends Table { }); } - public List getWorldObjects() throws SQLException { + public List getWorldObjects() { String sql = "SELECT * FROM " + tableName; return query(new QueryAllStatement>(sql, 100) { @Override diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTimesTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTimesTable.java index 16a8ae508..62a4b3440 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTimesTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/WorldTimesTable.java @@ -1,6 +1,7 @@ package com.djrapitops.plan.system.database.databases.sql.tables; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.data.time.GMTimes; import com.djrapitops.plan.data.time.WorldTimes; @@ -81,7 +82,7 @@ public class WorldTimesTable extends UserIDTable { ); } - public void addWorldTimesToSessions(UUID uuid, Map sessions) throws SQLException { + public void addWorldTimesToSessions(UUID uuid, Map sessions) { String worldIDColumn = worldTable + "." + WorldTable.Col.ID; String worldNameColumn = worldTable + "." + WorldTable.Col.NAME + " as world_name"; String sql = "SELECT " + @@ -129,7 +130,7 @@ public class WorldTimesTable extends UserIDTable { }); } - public void saveWorldTimes(UUID uuid, int sessionID, WorldTimes worldTimes) throws SQLException { + public void saveWorldTimes(UUID uuid, int sessionID, WorldTimes worldTimes) { Map worldTimesMap = worldTimes.getWorldTimes(); if (Verify.isEmpty(worldTimesMap)) { return; @@ -162,7 +163,7 @@ public class WorldTimesTable extends UserIDTable { }); } - public WorldTimes getWorldTimesOfServer(UUID serverUUID) throws SQLException { + public WorldTimes getWorldTimesOfServer(UUID serverUUID) { String worldIDColumn = worldTable + "." + WorldTable.Col.ID; String worldNameColumn = worldTable + "." + WorldTable.Col.NAME + " as world_name"; String sql = "SELECT " + @@ -204,7 +205,7 @@ public class WorldTimesTable extends UserIDTable { }); } - public WorldTimes getWorldTimesOfUser(UUID uuid) throws SQLException { + public WorldTimes getWorldTimesOfUser(UUID uuid) { String worldIDColumn = worldTable + "." + WorldTable.Col.ID; String worldNameColumn = worldTable + "." + WorldTable.Col.NAME + " as world_name"; String sql = "SELECT " + @@ -246,7 +247,7 @@ public class WorldTimesTable extends UserIDTable { }); } - public Map getAllWorldTimesBySessionID() throws SQLException { + public Map getAllWorldTimesBySessionID() { String worldIDColumn = worldTable + "." + WorldTable.Col.ID; String worldNameColumn = worldTable + "." + WorldTable.Col.NAME + " as world_name"; String sql = "SELECT " + @@ -286,7 +287,7 @@ public class WorldTimesTable extends UserIDTable { }); } - public void addWorldTimesToSessions(Map>> map) throws SQLException { + public void addWorldTimesToSessions(Map>> map) { Map worldTimesBySessionID = getAllWorldTimesBySessionID(); for (UUID serverUUID : map.keySet()) { @@ -301,7 +302,7 @@ public class WorldTimesTable extends UserIDTable { } } - public void saveWorldTimes(Map>> allSessions) throws SQLException { + public void saveWorldTimes(Map>> allSessions) { if (Verify.isEmpty(allSessions)) { return; } @@ -380,7 +381,7 @@ public class WorldTimesTable extends UserIDTable { }); worldTable.alterTableV16(); - } catch (SQLException e) { + } catch (DBOpException e) { Log.toLog(this.getClass().getName(), e); } finally { cancel(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/BatchOperationTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/BatchOperationTable.java index 9250679b7..4c3ca43c4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/BatchOperationTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/BatchOperationTable.java @@ -4,7 +4,6 @@ */ package com.djrapitops.plan.system.database.databases.sql.tables.move; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.container.UserInfo; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.tables.ServerTable; @@ -13,7 +12,6 @@ import com.djrapitops.plan.system.database.databases.sql.tables.UsersTable; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plugin.api.utility.log.Log; -import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -60,24 +58,16 @@ public class BatchOperationTable extends Table { throw new IllegalStateException("Method not supposed to be used on this table."); } - public void clearTable(Table table) throws SQLException { + public void clearTable(Table table) { table.removeAllData(); } @Override - public void removeAllData() throws SQLException { - try { - db.remove().everything(); - } catch (DBException e) { - if (e.getCause() instanceof SQLException) { - throw (SQLException) e.getCause(); - } else { - Log.toLog(this.getClass(), e); - } - } + public void removeAllData() { + db.remove().everything(); } - public void copyEverything(BatchOperationTable toDB) throws SQLException { + public void copyEverything(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } @@ -97,47 +87,47 @@ public class BatchOperationTable extends Table { copyUserInfo(toDB); } - public void copyActions(BatchOperationTable toDB) throws SQLException { + public void copyActions(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Actions"); - toDB.getDb().getActionsTable().insertActions(db.getActionsTable().getAllActions()); + toDB.db.getActionsTable().insertActions(db.getActionsTable().getAllActions()); } - public void copyCommandUse(BatchOperationTable toDB) throws SQLException { + public void copyCommandUse(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Commands"); - toDB.getDb().getCommandUseTable().insertCommandUsage(db.getCommandUseTable().getAllCommandUsages()); + toDB.db.getCommandUseTable().insertCommandUsage(db.getCommandUseTable().getAllCommandUsages()); } - public void copyIPsAndGeolocs(BatchOperationTable toDB) throws SQLException { + public void copyIPsAndGeolocs(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy IPs, Geolocations & Last used dates"); - toDB.getDb().getGeoInfoTable().insertAllGeoInfo(db.getGeoInfoTable().getAllGeoInfo()); + toDB.db.getGeoInfoTable().insertAllGeoInfo(db.getGeoInfoTable().getAllGeoInfo()); } - public void copyNicknames(BatchOperationTable toDB) throws SQLException { + public void copyNicknames(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Nicknames"); - toDB.getDb().getNicknamesTable().insertNicknames(db.getNicknamesTable().getAllNicknames()); + toDB.db.getNicknamesTable().insertNicknames(db.getNicknamesTable().getAllNicknames()); } - public void copyWebUsers(BatchOperationTable toDB) throws SQLException { + public void copyWebUsers(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy WebUsers"); - toDB.getDb().getSecurityTable().addUsers(db.getSecurityTable().getUsers()); + toDB.db.getSecurityTable().addUsers(db.getSecurityTable().getUsers()); } - public void copyServers(BatchOperationTable toDB) throws SQLException { + public void copyServers(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } @@ -145,50 +135,50 @@ public class BatchOperationTable extends Table { ServerTable serverTable = db.getServerTable(); List servers = new ArrayList<>(serverTable.getBukkitServers().values()); serverTable.getBungeeInfo().ifPresent(servers::add); - toDB.getDb().getServerTable().insertAllServers(servers); + toDB.db.getServerTable().insertAllServers(servers); } - public void copyTPS(BatchOperationTable toDB) throws SQLException { + public void copyTPS(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy TPS"); - toDB.getDb().getTpsTable().insertAllTPS(db.getTpsTable().getAllTPS()); + toDB.db.getTpsTable().insertAllTPS(db.getTpsTable().getAllTPS()); } - public void copyUserInfo(BatchOperationTable toDB) throws SQLException { + public void copyUserInfo(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy UserInfo"); - toDB.getDb().getUserInfoTable().insertUserInfo(db.getUserInfoTable().getAllUserInfo()); + toDB.db.getUserInfoTable().insertUserInfo(db.getUserInfoTable().getAllUserInfo()); } - public void copyWorlds(BatchOperationTable toDB) throws SQLException { + public void copyWorlds(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Worlds"); - toDB.getDb().getWorldTable().saveWorlds(db.getWorldTable().getAllWorlds()); + toDB.db.getWorldTable().saveWorlds(db.getWorldTable().getAllWorlds()); } - public void copyUsers(BatchOperationTable toDB) throws SQLException { + public void copyUsers(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Users"); UsersTable fromTable = db.getUsersTable(); - UsersTable toTable = toDB.getDb().getUsersTable(); + UsersTable toTable = toDB.db.getUsersTable(); Map users = fromTable.getUsers(); toTable.insertUsers(users); toTable.updateKicked(fromTable.getAllTimesKicked()); } - public void copySessions(BatchOperationTable toDB) throws SQLException { + public void copySessions(BatchOperationTable toDB) { if (toDB.equals(this)) { return; } Log.debug("Batch Copy Sessions"); - toDB.getDb().getSessionsTable().insertSessions(db.getSessionsTable().getAllSessions(true), true); + toDB.db.getSessionsTable().insertSessions(db.getSessionsTable().getAllSessions(true), true); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/TransferTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/TransferTable.java index 2f46464eb..1ab454a76 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/TransferTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/TransferTable.java @@ -3,8 +3,6 @@ package com.djrapitops.plan.system.database.databases.sql.tables.move; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.tables.Table; -import java.sql.SQLException; - /** * Abstract table used for transferring a whole table to a new table. * @@ -21,14 +19,14 @@ public class TransferTable extends Table { throw new IllegalStateException("Method not supposed to be used on this table."); } - protected void renameTable(String from, String to) throws SQLException { + protected void renameTable(String from, String to) { String sql = usingMySQL ? "RENAME TABLE " + from + " TO " + to : "ALTER TABLE " + from + " RENAME TO " + to; execute(sql); } - protected void dropTable(String name) throws SQLException { + protected void dropTable(String name) { String sql = "DROP TABLE " + name; execute(sql); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version18TransferTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version18TransferTable.java index e6494b0d4..6990cadb3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version18TransferTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version18TransferTable.java @@ -1,10 +1,9 @@ package com.djrapitops.plan.system.database.databases.sql.tables.move; import com.djrapitops.plan.api.exceptions.database.DBInitException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.sql.SQLDB; -import java.sql.SQLException; - /** * DB Schema v17 -> 18 table. *

@@ -14,16 +13,16 @@ import java.sql.SQLException; */ public class Version18TransferTable extends TransferTable { - public Version18TransferTable(SQLDB db) throws SQLException { + public Version18TransferTable(SQLDB db) { super(db); } - public void alterTableV18() throws SQLException, DBInitException { + public void alterTableV18() throws DBInitException { String tempTableName = "plan_ips_temp"; String ipTableName = "plan_ips"; try { renameTable(ipTableName, tempTableName); - } catch (SQLException e) { + } catch (DBOpException e) { // Temp table already exists if (!e.getMessage().contains("plan_ips_temp")) { throw e; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version8TransferTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version8TransferTable.java index c6aa9425b..067ff854f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version8TransferTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/move/Version8TransferTable.java @@ -10,7 +10,6 @@ import com.djrapitops.plan.system.database.databases.sql.tables.*; import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plugin.api.Benchmark; -import java.sql.SQLException; import java.util.Optional; /** @@ -24,7 +23,7 @@ public class Version8TransferTable extends TransferTable { private final int serverID; - public Version8TransferTable(SQLDB db) throws SQLException { + public Version8TransferTable(SQLDB db) { super(db); Optional serverID = db.getServerTable().getServerID(ServerInfo.getServerUUID()); if (!serverID.isPresent()) { @@ -33,7 +32,7 @@ public class Version8TransferTable extends TransferTable { this.serverID = serverID.get(); } - public void alterTablesToV10() throws SQLException, DBInitException { + public void alterTablesToV10() throws DBInitException { Benchmark.start("Schema copy from 8 to 10"); copyCommandUsage(); @@ -61,7 +60,7 @@ public class Version8TransferTable extends TransferTable { Benchmark.stop("Schema copy from 8 to 10"); } - private void copyUsers() throws SQLException, DBInitException { + private void copyUsers() throws DBInitException { String tempTableName = "temp_users"; UsersTable usersTable = db.getUsersTable(); renameTable("plan_users", tempTableName); @@ -122,7 +121,7 @@ public class Version8TransferTable extends TransferTable { } } - private void copyCommandUsage() throws SQLException, DBInitException { + private void copyCommandUsage() throws DBInitException { String tempTableName = "temp_cmdusg"; CommandUseTable commandUseTable = db.getCommandUseTable(); @@ -141,7 +140,7 @@ public class Version8TransferTable extends TransferTable { dropTable(tempTableName); } - private void copyTPS() throws SQLException, DBInitException { + private void copyTPS() throws DBInitException { String tempTableName = "temp_tps"; TPSTable tpsTable = db.getTpsTable(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java index d78ea2801..0892c2fe6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java @@ -5,7 +5,7 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.NoServersException; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.request.*; import com.djrapitops.plan.system.info.server.Server; @@ -35,7 +35,7 @@ public class BungeeConnectionSystem extends ConnectionSystem { try { bukkitServers = Database.getActive().fetch().getBukkitServers(); latestServerMapRefresh = System.currentTimeMillis(); - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java index 065520cb3..cb1753a92 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java @@ -1,7 +1,7 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.*; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.info.request.SetupRequest; @@ -40,7 +40,7 @@ public class ConnectionIn { if (Database.getActive().check().isServerInDatabase(serverUUID)) { return; } - } catch (DBException e) { + } catch (DBOpException e) { throw new TransferDatabaseException(e); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java index 50d9c9716..e4c96639f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java @@ -8,7 +8,7 @@ import com.djrapitops.plan.Plan; import com.djrapitops.plan.api.exceptions.connection.NoServersException; import com.djrapitops.plan.api.exceptions.connection.UnsupportedTransferDatabaseException; import com.djrapitops.plan.api.exceptions.connection.WebException; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.SubSystem; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.InfoSystem; @@ -104,7 +104,7 @@ public abstract class ConnectionSystem implements SubSystem { return Database.getActive().transfer().getServerPlayerIsOnlineOn(playerUUID); } catch (UnsupportedTransferDatabaseException e) { /* Do nothing */ - } catch (DBException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } return Optional.empty(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java index da212d303..942222667 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java @@ -6,7 +6,6 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.ConnectionFailException; import com.djrapitops.plan.api.exceptions.connection.NoServersException; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.request.*; import com.djrapitops.plan.system.info.server.Server; @@ -40,15 +39,11 @@ public class ServerConnectionSystem extends ConnectionSystem { private void refreshServerMap() { Processing.submitNonCritical(() -> { if (latestServerMapRefresh < System.currentTimeMillis() - TimeAmount.SECOND.ms() * 15L) { - try { - Database database = Database.getActive(); - Optional bungeeInformation = database.fetch().getBungeeInformation(); - bungeeInformation.ifPresent(server -> mainServer = server); - bukkitServers = database.fetch().getBukkitServers(); - latestServerMapRefresh = System.currentTimeMillis(); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + Database database = Database.getActive(); + Optional bungeeInformation = database.fetch().getBungeeInformation(); + bungeeInformation.ifPresent(server -> mainServer = server); + bukkitServers = database.fetch().getBukkitServers(); + latestServerMapRefresh = System.currentTimeMillis(); } }); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/server/BukkitServerInfo.java b/Plan/src/main/java/com/djrapitops/plan/system/info/server/BukkitServerInfo.java index ec40a54c4..4bb70cdbf 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/server/BukkitServerInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/server/BukkitServerInfo.java @@ -6,12 +6,11 @@ package com.djrapitops.plan.system.info.server; import com.djrapitops.plan.Plan; import com.djrapitops.plan.api.exceptions.EnableException; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.file.FileSystem; import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.system.webserver.WebServerSystem; -import com.djrapitops.plugin.api.utility.log.Log; import java.io.IOException; import java.util.Optional; @@ -53,7 +52,7 @@ public class BukkitServerInfo extends ServerInfo { Optional serverUUID = serverInfoFile.getUUID(); try { return serverUUID.isPresent() ? updateDbInfo(serverUUID.get()) : registerServer(); - } catch (DBException e) { + } catch (DBOpException e) { String causeMsg = e.getCause().getMessage(); throw new EnableException("Failed to read Server information from Database: " + causeMsg, e); } catch (IOException e) { @@ -61,7 +60,7 @@ public class BukkitServerInfo extends ServerInfo { } } - private Server updateDbInfo(UUID serverUUID) throws IOException, DBException { + private Server updateDbInfo(UUID serverUUID) throws IOException { Optional serverID = database.fetch().getServerID(serverUUID); if (!serverID.isPresent()) { return registerServer(serverUUID); @@ -78,11 +77,11 @@ public class BukkitServerInfo extends ServerInfo { return server; } - private Server registerServer() throws DBException, IOException { + private Server registerServer() throws IOException { return registerServer(generateNewUUID(serverProperties)); } - private Server registerServer(UUID serverUUID) throws DBException, IOException { + private Server registerServer(UUID serverUUID) throws IOException { String webAddress = WebServerSystem.getInstance().getWebServer().getAccessAddress(); String name = Settings.SERVER_NAME.toString().replaceAll("[^a-zA-Z0-9_\\s]", "_"); int maxPlayers = ServerInfo.getServerProperties().getMaxPlayers(); @@ -106,17 +105,4 @@ public class BukkitServerInfo extends ServerInfo { String seed = serverProperties.getServerId() + serverProperties.getName() + serverProperties.getIp() + serverProperties.getPort() + serverProperties.getVersion() + serverProperties.getImplVersion(); return UUID.nameUUIDFromBytes(seed.getBytes()); } - - @Deprecated - public Optional getBungeeConnectionAddress() { - try { - Optional bungeeInfo = Database.getActive().fetch().getBungeeInformation(); - if (bungeeInfo.isPresent()) { - return Optional.of(bungeeInfo.get().getWebAddress()); - } - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } - return Optional.empty(); - } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/CommandProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/CommandProcessor.java index fbe28ea61..4b72af1bb 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/CommandProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/CommandProcessor.java @@ -4,10 +4,8 @@ */ package com.djrapitops.plan.system.processing.processors; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; -import com.djrapitops.plugin.api.utility.log.Log; /** * Updates Command usage amount in the database. @@ -24,10 +22,6 @@ public class CommandProcessor implements CriticalRunnable { @Override public void run() { - try { - Database.getActive().save().commandUsed(command); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + Database.getActive().save().commandUsed(command); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/TPSInsertProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/TPSInsertProcessor.java index a51322867..215303a40 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/TPSInsertProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/TPSInsertProcessor.java @@ -4,13 +4,11 @@ */ package com.djrapitops.plan.system.processing.processors; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.container.TPS; import com.djrapitops.plan.data.container.builders.TPSBuilder; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; import com.djrapitops.plan.utilities.analysis.MathUtils; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.List; @@ -48,10 +46,6 @@ public class TPSInsertProcessor implements CriticalRunnable { .chunksLoaded(averageChunksLoaded) .toTPS(); - try { - Database.getActive().save().insertTPSforThisServer(tps); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + Database.getActive().save().insertTPSforThisServer(tps); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java index 348edadf7..04f8958fe 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java @@ -4,10 +4,8 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.database.databases.operation.SaveOperations; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.UUID; @@ -30,12 +28,8 @@ public class BanAndOpProcessor implements Runnable { @Override public void run() { - try { - SaveOperations save = Database.getActive().save(); - save.banStatus(uuid, banned); - save.opStatus(uuid, op); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + SaveOperations save = Database.getActive().save(); + save.banStatus(uuid, banned); + save.opStatus(uuid, op); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BungeePlayerRegisterProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BungeePlayerRegisterProcessor.java index 84b330cf4..a4c250264 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BungeePlayerRegisterProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BungeePlayerRegisterProcessor.java @@ -4,11 +4,9 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; import com.djrapitops.plan.system.processing.Processing; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.UUID; @@ -39,8 +37,6 @@ public class BungeePlayerRegisterProcessor implements CriticalRunnable { return; } database.save().registerNewUser(uuid, registered, name); - } catch (DBException e) { - Log.toLog(this.getClass(), e); } finally { for (Runnable process : afterProcess) { Processing.submit(process); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/FirstLeaveProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/FirstLeaveProcessor.java index ab6e3abcd..62fef7d9c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/FirstLeaveProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/FirstLeaveProcessor.java @@ -4,13 +4,11 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.Actions; import com.djrapitops.plan.data.container.Action; import com.djrapitops.plan.system.cache.SessionCache; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.UUID; @@ -34,8 +32,6 @@ public class FirstLeaveProcessor implements CriticalRunnable { public void run() { try { Database.getActive().save().action(uuid, leaveAction); - } catch (DBException e) { - Log.toLog(this.getClass(), e); } finally { SessionCache.getInstance().endFirstSessionActionTracking(uuid); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/IPUpdateProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/IPUpdateProcessor.java index 67a1cc211..b5316e47d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/IPUpdateProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/IPUpdateProcessor.java @@ -4,7 +4,6 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.container.GeoInfo; import com.djrapitops.plan.system.cache.GeolocationCache; import com.djrapitops.plan.system.database.databases.Database; @@ -40,7 +39,7 @@ public class IPUpdateProcessor implements CriticalRunnable { try { GeoInfo geoInfo = new GeoInfo(ip, country, time); Database.getActive().save().geoInfo(uuid, geoInfo); - } catch (DBException | UnsupportedEncodingException | NoSuchAlgorithmException e) { + } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { Log.toLog(this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/KickProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/KickProcessor.java index 5598d7c85..f0202e3b9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/KickProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/KickProcessor.java @@ -4,10 +4,8 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.UUID; @@ -26,10 +24,6 @@ public class KickProcessor implements CriticalRunnable { @Override public void run() { - try { - Database.getActive().save().playerWasKicked(uuid); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + Database.getActive().save().playerWasKicked(uuid); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/NameProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/NameProcessor.java index c7285e36e..200e18abf 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/NameProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/NameProcessor.java @@ -4,7 +4,6 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.Actions; import com.djrapitops.plan.data.container.Action; import com.djrapitops.plan.system.cache.DataCache; @@ -13,7 +12,6 @@ import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plan.system.processing.CriticalRunnable; import com.djrapitops.plan.system.processing.Processing; import com.djrapitops.plan.utilities.html.HtmlUtils; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.List; import java.util.UUID; @@ -47,20 +45,16 @@ public class NameProcessor implements CriticalRunnable { return; } - Database database = Database.getActive(); - try { - cueNameChangeActionProcessor(uuid, database); - database.save().playerName(uuid, playerName); - - database.save().playerDisplayName(uuid, displayName); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } - dataCache.updateNames(uuid, playerName, displayName); + + Database database = Database.getActive(); + cueNameChangeActionProcessor(uuid, database); + database.save().playerName(uuid, playerName); + + database.save().playerDisplayName(uuid, displayName); } - private void cueNameChangeActionProcessor(UUID uuid, Database db) throws DBException { + private void cueNameChangeActionProcessor(UUID uuid, Database db) { List nicknames = db.fetch().getNicknamesOfPlayerOnServer(uuid, ServerInfo.getServerUUID()); if (nicknames.contains(displayName)) { return; @@ -73,11 +67,7 @@ public class NameProcessor implements CriticalRunnable { Action action = new Action(time, Actions.NEW_NICKNAME, info); - try { - Database.getActive().save().action(uuid, action); - } catch (DBException e) { - Log.toLog(this.getClass(), e); - } + Database.getActive().save().action(uuid, action); }); } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/RegisterProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/RegisterProcessor.java index 82bfc2f70..4075afd74 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/RegisterProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/RegisterProcessor.java @@ -4,14 +4,12 @@ */ package com.djrapitops.plan.system.processing.processors.player; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.Actions; import com.djrapitops.plan.data.container.Action; import com.djrapitops.plan.system.cache.SessionCache; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.processing.CriticalRunnable; import com.djrapitops.plan.system.processing.Processing; -import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.utilities.Verify; import java.util.UUID; @@ -55,8 +53,6 @@ public class RegisterProcessor implements CriticalRunnable { } SessionCache.getInstance().markFirstSession(uuid); db.save().action(uuid, new Action(time, Actions.FIRST_SESSION, "Online: " + playersOnline + " Players")); - } catch (DBException e) { - Log.toLog(this.getClass(), e); } finally { for (Runnable runnable : afterProcess) { Processing.submit(runnable); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/auth/BasicAuthentication.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/auth/BasicAuthentication.java index 5e3471a91..072264cf9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/auth/BasicAuthentication.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/auth/BasicAuthentication.java @@ -6,7 +6,7 @@ package com.djrapitops.plan.system.webserver.auth; import com.djrapitops.plan.api.exceptions.PassEncryptException; import com.djrapitops.plan.api.exceptions.WebUserAuthException; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.utilities.Base64Util; @@ -54,7 +54,7 @@ public class BasicAuthentication implements Authentication { throw new WebUserAuthException(FailReason.USER_PASS_MISMATCH, user); } return webUser; - } catch (DBException | PassEncryptException e) { + } catch (DBOpException | PassEncryptException e) { throw new WebUserAuthException(e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/PlayerPageHandler.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/PlayerPageHandler.java index 94d848272..f8de825fd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/PlayerPageHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/PlayerPageHandler.java @@ -5,10 +5,8 @@ package com.djrapitops.plan.system.webserver.pages; import com.djrapitops.plan.api.exceptions.WebUserAuthException; -import com.djrapitops.plan.api.exceptions.connection.InternalErrorException; import com.djrapitops.plan.api.exceptions.connection.NoServersException; import com.djrapitops.plan.api.exceptions.connection.WebException; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.InfoSystem; @@ -21,7 +19,6 @@ import com.djrapitops.plan.system.webserver.response.cache.ResponseCache; import com.djrapitops.plan.system.webserver.response.errors.NotFoundResponse; import com.djrapitops.plan.system.webserver.response.pages.InspectPageResponse; import com.djrapitops.plan.utilities.uuid.UUIDUtility; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.List; import java.util.UUID; @@ -45,7 +42,6 @@ public class PlayerPageHandler extends PageHandler { if (uuid == null) { return notFound("Player UUID was not found in the database."); } - try { if (Database.getActive().check().isPlayerRegistered(uuid)) { Response response = ResponseCache.loadResponse(PageId.PLAYER.of(uuid)); @@ -57,9 +53,6 @@ public class PlayerPageHandler extends PageHandler { } else { return notFound("Player has not played on this server."); } - } catch (DBException e) { - Log.toLog(this.getClass(), e); - throw new InternalErrorException("Analysis", e); } catch (NoServersException e) { ResponseCache.loadResponse(PageId.PLAYER.of(uuid), () -> new NotFoundResponse(e.getMessage())); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/ServerPageHandler.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/ServerPageHandler.java index 61a9e5e33..3097e48b1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/ServerPageHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/ServerPageHandler.java @@ -6,7 +6,6 @@ package com.djrapitops.plan.system.webserver.pages; import com.djrapitops.plan.api.exceptions.WebUserAuthException; import com.djrapitops.plan.api.exceptions.connection.WebException; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.InfoSystem; import com.djrapitops.plan.system.info.server.ServerInfo; @@ -17,7 +16,6 @@ import com.djrapitops.plan.system.webserver.response.cache.PageId; import com.djrapitops.plan.system.webserver.response.cache.ResponseCache; import com.djrapitops.plan.system.webserver.response.pages.AnalysisPageResponse; import com.djrapitops.plugin.api.Check; -import com.djrapitops.plugin.api.utility.log.Log; import java.util.List; import java.util.Optional; @@ -61,8 +59,6 @@ public class ServerPageHandler extends PageHandler { } } catch (IllegalArgumentException ignore) { /*ignored*/ - } catch (DBException e) { - Log.toLog(this.getClass(), e); } } return serverUUID; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/DebugPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/DebugPageResponse.java index 98c3542b8..b69ba94af 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/DebugPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/DebugPageResponse.java @@ -5,6 +5,7 @@ package com.djrapitops.plan.system.webserver.response.pages; import com.djrapitops.plan.PlanPlugin; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.info.connection.ConnectionLog; @@ -25,7 +26,6 @@ import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.nio.charset.Charset; -import java.sql.SQLException; import java.util.*; /** @@ -121,7 +121,7 @@ public class DebugPageResponse extends ErrorResponse { if (database instanceof SQLDB) { try { content.append(" schema v").append(((SQLDB) database).getVersion()); - } catch (SQLException e) { + } catch (DBOpException e) { Log.toLog(this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/PlayersPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/PlayersPageResponse.java index c6c799c16..88c88e83a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/PlayersPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/PlayersPageResponse.java @@ -1,7 +1,7 @@ package com.djrapitops.plan.system.webserver.response.pages; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.GeoInfo; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.data.container.UserInfo; @@ -124,8 +124,8 @@ public class PlayersPageResponse extends Response { } catch (IllegalArgumentException ignored) { } return html.append("").toString(); - } catch (DBException e) { - Log.toLog(PlayersPageResponse.class.getClass().getName(), e); + } catch (DBOpException e) { + Log.toLog(PlayersPageResponse.class, e); return new InternalErrorResponse("/players", e).getContent(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java index 4c391997b..c44cafac3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java @@ -1,7 +1,6 @@ package com.djrapitops.plan.utilities; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.settings.Permissions; import com.djrapitops.plan.system.settings.Settings; @@ -14,7 +13,6 @@ import com.djrapitops.plugin.command.ISender; import java.io.Closeable; import java.io.IOException; -import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.TimeZone; @@ -87,13 +85,7 @@ public class MiscUtils { */ public static List getMatchingPlayerNames(String search) { Database db = Database.getActive(); - List matches; - try { - matches = db.search().matchingPlayers(search); - } catch (DBException e) { - Log.toLog(MiscUtils.class, e); - return new ArrayList<>(); - } + List matches = db.search().matchingPlayers(search); Collections.sort(matches); return matches; } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/file/export/HtmlExport.java b/Plan/src/main/java/com/djrapitops/plan/utilities/file/export/HtmlExport.java index 86f05534b..bd5fe0287 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/file/export/HtmlExport.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/file/export/HtmlExport.java @@ -5,7 +5,7 @@ package com.djrapitops.plan.utilities.file.export; import com.djrapitops.plan.PlanPlugin; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.UserInfo; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.connection.ConnectionSystem; @@ -39,22 +39,14 @@ public class HtmlExport extends SpecificExport { } public static void exportServer(UUID serverUUID) { - try { - Optional serverName = Database.getActive().fetch().getServerName(serverUUID); - serverName.ifPresent(s -> RunnableFactory.createNew(new AnalysisExport(serverUUID, s)).runTaskAsynchronously()); - } catch (DBException e) { - Log.toLog(HtmlExport.class.getClass().getName(), e); - } + Optional serverName = Database.getActive().fetch().getServerName(serverUUID); + serverName.ifPresent(s -> RunnableFactory.createNew(new AnalysisExport(serverUUID, s)).runTaskAsynchronously()); } public static void exportPlayer(UUID playerUUID) { - try { - String playerName = Database.getActive().fetch().getPlayerName(playerUUID); - if (playerName != null) { - RunnableFactory.createNew(new PlayerExport(playerUUID, playerName)).runTaskAsynchronously(); - } - } catch (DBException e) { - Log.toLog(HtmlExport.class.getClass().getName(), e); + String playerName = Database.getActive().fetch().getPlayerName(playerUUID); + if (playerName != null) { + RunnableFactory.createNew(new PlayerExport(playerUUID, playerName)).runTaskAsynchronously(); } } @@ -72,7 +64,7 @@ public class HtmlExport extends SpecificExport { exportAvailableServerPages(); exportAvailablePlayers(); exportPlayersPage(); - } catch (IOException | DBException e) { + } catch (IOException | DBOpException e) { Log.toLog(this.getClass(), e); } finally { try { @@ -99,13 +91,13 @@ public class HtmlExport extends SpecificExport { export(exportFile, lines); } - private void exportAvailablePlayers() throws DBException, IOException { + private void exportAvailablePlayers() throws IOException { for (Map.Entry entry : Database.getActive().fetch().getUsers().entrySet()) { exportAvailablePlayerPage(entry.getKey(), entry.getValue().getName()); } } - private void exportAvailableServerPages() throws IOException, DBException { + private void exportAvailableServerPages() throws IOException { Map serverNames = Database.getActive().fetch().getServerNames(); for (Map.Entry entry : serverNames.entrySet()) { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlStructure.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlStructure.java index 246c6dc60..91ac8ca4e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlStructure.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlStructure.java @@ -4,7 +4,7 @@ */ package com.djrapitops.plan.utilities.html; -import com.djrapitops.plan.api.exceptions.database.DBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.server.Server; @@ -130,8 +130,8 @@ public class HtmlStructure { try { playerCount = db.count().getServerPlayerCount(serverUUID); playerData = new OnlineActivityGraph(db.fetch().getTPSData(serverUUID)).toHighChartsSeries(); - } catch (DBException e) { - Log.toLog(HtmlStructure.class.getClass().getName(), e); + } catch (DBOpException e) { + Log.toLog(HtmlStructure.class, e); } return "

" + diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java b/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java index 14f248ea5..41210414a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java @@ -5,8 +5,7 @@ */ package com.djrapitops.plan.utilities.uuid; -import com.djrapitops.plan.api.exceptions.database.DBException; -import com.djrapitops.plan.api.exceptions.database.FatalDBException; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.cache.DataCache; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plugin.api.Check; @@ -58,10 +57,10 @@ public class UUIDUtility { } try { uuid = db.fetch().getUuidOf(playerName); - } catch (FatalDBException e) { - Log.toLog(UUIDUtility.class, e); - } catch (DBException e) { - /* Ignored */ + } catch (DBOpException e) { + if (e.isFatal()) { + Log.toLog(UUIDUtility.class, e); + } } try { if (uuid == null) { diff --git a/Plan/src/test/java/com/djrapitops/plan/system/database/databases/SQLiteTest.java b/Plan/src/test/java/com/djrapitops/plan/system/database/databases/SQLiteTest.java index 5fd5d0705..99ebf18a2 100644 --- a/Plan/src/test/java/com/djrapitops/plan/system/database/databases/SQLiteTest.java +++ b/Plan/src/test/java/com/djrapitops/plan/system/database/databases/SQLiteTest.java @@ -87,7 +87,7 @@ public class SQLiteTest { } @Before - public void setUp() throws DBException, SQLException { + public void setUp() { assertEquals(db, Database.getActive()); System.out.println("\n-- Clearing Test Database --"); db.remove().everything(); @@ -120,7 +120,7 @@ public class SQLiteTest { } @Test(timeout = 3000) - public void testSaveCommandUse() throws SQLException, DBInitException { + public void testSaveCommandUse() throws DBInitException { CommandUseTable commandUseTable = db.getCommandUseTable(); Map expected = new HashMap<>(); @@ -169,7 +169,7 @@ public class SQLiteTest { } @Test - public void testCommandUseTableIDSystem() throws SQLException { + public void testCommandUseTableIDSystem() { CommandUseTable commandUseTable = db.getCommandUseTable(); commandUseTable.commandUsed("plan"); @@ -220,19 +220,19 @@ public class SQLiteTest { assertEquals(expected, tpsTable.getTPSData()); } - private void saveUserOne() throws SQLException { + private void saveUserOne() { saveUserOne(db); } - private void saveUserOne(SQLDB database) throws SQLException { + private void saveUserOne(SQLDB database) { database.getUsersTable().registerUser(playerUUID, 123456789L, "Test"); } - private void saveUserTwo() throws SQLException { + private void saveUserTwo() { saveUserTwo(db); } - private void saveUserTwo(SQLDB database) throws SQLException { + private void saveUserTwo(SQLDB database) { database.getUsersTable().registerUser(player2UUID, 123456789L, "Test"); } @@ -294,7 +294,7 @@ public class SQLiteTest { } @Test - public void testSecurityTable() throws SQLException, DBInitException { + public void testSecurityTable() throws DBInitException { SecurityTable securityTable = db.getSecurityTable(); WebUser expected = new WebUser("Test", "RandomGarbageBlah", 0); securityTable.addNewUser(expected); @@ -317,7 +317,7 @@ public class SQLiteTest { } @Test - public void testWorldTable() throws SQLException, DBInitException { + public void testWorldTable() throws DBInitException { WorldTable worldTable = db.getWorldTable(); List worlds = Arrays.asList("Test", "Test2", "Test3"); worldTable.saveWorlds(worlds); @@ -328,11 +328,11 @@ public class SQLiteTest { assertEquals(new HashSet<>(worlds), new HashSet<>(saved)); } - private void saveTwoWorlds() throws SQLException { + private void saveTwoWorlds() { saveTwoWorlds(db); } - private void saveTwoWorlds(SQLDB database) throws SQLException { + private void saveTwoWorlds(SQLDB database) { database.getWorldTable().saveWorlds(worlds); } @@ -429,7 +429,7 @@ public class SQLiteTest { } @Test - public void testUserInfoTableRegisterUnRegistered() throws SQLException, DBInitException { + public void testUserInfoTableRegisterUnRegistered() throws DBInitException { UserInfoTable userInfoTable = db.getUserInfoTable(); assertFalse(userInfoTable.isRegistered(playerUUID)); UsersTable usersTable = db.getUsersTable(); @@ -479,7 +479,7 @@ public class SQLiteTest { } @Test - public void testUserInfoTableUpdateBannedOpped() throws SQLException, DBInitException { + public void testUserInfoTableUpdateBannedOpped() throws DBInitException { UserInfoTable userInfoTable = db.getUserInfoTable(); userInfoTable.registerUserInfo(playerUUID, 223456789L); assertTrue(userInfoTable.isRegistered(playerUUID)); @@ -544,7 +544,7 @@ public class SQLiteTest { } @Test - public void testRemovalSingleUser() throws SQLException, DBException { + public void testRemovalSingleUser() throws SQLException { saveUserTwo(); UserInfoTable userInfoTable = db.getUserInfoTable(); @@ -580,7 +580,7 @@ public class SQLiteTest { } @Test - public void testRemovalEverything() throws SQLException, DBException, UnsupportedEncodingException, NoSuchAlgorithmException { + public void testRemovalEverything() throws SQLException, UnsupportedEncodingException, NoSuchAlgorithmException { UserInfoTable userInfoTable = db.getUserInfoTable(); UsersTable usersTable = db.getUsersTable(); SessionsTable sessionsTable = db.getSessionsTable(); @@ -609,7 +609,7 @@ public class SQLiteTest { assertTrue(securityTable.getUsers().isEmpty()); } - private void saveAllData(SQLDB database) throws SQLException, UnsupportedEncodingException, NoSuchAlgorithmException { + private void saveAllData(SQLDB database) throws UnsupportedEncodingException, NoSuchAlgorithmException { System.out.println("Saving all possible data to the Database.."); UserInfoTable userInfoTable = database.getUserInfoTable(); UsersTable usersTable = database.getUsersTable(); @@ -668,7 +668,7 @@ public class SQLiteTest { } @Test - public void testServerTableBungeeSave() throws SQLException, DBInitException { + public void testServerTableBungeeSave() throws DBInitException { ServerTable serverTable = db.getServerTable(); Optional bungeeInfo = serverTable.getBungeeInfo(); @@ -692,7 +692,7 @@ public class SQLiteTest { } @Test - public void testServerTableBungee() throws SQLException, DBInitException { + public void testServerTableBungee() throws DBInitException { testServerTableBungeeSave(); ServerTable serverTable = db.getServerTable(); @@ -701,7 +701,7 @@ public class SQLiteTest { } @Test - public void testSessionTableNPEWhenNoPlayers() throws SQLException { + public void testSessionTableNPEWhenNoPlayers() { Map lastSeen = db.getSessionsTable().getLastSeenForAllPlayers(); assertTrue(lastSeen.isEmpty()); } @@ -869,7 +869,7 @@ public class SQLiteTest { } @Test - public void testRegisterProcessorRegisterException() throws SQLException { + public void testRegisterProcessorRegisterException() { assertFalse(db.getUsersTable().isRegistered(playerUUID)); assertFalse(db.getUserInfoTable().isRegistered(playerUUID)); System.out.println("\n- Running RegisterProcessors -"); @@ -886,7 +886,7 @@ public class SQLiteTest { } @Test - public void testRegister() throws DBException { + public void testRegister() { assertFalse(db.check().isPlayerRegistered(playerUUID)); assertFalse(db.check().isPlayerRegisteredOnThisServer(playerUUID)); db.save().registerNewUser(playerUUID, 1000L, "name"); @@ -903,7 +903,7 @@ public class SQLiteTest { } @Test - public void testSettingTransfer() throws SQLException { + public void testSettingTransfer() { String testString = RandomData.randomString(100); TransferTable transferTable = db.getTransferTable(); @@ -915,7 +915,7 @@ public class SQLiteTest { } @Test - public void testGetNetworkGeolocations() throws SQLException { + public void testGetNetworkGeolocations() { GeoInfoTable geoInfoTable = db.getGeoInfoTable(); UUID firstUuid = UUID.randomUUID(); UUID secondUuid = UUID.randomUUID(); @@ -947,72 +947,68 @@ public class SQLiteTest { new Table("test", db) { @Override public void createTable() { - try { - execute( - "INSERT INTO " + WorldTable.TABLE_NAME + " (" + - WorldTable.Col.NAME + ", " + - WorldTable.Col.SERVER_ID + - ") VALUES ('Test', '0')" - ); - execute( - "INSERT INTO " + SessionsTable.TABLE_NAME + " (" + - SessionsTable.Col.SESSION_START + ", " + - SessionsTable.Col.SESSION_END + ", " + - SessionsTable.Col.AFK_TIME + ", " + - SessionsTable.Col.DEATHS + ", " + - SessionsTable.Col.MOB_KILLS + ", " + - SessionsTable.Col.SERVER_ID + ", " + - SessionsTable.Col.USER_ID + - ") VALUES ('0', '0', '0', '0', '0', '1', '1')" - ); - execute( - "INSERT INTO " + WorldTimesTable.TABLE_NAME + " (" + - WorldTimesTable.Col.SERVER_ID + ", " + - WorldTimesTable.Col.SESSION_ID + ", " + - WorldTimesTable.Col.USER_ID + ", " + - WorldTimesTable.Col.WORLD_ID + ", " + - WorldTimesTable.Col.SURVIVAL + ", " + - WorldTimesTable.Col.CREATIVE + ", " + - WorldTimesTable.Col.SPECTATOR + ", " + - WorldTimesTable.Col.ADVENTURE + - ") VALUES ('1', '1', '1', '1', '0','0','0','0')" - ); - execute( - "INSERT INTO " + ServerTable.TABLE_NAME + " (" + - ServerTable.Col.SERVER_UUID + ", " + - ServerTable.Col.SERVER_ID + ", " + - ServerTable.Col.MAX_PLAYERS + ", " + - ServerTable.Col.WEBSERVER_ADDRESS + ", " + - ServerTable.Col.INSTALLED + ", " + - ServerTable.Col.NAME + - ") VALUES ('" + UUID.randomUUID() + "', '2', '0', '0', '1', '2')" - ); - execute( - "INSERT INTO " + SessionsTable.TABLE_NAME + " (" + - SessionsTable.Col.SESSION_START + ", " + - SessionsTable.Col.SESSION_END + ", " + - SessionsTable.Col.AFK_TIME + ", " + - SessionsTable.Col.DEATHS + ", " + - SessionsTable.Col.MOB_KILLS + ", " + - SessionsTable.Col.SERVER_ID + ", " + - SessionsTable.Col.USER_ID + - ") VALUES ('0', '0', '0', '0', '0', '2', '1')" - ); - execute( - "INSERT INTO " + WorldTimesTable.TABLE_NAME + " (" + - WorldTimesTable.Col.SERVER_ID + ", " + - WorldTimesTable.Col.SESSION_ID + ", " + - WorldTimesTable.Col.USER_ID + ", " + - WorldTimesTable.Col.WORLD_ID + ", " + - WorldTimesTable.Col.SURVIVAL + ", " + - WorldTimesTable.Col.CREATIVE + ", " + - WorldTimesTable.Col.SPECTATOR + ", " + - WorldTimesTable.Col.ADVENTURE + - ") VALUES ('2', '2', '1', '1', '0','0','0','0')" - ); - } catch (SQLException e) { - Log.toLog(this.getClass().getName(), e); - } + execute( + "INSERT INTO " + WorldTable.TABLE_NAME + " (" + + WorldTable.Col.NAME + ", " + + WorldTable.Col.SERVER_ID + + ") VALUES ('Test', '0')" + ); + execute( + "INSERT INTO " + SessionsTable.TABLE_NAME + " (" + + SessionsTable.Col.SESSION_START + ", " + + SessionsTable.Col.SESSION_END + ", " + + SessionsTable.Col.AFK_TIME + ", " + + SessionsTable.Col.DEATHS + ", " + + SessionsTable.Col.MOB_KILLS + ", " + + SessionsTable.Col.SERVER_ID + ", " + + SessionsTable.Col.USER_ID + + ") VALUES ('0', '0', '0', '0', '0', '1', '1')" + ); + execute( + "INSERT INTO " + WorldTimesTable.TABLE_NAME + " (" + + WorldTimesTable.Col.SERVER_ID + ", " + + WorldTimesTable.Col.SESSION_ID + ", " + + WorldTimesTable.Col.USER_ID + ", " + + WorldTimesTable.Col.WORLD_ID + ", " + + WorldTimesTable.Col.SURVIVAL + ", " + + WorldTimesTable.Col.CREATIVE + ", " + + WorldTimesTable.Col.SPECTATOR + ", " + + WorldTimesTable.Col.ADVENTURE + + ") VALUES ('1', '1', '1', '1', '0','0','0','0')" + ); + execute( + "INSERT INTO " + ServerTable.TABLE_NAME + " (" + + ServerTable.Col.SERVER_UUID + ", " + + ServerTable.Col.SERVER_ID + ", " + + ServerTable.Col.MAX_PLAYERS + ", " + + ServerTable.Col.WEBSERVER_ADDRESS + ", " + + ServerTable.Col.INSTALLED + ", " + + ServerTable.Col.NAME + + ") VALUES ('" + UUID.randomUUID() + "', '2', '0', '0', '1', '2')" + ); + execute( + "INSERT INTO " + SessionsTable.TABLE_NAME + " (" + + SessionsTable.Col.SESSION_START + ", " + + SessionsTable.Col.SESSION_END + ", " + + SessionsTable.Col.AFK_TIME + ", " + + SessionsTable.Col.DEATHS + ", " + + SessionsTable.Col.MOB_KILLS + ", " + + SessionsTable.Col.SERVER_ID + ", " + + SessionsTable.Col.USER_ID + + ") VALUES ('0', '0', '0', '0', '0', '2', '1')" + ); + execute( + "INSERT INTO " + WorldTimesTable.TABLE_NAME + " (" + + WorldTimesTable.Col.SERVER_ID + ", " + + WorldTimesTable.Col.SESSION_ID + ", " + + WorldTimesTable.Col.USER_ID + ", " + + WorldTimesTable.Col.WORLD_ID + ", " + + WorldTimesTable.Col.SURVIVAL + ", " + + WorldTimesTable.Col.CREATIVE + ", " + + WorldTimesTable.Col.SPECTATOR + ", " + + WorldTimesTable.Col.ADVENTURE + + ") VALUES ('2', '2', '1', '1', '0','0','0','0')" + ); } }.createTable(); @@ -1044,6 +1040,7 @@ public class SQLiteTest { assertTrue(container.supports(PlayerKeys.UUID)); assertTrue(container.supports(PlayerKeys.REGISTERED)); assertTrue(container.supports(PlayerKeys.NAME)); + assertTrue(container.supports(PlayerKeys.GEO_INFO)); long end = System.nanoTime(); diff --git a/Plan/src/test/java/com/djrapitops/plan/utilities/MiscUtilsTest.java b/Plan/src/test/java/com/djrapitops/plan/utilities/MiscUtilsTest.java index a1a44985d..d8868ba2b 100644 --- a/Plan/src/test/java/com/djrapitops/plan/utilities/MiscUtilsTest.java +++ b/Plan/src/test/java/com/djrapitops/plan/utilities/MiscUtilsTest.java @@ -125,7 +125,7 @@ public class MiscUtilsTest { } @Test - public void testGetMatchingNames() throws Exception { + public void testGetMatchingNames() { String exp1 = "TestName"; String exp2 = "TestName2"; @@ -145,7 +145,7 @@ public class MiscUtilsTest { } @Test - public void testGetMatchingNickNames() throws Exception { + public void testGetMatchingNickNames() { UUID uuid = UUID.randomUUID(); String userName = RandomData.randomString(10); db.getUsersTable().registerUser(uuid, 0L, userName);