From 397a35ebadfe3bedf12c9507cbebbe9a907940a6 Mon Sep 17 00:00:00 2001 From: Light2 Date: Fri, 28 Mar 2014 20:36:11 +0100 Subject: [PATCH] fixed null pointer at disconnect --- src/resources/objects/creature/CreatureObject.java | 3 ++- src/services/ai/states/AIState.java | 2 +- src/services/ai/states/AttackState.java | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 70037df7..ab478840 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -1580,7 +1580,8 @@ public class CreatureObject extends TangibleObject implements IPersistent { synchronized(objectMutex) { this.performanceListenee = performanceListenee; } - getClient().getSession().write(messageBuilder.buildListenToId(performanceListenee.getObjectId())); + if(getClient() != null) + getClient().getSession().write(messageBuilder.buildListenToId(performanceListenee.getObjectId())); } diff --git a/src/services/ai/states/AIState.java b/src/services/ai/states/AIState.java index 7238d6ed..0aa18891 100644 --- a/src/services/ai/states/AIState.java +++ b/src/services/ai/states/AIState.java @@ -144,8 +144,8 @@ public abstract class AIState { } else { newX = currentPathPosition.x; - newY = currentPathPosition.y; newZ = currentPathPosition.z; + newY = core.terrainService.getHeight(creature.getPlanetId(), newX, newX); } oldPosition = currentPathPosition; } diff --git a/src/services/ai/states/AttackState.java b/src/services/ai/states/AttackState.java index 690c5c18..2d49791c 100644 --- a/src/services/ai/states/AttackState.java +++ b/src/services/ai/states/AttackState.java @@ -76,6 +76,7 @@ public class AttackState extends AIState { actor.setNextPosition(actor.getFollowObject().getPosition()); else { //recover(actor); + actor.faceObject(actor.getFollowObject()); actor.scheduleMovement(); return StateResult.UNFINISHED; } @@ -136,7 +137,7 @@ public class AttackState extends AIState { actor.scheduleRecovery(); return StateResult.UNFINISHED; } - actor.faceObject(target); + //actor.faceObject(target); Vector attacks = actor.getMobileTemplate().getAttacks();