From b739009859e5c0aa4d355c643f733278360e99dd Mon Sep 17 00:00:00 2001 From: mcmonkey4eva Date: Sat, 28 Sep 2013 00:54:05 -0700 Subject: [PATCH 1/2] Fix some replace misuse --- .../java/net/aufdemrand/denizen/objects/Element.java | 11 +++++++---- .../containers/core/FormatScriptContainer.java | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/objects/Element.java b/src/main/java/net/aufdemrand/denizen/objects/Element.java index 6cb49d9627..e3ab27d839 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/Element.java +++ b/src/main/java/net/aufdemrand/denizen/objects/Element.java @@ -483,13 +483,16 @@ else if (element.toLowerCase().contains(contains.toLowerCase())) String replace = attribute.getContext(1); String replacement = ""; - if (attribute.startsWith("with", 2)) { - if (attribute.hasContext(2)) replacement = attribute.getContext(2); - attribute.fulfill(1); + attribute.fulfill(1); + if (attribute.startsWith("with")) { + if (attribute.hasContext(1)) { + replacement = attribute.getContext(1); + attribute.fulfill(1); + } } return new Element(element.replace(replace, replacement)) - .getAttribute(attribute.fulfill(1)); + .getAttribute(attribute); } // <--[tag] diff --git a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/FormatScriptContainer.java b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/FormatScriptContainer.java index 5eff7cf76c..b3244518f8 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/FormatScriptContainer.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/FormatScriptContainer.java @@ -20,7 +20,7 @@ public void setFormat(String format) { } public String getFormattedText(ScriptEntry entry) { - String text = getFormat().replaceAll("", entry.getElement("text").asString()); + String text = getFormat().replace("", entry.getElement("text").asString()); return TagManager.tag(entry.getPlayer(), entry.getNPC(), text); } From ee7bc964cc9d77a50a8e03b1d3b74c765b180167 Mon Sep 17 00:00:00 2001 From: mcmonkey4eva Date: Sat, 28 Sep 2013 01:51:08 -0700 Subject: [PATCH 2/2] Avoid impossible NPE. Please, before complaining about this commit, realize that logic does not apply to arrow entities when Sentry is involved. --- src/main/java/net/aufdemrand/denizen/objects/dEntity.java | 2 +- .../denizen/scripts/containers/core/WorldScriptHelper.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/aufdemrand/denizen/objects/dEntity.java b/src/main/java/net/aufdemrand/denizen/objects/dEntity.java index 475824a8a5..c873eab0b4 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dEntity.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dEntity.java @@ -551,7 +551,7 @@ public boolean isGeneric() { public dLocation getLocation() { - if (!isGeneric()) { + if (isUnique() && entity != null) { return new dLocation(entity.getLocation()); } diff --git a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/WorldScriptHelper.java b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/WorldScriptHelper.java index e4e70404e3..ff63e4604c 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/WorldScriptHelper.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/WorldScriptHelper.java @@ -2322,6 +2322,9 @@ public void projectileHit(ProjectileHitEvent event) { dEntity projectile = new dEntity(event.getEntity()); + if (projectile.getLocation() == null) + return; // No, I can't explain how or why this would ever happen... nonetheless, it appears it does happen sometimes. + Block block = null; BlockIterator bi = new BlockIterator(projectile.getLocation().getWorld(), projectile.getLocation().toVector(), projectile.getLocation().getDirection().normalize(), 0, 4); while(bi.hasNext()) {