From 4f76d6593ba602bfaa91e674cb9ab1d2c5b23811 Mon Sep 17 00:00:00 2001 From: Light2 Date: Wed, 18 Jun 2014 22:50:48 +0200 Subject: [PATCH] Fixed duplicate id issue(workaround) should fix some of the crashing, disabled vehicles for now(causing crashes), disabled some of the getObject spam --- src/services/DevService.java | 4 +--- src/services/PlayerService.java | 4 ++-- src/services/StaticService.java | 4 ++-- src/services/object/ObjectService.java | 11 ++++++++++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/services/DevService.java b/src/services/DevService.java index d3f37e10..79b3feca 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -91,9 +91,7 @@ public class DevService implements INetworkDispatch { if (creature.getClient().isGM()) { suiOptions.put((long) 120, "House Deeds"); suiOptions.put((long) 125, "Crafting Tools"); - } - suiOptions.put((long) 130, "Vehicle Deeds"); - if (creature.getClient().isGM()) { + suiOptions.put((long) 130, "Vehicle Deeds"); suiOptions.put((long) 121, "Sandbox City"); if(creature.getPlayerObject().getProfession().equals("trader_0a") || creature.getPlayerObject().getProfession().equals("trader_0b") || creature.getPlayerObject().getProfession().equals("trader_0c") || creature.getPlayerObject().getProfession().equals("trader_0d")) suiOptions.put((long) 177, "REing"); diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index 22378455..591d31aa 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -200,8 +200,8 @@ public class PlayerService implements INetworkDispatch { long[] ids = creature.getAwareObjects().stream().mapToLong(SWGObject::getObjectID).toArray(); for(int i = 0; i < ids.length; i++) { for(int j = 0; j < ids.length; j++) { - if(ids[i] == ids[j] && i != j) - System.err.println("Detected duplicate ids"); + if(ids[i] == ids[j] && i != j) + System.err.println("Detected duplicate ids, Template " + core.objectService.getObject(ids[i]).getTemplate()); } } }, 0, 5000, TimeUnit.MILLISECONDS)); diff --git a/src/services/StaticService.java b/src/services/StaticService.java index e943ffb1..e40a8619 100644 --- a/src/services/StaticService.java +++ b/src/services/StaticService.java @@ -138,8 +138,8 @@ public class StaticService implements INetworkDispatch { cellNumber = ((BuildingObject) cell.getContainer()).getCellNumberByObjectId(cellId); } - long objectId = core.objectService.getDOId(planetName, template, 0, buildingId, cellNumber, x, y, z); - + //long objectId = core.objectService.getDOId(planetName, template, 0, buildingId, cellNumber, x, y, z); + long objectId = 0; SWGObject object = null; MobileTemplate mobileTemplate = core.spawnService.getMobileTemplate(template); diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 9280919f..475f7155 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -239,6 +239,15 @@ public class ObjectService implements INetworkDispatch { boolean isSnapshot = false; + if(objectID != 0 && objectList.containsKey(objectID)) { + System.err.println("Trying to create object with duplicate Id"); + try { + throw new Exception(); + } catch(Exception e) { + e.printStackTrace(); + } + } + if(objectID == 0) objectID = generateObjectID(); else @@ -472,7 +481,7 @@ public class ObjectService implements INetworkDispatch { if (objectList.containsKey(objectID)) { System.err.println("getObject(): object is null but objectList contains objectID key"); } else { - System.err.println("getObject(): object is null"); + //System.err.println("getObject(): object is null"); } }