From 59201614eb12bf79acf89aa777ec56acdc0e5e2a Mon Sep 17 00:00:00 2001 From: Jeremy Schroeder Date: Mon, 1 Apr 2013 18:11:39 -0400 Subject: [PATCH] Fix regex that de-sensitizes caps on script/key names. This fixes not being able to use -'s or :'s in script/key names. --- .../aufdemrand/denizen/scripts/ScriptHelper.java | 2 +- .../aufdemrand/denizen/scripts/ScriptQueue.java | 2 +- .../scripts/commands/core/DisplayItemCommand.java | 2 +- .../scripts/commands/core/FollowCommand.java | 11 ++++++++++- .../scripts/containers/core/WorldScriptHelper.java | 14 +++++++------- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/scripts/ScriptHelper.java b/src/main/java/net/aufdemrand/denizen/scripts/ScriptHelper.java index 3df29daa50..c8de6ecbae 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/ScriptHelper.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/ScriptHelper.java @@ -114,7 +114,7 @@ private static String _concatenateCoreScripts() { private static String yamlKeysToUpperCase(String string) { StringBuffer sb = new StringBuffer(); - Pattern pattern = Pattern.compile("(^[^:-]*?[^\\s]:)", Pattern.MULTILINE); + Pattern pattern = Pattern.compile("(^.*?[^\\s](:\\s))", Pattern.MULTILINE); Matcher matcher = pattern.matcher(string); while (matcher.find()) matcher.appendReplacement(sb, matcher.group().toUpperCase()); diff --git a/src/main/java/net/aufdemrand/denizen/scripts/ScriptQueue.java b/src/main/java/net/aufdemrand/denizen/scripts/ScriptQueue.java index 516f7b7e05..edd6bba260 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/ScriptQueue.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/ScriptQueue.java @@ -210,7 +210,7 @@ public void start() { if (isStarted) return; // Start the queue - dB.log("Starting queue " + id + "... (Speed=" + ticks + "tpr)"); + dB.echoDebug("Starting queue " + id + ". (Speed=" + ticks + "tpr)"); isStarted = true; // If not an instant queue, set a bukkit repeating task with the speed diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/DisplayItemCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/DisplayItemCommand.java index 7f2ddb7459..b0096ac516 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/DisplayItemCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/DisplayItemCommand.java @@ -92,7 +92,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { } // Remember the item entity - displayed.put(location.dScriptArgValue(), location.getBlock().getLocation().getWorld().dropItem(location, item.getItemStack())); + displayed.put(location.dScriptArgValue(), location.getBlock().getLocation().add(0, 1, 0).getWorld().dropItem(location, item.getItemStack())); displayed.get(location.dScriptArgValue()).setPickupDelay(Integer.MAX_VALUE); displayed.get(location.dScriptArgValue()).setTicksLived(ticks); } diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FollowCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FollowCommand.java index 0dedef1b28..df20887e42 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FollowCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FollowCommand.java @@ -23,6 +23,9 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException if (aH.matchesArg("STOP", arg)) scriptEntry.addObject("stop", true); + if (aH.matchesValueArg("LEAD", arg, aH.ArgumentType.Double)) + scriptEntry.addObject("lead", aH.getDoubleFrom(arg)); + else throw new InvalidArgumentsException(dB.Messages.ERROR_UNKNOWN_ARGUMENT, arg); } } @@ -31,12 +34,17 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { // Get objects Boolean stop = (Boolean) scriptEntry.getObject("stop"); + Double lead = (Double) scriptEntry.getObject("lead"); // Report to dB dB.report(getName(), aH.debugObj("Player", scriptEntry.getPlayer().getName()) + (stop == null ? aH.debugObj("Action", "FOLLOW") - : aH.debugObj("Action", "STOP"))); + : aH.debugObj("Action", "STOP")) + + (lead != null ? aH.debugObj("Lead", lead.toString()) : "" )); + + if (lead != null) + scriptEntry.getNPC().getNavigator().getLocalParameters().distanceMargin(lead); if (stop != null) scriptEntry.getNPC().getNavigator() @@ -44,6 +52,7 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { else scriptEntry.getNPC().getNavigator() .setTarget(scriptEntry.getPlayer(), false); + } } \ No newline at end of file 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 1858879a42..357b35039f 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 @@ -46,13 +46,6 @@ public String doEvent(String eventName, dNPC npc, Player player, Map entries = script.getEntries(player, npc, "events.on " + eventName); - if (entries.isEmpty()) continue; - dB.report("Event", aH.debugObj("Type", "On " + eventName) + script.getAsScriptArg().debug() @@ -60,6 +53,13 @@ public String doEvent(String eventName, dNPC npc, Player player, Map entries = script.getEntries(player, npc, "events.on " + eventName); + if (entries.isEmpty()) continue; + dB.echoDebug(dB.DebugElement.Header, "Building event 'On " + eventName.toUpperCase() + "' for " + script.getName()); if (context != null) {