From c45a04c286119cd6206e2537c49847109279b22f Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 7 Sep 2014 21:45:24 +0100 Subject: [PATCH] Fixed a potential issue with equipping. --- src/services/equipment/EquipmentService.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index a6b434b1..7fc91ea2 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -34,6 +34,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.TreeMap; +import java.util.Vector; import org.python.core.Py; import org.python.core.PyObject; @@ -64,8 +65,10 @@ public class EquipmentService implements INetworkDispatch { SWGObject container = actor; if (canWear(actor, container, item)) { - for (String slotName : container.getSlotNamesForObject(item)) { - if (container.getSlottedObject(slotName) != null && !container.getSlotNamesForObject(item).iterator().hasNext()) { + Vector slotNames = container.getSlotNamesForObject(item); + + for (String slotName : slotNames) { + if (container.getSlottedObject(slotName) != null && !slotNames.iterator().hasNext()) { container.transferTo(actor, actor.getSlottedObject("inventory"), container.getSlottedObject(slotName)); break; } @@ -113,8 +116,10 @@ public class EquipmentService implements INetworkDispatch { SWGObject container = actor.getSlottedObject("appearance_inventory"); if (canWear(actor, container, item)) { - for (String slotName : container.getSlotNamesForObject(item)) { - if (container.getSlottedObject(slotName) != null && !container.getSlotNamesForObject(item).iterator().hasNext()) { + Vector slotNames = container.getSlotNamesForObject(item); + + for (String slotName : slotNames) { + if (container.getSlottedObject(slotName) != null && !slotNames.iterator().hasNext()) { unequipAppearance(actor, container.getSlottedObject(slotName)); container.transferTo(actor, actor.getSlottedObject("inventory"), container.getSlottedObject(slotName)); break;