From 36458239d3dfad68d22d926d0e27629afc29ddf4 Mon Sep 17 00:00:00 2001 From: Treeku Date: Thu, 20 Mar 2014 15:29:04 +0000 Subject: [PATCH] Added object tracking lists to instances Add objects with instance.getObjectList().add(object) It's removed automatically when the instance closes. --- src/services/InstanceService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/services/InstanceService.java b/src/services/InstanceService.java index d5c032a0..171e77a7 100644 --- a/src/services/InstanceService.java +++ b/src/services/InstanceService.java @@ -66,6 +66,7 @@ public class InstanceService implements INetworkDispatch { private CreatureObject owner; private List participants = new CopyOnWriteArrayList(); private List activeParticipants = new CopyOnWriteArrayList(); + private List objectList = new CopyOnWriteArrayList(); private ScheduledFuture task; private boolean faulty = false; private boolean closed = false; @@ -137,6 +138,10 @@ public class InstanceService implements INetworkDispatch { return participants; } + public List getObjectList() { + return objectList; + } + public synchronized boolean addParticipant(CreatureObject participant) { if (activeParticipants.contains(participant)) { return true; @@ -185,6 +190,12 @@ public class InstanceService implements INetworkDispatch { } public synchronized void close() { + for (SWGObject object : objectList) { + core.objectService.destroyObject(object); + } + + objectList.clear(); + closed = true; }