diff --git a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FlagCommand.java b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FlagCommand.java index 877fcb9f24..89c9af7dea 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FlagCommand.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/commands/core/FlagCommand.java @@ -97,12 +97,16 @@ else if (flagArgs[1].startsWith("/")) scriptEntry.defaultObject("target", scriptEntry.hasPlayer() ? Type.PLAYER : null); // Sets the official target - if (((Type) scriptEntry.getObject("target")).name().matches("^(DENIZEN|NPC)$") - && scriptEntry.hasNPC()) + if (((Type) scriptEntry.getObject("target")).name().matches("^(DENIZEN|NPC)$")) { + if (!scriptEntry.hasNPC() || !scriptEntry.getNPC().isValid()) + throw new InvalidArgumentsException("Invalid NPC specified!"); scriptEntry.addObject("target", scriptEntry.getNPC().getDenizenEntity()); - else if (((Type) scriptEntry.getObject("target")).name().matches("^PLAYER$") - && scriptEntry.hasPlayer()) + } + else if (((Type) scriptEntry.getObject("target")).name().matches("^PLAYER$")) { + if (!scriptEntry.hasPlayer() || !scriptEntry.getPlayer().isValid()) + throw new InvalidArgumentsException("Invalid player specified!"); scriptEntry.addObject("target", scriptEntry.getPlayer().getDenizenEntity()); + } else scriptEntry.addObject("target", "SERVER"); } @@ -129,16 +133,16 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { name = name.split("\\[")[0]; } - Flag flag = null; - // Send information to debugger dB.report(getName(), aH.debugObj("Name", name) + (index > 0 ? aH.debugObj("Index", String.valueOf(index)) : "") + aH.debugUniqueObj("Action/Value", action.toString(), (value != null ? value : "null")) + (duration.getSeconds() > 0 ? duration.debug() : "") - + aH.debugObj("Target", (target != null ? (target.isNPC() ? target.getNPC() : target.isPlayer() ? target.getPlayer() : "Other") : "Server"))); + + aH.debugObj("Target", (target != null ? (target.isNPC() ? target.getNPC() : target.isPlayer() ? target.getPlayer() : target.getType()) : "Server"))); + Flag flag = null; + // Returns existing flag (if existing), or a new flag if not if (target == null) flag = denizen.flagManager().getGlobalFlag(name); @@ -146,10 +150,7 @@ else if (target.isPlayer()) flag = denizen.flagManager().getPlayerFlag(target.getPlayer().getName(), name); else if (target.isNPC()) flag = denizen.flagManager().getNPCFlag(target.getNPC().getId(), name); - else { - dB.echoError("Invalid entity specified!"); - return; - } + // Do flagAction switch (action) { case INCREASE: case DECREASE: case MULTIPLY: case DIVIDE: 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 485493456d..016ffcf793 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 @@ -1603,13 +1603,14 @@ public void serverCommandEvent(ServerCommandEvent event) { @EventHandler public void vehicleDamage(VehicleDamageEvent event) { - Entity entity = event.getAttacker(); - - if (entity == null) return; - Map context = new HashMap(); + + Entity entity = event.getAttacker(); Vehicle vehicle = event.getVehicle(); + if (entity == null || vehicle == null) + return; + String entityType = entity.getType().name(); String vehicleType = vehicle.getType().name(); @@ -1649,8 +1650,11 @@ public void vehicleDestroy(VehicleDestroyEvent event) { Entity entity = event.getAttacker(); Vehicle vehicle = event.getVehicle(); + + if (entity == null || vehicle == null) + return; - String entityType = entity != null ? entity.getType().name() : null; + String entityType = entity.getType().name(); String vehicleType = vehicle.getType().name(); Player player = null; @@ -1684,6 +1688,9 @@ public void vehicleEnter(VehicleEnterEvent event) { Entity entity = event.getEntered(); Vehicle vehicle = event.getVehicle(); + if (entity == null || vehicle == null) + return; + String entityType = entity.getType().name(); String vehicleType = vehicle.getType().name(); @@ -1718,6 +1725,9 @@ public void vehicleExit(VehicleExitEvent event) { Entity entity = event.getExited(); Vehicle vehicle = event.getVehicle(); + if (entity == null || vehicle == null) + return; + String entityType = entity.getType().name(); String vehicleType = vehicle.getType().name();