From a41e51c24f634c423316bc8cfd0093856092ff7c Mon Sep 17 00:00:00 2001 From: mcmonkey4eva Date: Sun, 5 Oct 2014 19:47:06 -0700 Subject: [PATCH] Improve flag handling Don't return weirdly for non-existent flags. --- .../java/net/aufdemrand/denizen/objects/dNPC.java | 12 ++++++------ .../java/net/aufdemrand/denizen/objects/dPlayer.java | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/objects/dNPC.java b/src/main/java/net/aufdemrand/denizen/objects/dNPC.java index 0ea1892bbb..7949050fb4 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dNPC.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dNPC.java @@ -527,17 +527,17 @@ && getCitizen().getTrait(Anchors.class).getAnchor(attribute.getContext(1)) != nu String flag_name; if (attribute.hasContext(1)) flag_name = attribute.getContext(1); else return Element.NULL.getAttribute(attribute.fulfill(1)); - attribute.fulfill(1); - if (attribute.startsWith("is_expired") + if (attribute.getAttribute(2).equalsIgnoreCase("is_expired") || attribute.startsWith("isexpired")) return new Element(!FlagManager.npcHasFlag(this, flag_name)) - .getAttribute(attribute.fulfill(1)); - if (attribute.startsWith("size") && !FlagManager.npcHasFlag(this, flag_name)) - return new Element(0).getAttribute(attribute.fulfill(1)); + .getAttribute(attribute.fulfill(2)); + if (attribute.getAttribute(2).equalsIgnoreCase("size") && !FlagManager.npcHasFlag(this, flag_name)) + return new Element(0).getAttribute(attribute.fulfill(2)); if (FlagManager.npcHasFlag(this, flag_name)) return new dList(DenizenAPI.getCurrentInstance().flagManager() .getNPCFlag(getId(), flag_name)) - .getAttribute(attribute); + .getAttribute(attribute.fulfill(1)); + return new Element(identify()).getAttribute(attribute); } // <--[tag] diff --git a/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java b/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java index 7c9ec6a6f9..976ba4ddc4 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dPlayer.java @@ -552,17 +552,17 @@ public String getAttribute(Attribute attribute) { String flag_name; if (attribute.hasContext(1)) flag_name = attribute.getContext(1); else return Element.NULL.getAttribute(attribute.fulfill(1)); - attribute.fulfill(1); - if (attribute.startsWith("is_expired") + if (attribute.getAttribute(2).equalsIgnoreCase("is_expired") || attribute.startsWith("isexpired")) return new Element(!FlagManager.playerHasFlag(this, flag_name)) - .getAttribute(attribute.fulfill(1)); - if (attribute.startsWith("size") && !FlagManager.playerHasFlag(this, flag_name)) - return new Element(0).getAttribute(attribute.fulfill(1)); + .getAttribute(attribute.fulfill(2)); + if (attribute.getAttribute(2).equalsIgnoreCase("size") && !FlagManager.playerHasFlag(this, flag_name)) + return new Element(0).getAttribute(attribute.fulfill(2)); if (FlagManager.playerHasFlag(this, flag_name)) return new dList(DenizenAPI.getCurrentInstance().flagManager() .getPlayerFlag(this, flag_name)) - .getAttribute(attribute); + .getAttribute(attribute.fulfill(1)); + return new Element(identify()).getAttribute(attribute); } // <--[tag]