diff --git a/src/main/java/net/citizensnpcs/api/ai/tree/StatusMapper.java b/src/main/java/net/citizensnpcs/api/ai/tree/StatusMapper.java index 273c960c..5e83f758 100644 --- a/src/main/java/net/citizensnpcs/api/ai/tree/StatusMapper.java +++ b/src/main/java/net/citizensnpcs/api/ai/tree/StatusMapper.java @@ -35,7 +35,6 @@ public static StatusMapper mapping(Behavior wrapping, Supplier t public static Behavior singleUse(Behavior base) { return new Behavior() { - @Override public void reset() { base.reset(); diff --git a/src/main/java/net/citizensnpcs/api/command/CommandContext.java b/src/main/java/net/citizensnpcs/api/command/CommandContext.java index 742dedeb..0dfd6a2d 100644 --- a/src/main/java/net/citizensnpcs/api/command/CommandContext.java +++ b/src/main/java/net/citizensnpcs/api/command/CommandContext.java @@ -252,32 +252,37 @@ public String getRawCommand() { } public Location getSenderLocation() throws CommandException { - if (location != null || sender == null) + if (location != null) return location; - if (hasValueFlag("location")) - return parseLocation(location, getFlag("location")); - + Location base = null; if (sender instanceof Player) { - location = ((Player) sender).getLocation(); + base = ((Player) sender).getLocation(); } else if (sender instanceof BlockCommandSender) { - location = ((BlockCommandSender) sender).getBlock().getLocation(); + base = ((BlockCommandSender) sender).getBlock().getLocation(); } - return location; + + if (hasValueFlag("location")) + return location = parseLocation(base, getFlag("location")); + + return location = base; } public Location getSenderTargetBlockLocation() throws CommandException { - if (sender == null) + if (location != null) return location; - if (hasValueFlag("location")) { - return parseLocation(location, getFlag("location")); - } + + Location base = null; if (sender instanceof Player) { - location = ((Player) sender).getTargetBlock((java.util.Set) null, 50).getLocation(); + base = ((Player) sender).getTargetBlock((java.util.Set) null, 50).getLocation(); } else if (sender instanceof BlockCommandSender) { - location = ((BlockCommandSender) sender).getBlock().getLocation(); + base = ((BlockCommandSender) sender).getBlock().getLocation(); } - return location; + + if (hasValueFlag("location")) + return location = parseLocation(base, getFlag("location")); + + return location = base; } public String[] getSlice(int index) { @@ -377,18 +382,21 @@ public static Location parseLocation(Location currentLocation, String flag) thro case 6: if (denizen) { worldName = parts[5].replaceFirst("w@", ""); - } else + } else { pitch = Float.parseFloat(parts[5]); + } case 5: if (denizen) { pitch = Float.parseFloat(parts[4]); - } else + } else { yaw = Float.parseFloat(parts[4]); + } case 4: if (denizen && parts.length > 4) { yaw = Float.parseFloat(parts[3]); - } else + } else { worldName = parts[3].replaceFirst("w@", ""); + } case 3: x = Double.parseDouble(parts[0]); y = Double.parseDouble(parts[1]);