diff --git a/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java b/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java index e8c4971d51..48b4c71b0e 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dCuboid.java @@ -315,7 +315,7 @@ public boolean isUnique() { @Override @Note("cuboid") - public String getSaveString() { + public String getSaveObject() { return loc_1.getBlockX() + "," + loc_1.getBlockY() + "," + loc_1.getBlockZ() + "," + loc_1.getWorld().getName() + "|" @@ -323,7 +323,6 @@ public String getSaveString() { + "," + loc_2.getBlockZ() + "," + loc_2.getWorld().getName(); } - @Override public void makeUnique(String id) { NotableManager.saveAs(this, id); diff --git a/src/main/java/net/aufdemrand/denizen/objects/dInventory.java b/src/main/java/net/aufdemrand/denizen/objects/dInventory.java index a37c4682d3..3dc0f230d5 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dInventory.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dInventory.java @@ -23,6 +23,7 @@ import net.aufdemrand.denizen.objects.notable.Notable; import net.aufdemrand.denizen.objects.notable.NotableManager; +import net.aufdemrand.denizen.objects.notable.Note; import net.aufdemrand.denizen.scripts.ScriptRegistry; import net.aufdemrand.denizen.scripts.containers.core.InventoryScriptContainer; import net.aufdemrand.denizen.tags.Attribute; @@ -36,7 +37,7 @@ public class dInventory implements dObject, Notable { ///////////////// final static Pattern inventory_by_type = Pattern.compile("(in@)(npc|player|entity|location|equipment)(\\[)(.+?)(\\])", Pattern.CASE_INSENSITIVE); - final static Pattern inventory_by_script = Pattern.compile("(in@)(.+)"); + final static Pattern inventory_by_script = Pattern.compile("(in@)(.+)", Pattern.CASE_INSENSITIVE); ///////////////////// // NOTABLE METHODS @@ -46,7 +47,8 @@ public boolean isUnique() { return holderType.equals("notable"); } - public String getSaveString() { + @Note("inventory") + public String getSaveObject() { return holderIdentifier; } diff --git a/src/main/java/net/aufdemrand/denizen/tags/ObjectFetcher.java b/src/main/java/net/aufdemrand/denizen/tags/ObjectFetcher.java index be258a1c98..aa8b2f3c00 100644 --- a/src/main/java/net/aufdemrand/denizen/tags/ObjectFetcher.java +++ b/src/main/java/net/aufdemrand/denizen/tags/ObjectFetcher.java @@ -17,17 +17,21 @@ public class ObjectFetcher { private static Map objects = new HashMap(); public static void _initialize() throws IOException, ClassNotFoundException { - objects.clear(); - + if (fetchable_objects.isEmpty()) + return; + + Map adding = new HashMap(); for (Class dClass : fetchable_objects) for (Method method : dClass.getMethods()) if (method.isAnnotationPresent(net.aufdemrand.denizen.objects.ObjectFetcher.class)) { String[] identifiers = method.getAnnotation(net.aufdemrand.denizen.objects.ObjectFetcher.class).value().split(","); for (String identifer : identifiers) - objects.put(identifer.trim().toLowerCase(), dClass); + adding.put(identifer.trim().toLowerCase(), dClass); } - dB.echoApproval("Loaded the Object Fetcher! Valid object types: " + objects.keySet().toString()); + objects.putAll(adding); + dB.echoApproval("Added objects to the ObjectFetcher " + adding.keySet().toString()); + fetchable_objects.clear(); } private static ArrayList fetchable_objects = new ArrayList();