Browse Source

Oh! So that's why it's never used here

riking 11 years ago
parent
commit
766f1f4127
1 changed files with 18 additions and 6 deletions
  1. 18 6
      src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java

+ 18 - 6
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.
-     * <p>
+     * <p/>
      * The provided class must have an empty constructor, which is the one
      * that will be used.
-     * <p>
+     * <p/>
      * 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);
     }
 }