Fixed bug related to deleting characters

Also added 2 new variables to destroyObject for certain cases.
This commit is contained in:
Waverunner
2014-03-12 15:01:09 -04:00
parent 0742c19af3
commit 18c0f070fd
3 changed files with 66 additions and 42 deletions
+18 -5
View File
@@ -357,18 +357,22 @@ public class ObjectService implements INetworkDispatch {
public Map<Long, SWGObject> getObjectList() { return objectList; }
public void destroyObject(SWGObject object) {
destroyObject(object, false, true);
}
public void destroyObject(final SWGObject object, int seconds) {
scheduler.schedule(new Runnable() {
@Override
public void run() {
destroyObject(object);
destroyObject(object, false, true);
}
}, seconds, TimeUnit.SECONDS);
}
public void destroyObject(SWGObject object) {
public void destroyObject(SWGObject object, boolean notify, boolean removeFromQt) {
if (object == null) {
return;
}
@@ -411,20 +415,29 @@ public class ObjectService implements INetworkDispatch {
objectList.remove(obj.getObjectID());
}
});
objectList.remove(object.getObjectID());
core.simulationService.remove(object, object.getPosition().x, object.getPosition().y);
if(removeFromQt && !notify)
core.simulationService.remove(object, object.getPosition().x, object.getPosition().y);
else if(notify && removeFromQt)
core.simulationService.remove(object, object.getPosition().x, object.getPosition().y, true);
objectList.remove(object.getObjectID());
}
public void destroyObject(long objectID) {
SWGObject object = getObject(objectID);
if(object != null) {
destroyObject(object);
destroyObject(object, false, true);
}
}
public void destroyObject(SWGObject object, boolean removeFromQt) {
destroyObject(object, false, removeFromQt);
}
public SWGObject getObjectByCustomName(String customName) {
synchronized(objectList) {