diff --git a/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java b/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java index 87f964f46..da3a2ea1f 100644 --- a/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java +++ b/src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java @@ -10,7 +10,7 @@ public class DatabaseManagerFactory { public static DatabaseManager getDatabaseManager() { if (customManager != null) { try { - return createCustomDatabaseManager(customManager); + return createDefaultCustomDatabaseManager(); } catch (Exception e) { mcMMO.p.debug("Could not create custom database manager"); @@ -29,17 +29,18 @@ public class DatabaseManagerFactory { /** * Sets the custom DatabaseManager class for mcMMO to use. This should be * called prior to mcMMO enabling. - *
+ *
* The provided class must have an empty constructor, which is the one * that will be used. - *+ *
* This method is intended for API use, but it should not be considered * stable. This method is subject to change and/or removal in future * versions. * * @param clazz the DatabaseManager class to use + * * @throws IllegalArgumentException if the provided class does not have - * an empty constructor + * an empty constructor */ public static void setCustomDatabaseManagerClass(Class extends DatabaseManager> clazz) { try { @@ -63,13 +64,24 @@ public class DatabaseManagerFactory { case SQL: return new SQLDatabaseManager(); + case CUSTOM: + try { + return createDefaultCustomDatabaseManager(); + } + catch (Throwable e) { + e.printStackTrace(); + } + default: return null; } } - //TODO: Why is clazz never used here? + public static DatabaseManager createDefaultCustomDatabaseManager() throws Throwable { + return customManager.getConstructor((Class>) null).newInstance((Object[]) null); + } + public static DatabaseManager createCustomDatabaseManager(Class extends DatabaseManager> clazz) throws Throwable { - return customManager.getConstructor((Class>) clazz).newInstance((Object[]) null); + return clazz.getConstructor((Class>) null).newInstance((Object[]) null); } }