diff --git a/src/main/java/net/aufdemrand/denizen/Denizen.java b/src/main/java/net/aufdemrand/denizen/Denizen.java index e21b6fad3d..6596dceea6 100644 --- a/src/main/java/net/aufdemrand/denizen/Denizen.java +++ b/src/main/java/net/aufdemrand/denizen/Denizen.java @@ -248,9 +248,9 @@ public void onEnable() { // Register CommandHandler with Citizens Depends.citizens.registerCommandClass(CommandHandler.class); - // Initialize ObjectFetcher + // Register Core dObjects with the ObjectFetcher try { - ObjectFetcher._initialize(); + ObjectFetcher._registerCoreObjects(); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/ObjectFetcher.java b/src/main/java/net/aufdemrand/denizen/objects/ObjectFetcher.java index 44aa14d5d1..0f01a17862 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/ObjectFetcher.java +++ b/src/main/java/net/aufdemrand/denizen/objects/ObjectFetcher.java @@ -24,7 +24,26 @@ public class ObjectFetcher { static Map matches = new WeakHashMap(); static Map valueof = new WeakHashMap(); - public static void _initialize() throws IOException, ClassNotFoundException, NoSuchMethodException { + public static void _initialize() throws IOException, ClassNotFoundException { + + if (fetchable_objects.isEmpty()) + return; + + Map adding = new HashMap(); + for (Class dClass : fetchable_objects) + for (Method method : dClass.getMethods()) + if (method.isAnnotationPresent(Fetchable.class)) { + String[] identifiers = method.getAnnotation(Fetchable.class).value().split(","); + for (String identifer : identifiers) + adding.put(identifer.trim().toLowerCase(), dClass); + } + + objects.putAll(adding); + dB.echoApproval("Added objects to the ObjectFetcher " + adding.keySet().toString()); + fetchable_objects.clear(); + } + + public static void _registerCoreObjects() throws NoSuchMethodException, ClassNotFoundException, IOException { // Initialize the ObjectFetcher registerWithObjectFetcher(dItem.class); // i@ @@ -42,22 +61,9 @@ public static void _initialize() throws IOException, ClassNotFoundException, NoS registerWithObjectFetcher(Element.class); // el@ registerWithObjectFetcher(Duration.class); // d@ registerWithObjectFetcher(dChunk.class); // ch@ - - if (fetchable_objects.isEmpty()) - return; - - Map adding = new HashMap(); - for (Class dClass : fetchable_objects) - for (Method method : dClass.getMethods()) - if (method.isAnnotationPresent(Fetchable.class)) { - String[] identifiers = method.getAnnotation(Fetchable.class).value().split(","); - for (String identifer : identifiers) - adding.put(identifer.trim().toLowerCase(), dClass); - } - - objects.putAll(adding); - dB.echoApproval("Added objects to the ObjectFetcher " + adding.keySet().toString()); - fetchable_objects.clear(); + + _initialize(); + } private static ArrayList fetchable_objects = new ArrayList();