From 4ec682ae014fab62b5e01f49bdf77f8252ff6671 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 7 Sep 2014 20:01:55 +0100 Subject: [PATCH] See extended... - Fixed issue where old item wasn't correctly unequipped when equipping another item of the same type. --- src/services/equipment/EquipmentService.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index 45196f96..5288ac66 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -64,6 +64,13 @@ 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()) { + container.transferTo(actor, actor.getSlottedObject("inventory"), container.getSlottedObject(slotName)); + break; + } + } + String template = ((item.getAttachment("customServerTemplate") == null) ? item.getTemplate() : (item.getTemplate().split("shared_")[0] + "shared_" + ((String) item.getAttachment("customServerTemplate")) + ".iff")); String serverTemplate = template.replace(".iff", ""); @@ -73,13 +80,6 @@ public class EquipmentService implements INetworkDispatch { func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); } - for (String slotName : container.getSlotNamesForObject(item)) { - if (container.getSlottedObject(slotName) != null && !container.getSlotNamesForObject(item).iterator().hasNext()) { - container.transferTo(actor, actor.getSlottedObject("inventory"), item); - break; - } - } - actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); @@ -116,7 +116,7 @@ public class EquipmentService implements INetworkDispatch { for (String slotName : container.getSlotNamesForObject(item)) { if (container.getSlottedObject(slotName) != null && !container.getSlotNamesForObject(item).iterator().hasNext()) { unequipAppearance(actor, item); - container.transferTo(actor, actor.getSlottedObject("inventory"), item); + container.transferTo(actor, actor.getSlottedObject("inventory"), container.getSlottedObject(slotName)); break; } }