Avoid probable concurrency issues.
This commit is contained in:
parent
eed915b9dc
commit
67cc5e1e45
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -363,7 +363,7 @@ public final class InstanceManager implements IXmlReader
|
||||
* @param templateId the instance template id
|
||||
* @return
|
||||
*/
|
||||
public Instance createDynamicInstance(int templateId)
|
||||
public synchronized Instance createDynamicInstance(int templateId)
|
||||
{
|
||||
while (getInstance(_dynamic) != null)
|
||||
{
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -69,7 +70,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, NpcSpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -187,7 +188,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader
|
||||
// Client instance names
|
||||
private final Map<Integer, String> _instanceNames = new HashMap<>();
|
||||
// Instance templates holder
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new HashMap<>();
|
||||
private final Map<Integer, InstanceTemplate> _instanceTemplates = new ConcurrentHashMap<>();
|
||||
// Created instance worlds
|
||||
private int _currentInstanceId = 0;
|
||||
private final Map<Integer, Instance> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader
|
||||
|
||||
private final Map<Class<? extends ZoneType>, ConcurrentHashMap<Integer, ? extends ZoneType>> _classZones = new ConcurrentHashMap<>();
|
||||
private final Map<String, SpawnTerritory> _spawnTerritories = new ConcurrentHashMap<>();
|
||||
private volatile int _lastDynamicId = 300000;
|
||||
private final AtomicInteger _lastDynamicId = new AtomicInteger(300000);
|
||||
private List<ItemInstance> _debugItems;
|
||||
|
||||
private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1];
|
||||
@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++;
|
||||
zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet();
|
||||
}
|
||||
|
||||
attribute = attrs.getNamedItem("name");
|
||||
@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader
|
||||
}
|
||||
if (checkId(zoneId))
|
||||
{
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition.");
|
||||
LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition.");
|
||||
}
|
||||
|
||||
if ((zoneName != null) && !zoneName.isEmpty())
|
||||
|
Loading…
Reference in New Issue
Block a user