diff --git a/src/resources/objects/SWGSet.java b/src/resources/objects/SWGSet.java index baed30cd..fae6145c 100644 --- a/src/resources/objects/SWGSet.java +++ b/src/resources/objects/SWGSet.java @@ -117,6 +117,7 @@ public class SWGSet implements Set, Serializable { public void clear() { synchronized(objectMutex) { + set.clear(); queue(item(2, null, null, false, false)); } } diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index f37ddfdf..41d555ec 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -115,7 +115,7 @@ public class TangibleObject extends SWGObject implements Serializable { baseline.put("faction", 0); baseline.put("factionStatus", 0); baseline.put("customization", new byte[] { }); - baseline.put("componentCustomizations", new SWGList(this, 3, 7, false)); + baseline.put("componentCustomizations", new SWGSet(this, 3, 7, false)); baseline.put("optionsBitmask", 0); baseline.put("uses", 0); baseline.put("conditionDamage", 0); @@ -172,11 +172,12 @@ public class TangibleObject extends SWGObject implements Serializable { notifyClients(getBaseline(3).set("customization", customization), true); } - public SWGList getComponentCustomizations() { - return (SWGList) getBaseline(3).get("componentCustomizations"); + public SWGSet getComponentCustomizations() { + return (SWGSet) getBaseline(3).get("componentCustomizations"); } public void setComponentCustomizations(List componentCustomizations) { + getComponentCustomizations().clear(); getComponentCustomizations().addAll(componentCustomizations); } diff --git a/src/resources/objects/waypoint/WaypointObject.java b/src/resources/objects/waypoint/WaypointObject.java index e30fa1a5..563ae32f 100644 --- a/src/resources/objects/waypoint/WaypointObject.java +++ b/src/resources/objects/waypoint/WaypointObject.java @@ -158,9 +158,8 @@ public class WaypointObject extends IntangibleObject implements Serializable, ID @Override public byte[] getBytes() { - IoBuffer buffer = bufferPool.allocate(50 + name.length() * 2, false).order(ByteOrder.LITTLE_ENDIAN); + IoBuffer buffer = bufferPool.allocate(42 + name.length() * 2, false).order(ByteOrder.LITTLE_ENDIAN); - buffer.putLong(getObjectID()); buffer.putInt(getCellId()); buffer.putFloat(getPosition().x); diff --git a/src/services/ConnectionService.java b/src/services/ConnectionService.java index eed1f254..015d6b71 100644 --- a/src/services/ConnectionService.java +++ b/src/services/ConnectionService.java @@ -83,7 +83,12 @@ public class ConnectionService implements INetworkDispatch { for(Client c : core.getActiveConnectionsMap().values()) { if(c.getParent() != null) { if ((System.currentTimeMillis() - c.getSession().getLastReadTime()) > 300000) { - disconnect(c); + try { + disconnect(c); + } catch (Exception e) { + System.err.println("ConnectionService:disconnect(): Error disconnecting client."); + e.printStackTrace(); + } } } } diff --git a/src/services/bazaar/BazaarService.java b/src/services/bazaar/BazaarService.java index 4680e077..32f760a2 100644 --- a/src/services/bazaar/BazaarService.java +++ b/src/services/bazaar/BazaarService.java @@ -780,6 +780,8 @@ public class BazaarService implements INetworkDispatch { } public void addAuctionItem(AuctionItem auctionItem) { + if(auctionItem == null) + return; auctionItems.add(auctionItem); int commodityNumber = 0; if(commodityLimit.get(auctionItem.getOwnerId()) != null)