Skip to content

Commit

Permalink
Stop spam of "Entity referenced is null" messages. Fixes #358
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Aug 17, 2013
1 parent 83cec35 commit a2353c1
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 16 deletions.
Expand Up @@ -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");
}
Expand All @@ -129,27 +133,24 @@ 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);
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:
Expand Down
Expand Up @@ -1603,13 +1603,14 @@ public void serverCommandEvent(ServerCommandEvent event) {
@EventHandler
public void vehicleDamage(VehicleDamageEvent event) {

Entity entity = event.getAttacker();

if (entity == null) return;

Map<String, Object> context = new HashMap<String, Object>();

Entity entity = event.getAttacker();
Vehicle vehicle = event.getVehicle();

if (entity == null || vehicle == null)
return;

String entityType = entity.getType().name();
String vehicleType = vehicle.getType().name();

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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();

Expand Down Expand Up @@ -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();

Expand Down

0 comments on commit a2353c1

Please sign in to comment.