mirror of
https://bitbucket.org/projectswg/holocore.git
synced 2026-10-20 12:02:57 -04:00
Fixed NGE-395 'New characters dont crash spawned in characters anymore'
This commit is contained in:
@@ -46,7 +46,6 @@ import network.packets.Packet;
|
||||
import network.packets.swg.ErrorMessage;
|
||||
import network.packets.swg.zone.SceneDestroyObject;
|
||||
import network.packets.swg.zone.insertion.SelectCharacter;
|
||||
import resources.Location;
|
||||
import resources.control.Intent;
|
||||
import resources.control.Manager;
|
||||
import resources.objects.SWGObject;
|
||||
@@ -223,12 +222,19 @@ public class ObjectManager extends Manager {
|
||||
}
|
||||
|
||||
private void processObjectCreatedIntent(ObjectCreatedIntent intent) {
|
||||
putObject(intent.getObject());
|
||||
if (!(intent.getObject() instanceof AIObject))
|
||||
SWGObject obj = intent.getObject();
|
||||
putObject(obj);
|
||||
if (obj instanceof CreatureObject && ((CreatureObject) obj).isPlayer()) {
|
||||
synchronized (database) {
|
||||
database.put(obj.getObjectId(), obj);
|
||||
database.save();
|
||||
}
|
||||
}
|
||||
if (!(obj instanceof AIObject))
|
||||
return;
|
||||
synchronized (objectMap) {
|
||||
if (started.get())
|
||||
((AIObject) intent.getObject()).aiStart();
|
||||
((AIObject) obj).aiStart();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +263,7 @@ public class ObjectManager extends Manager {
|
||||
}
|
||||
}
|
||||
|
||||
public SWGObject deleteObject(long objId) {
|
||||
private SWGObject deleteObject(long objId) {
|
||||
synchronized (database) {
|
||||
database.remove(objId);
|
||||
database.save();
|
||||
@@ -279,14 +285,8 @@ public class ObjectManager extends Manager {
|
||||
objectMap.put(object.getObjectId(), object);
|
||||
}
|
||||
}
|
||||
|
||||
public SWGObject destroyObject(long objectId) {
|
||||
SWGObject object = getObjectById(objectId);
|
||||
|
||||
return (object != null ? destroyObject(object) : null);
|
||||
}
|
||||
|
||||
public SWGObject destroyObject(SWGObject object) {
|
||||
private SWGObject destroyObject(SWGObject object) {
|
||||
|
||||
long objId = object.getObjectId();
|
||||
|
||||
@@ -321,49 +321,6 @@ public class ObjectManager extends Manager {
|
||||
return object;
|
||||
}
|
||||
|
||||
public SWGObject createObject(String template) {
|
||||
return createObject(template, null);
|
||||
}
|
||||
|
||||
public SWGObject createObject(SWGObject parent, String template) {
|
||||
return createObject(parent, template, null);
|
||||
}
|
||||
|
||||
public SWGObject createObject(String template, Location l) {
|
||||
return createObject(template, l, true);
|
||||
}
|
||||
|
||||
public SWGObject createObject(SWGObject parent, String template, boolean addToDatabase) {
|
||||
return createObject(parent, template, null, addToDatabase);
|
||||
}
|
||||
|
||||
public SWGObject createObject(SWGObject parent, String template, Location l) {
|
||||
return createObject(parent, template, l, true);
|
||||
}
|
||||
|
||||
public SWGObject createObject(String template, Location l, boolean addToDatabase) {
|
||||
return createObject(null, template, l, addToDatabase);
|
||||
}
|
||||
|
||||
public SWGObject createObject(SWGObject parent, String template, Location l, boolean addToDatabase) {
|
||||
SWGObject obj = ObjectCreator.createObjectFromTemplate(template);
|
||||
if (obj == null) {
|
||||
Log.e(this, "Unable to create object with template " + template);
|
||||
return null;
|
||||
}
|
||||
obj.setLocation(l);
|
||||
obj.moveToContainer(parent);
|
||||
synchronized (database) {
|
||||
if (addToDatabase) {
|
||||
database.put(obj.getObjectId(), obj);
|
||||
database.save();
|
||||
}
|
||||
}
|
||||
Log.v("ObjectManager", "Created object %d [%s]", obj.getObjectId(), obj.getTemplate());
|
||||
new ObjectCreatedIntent(obj).broadcast();
|
||||
return obj;
|
||||
}
|
||||
|
||||
private void zoneInCharacter(PlayerManager playerManager, long netId, long characterId) {
|
||||
Player player = playerManager.getPlayerFromNetworkId(netId);
|
||||
if (player == null) {
|
||||
|
||||
Reference in New Issue
Block a user