diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index be544185..df096e2d 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -787,27 +787,24 @@ public class PlayerService implements INetworkDispatch { public void resetLevel(CreatureObject creature, boolean unequipItems) { PlayerObject player = (PlayerObject) creature.getSlottedObject("ghost"); SWGObject inventory = creature.getSlottedObject("inventory"); + SWGObject appearance = creature.getSlottedObject("appearance_inventory"); if (unequipItems) { try { - for (Equipment equipmentObject : new ArrayList(creature.getEquipmentList())) { - - SWGObject equipment = core.objectService.getObject(equipmentObject.getObjectId()); - - if (equipment == null || equipment.getTemplate().startsWith("object/tangible/hair/")) { - continue; + String[] slots = { "hat", "earring_r", "earring_l", "eyes", "mouth", "neck", "cloak", "back", "chest1", "chest2", "chest3_r", "chest3_l", "bicep_r", "bicep_l", "bracer_lower_r", "bracer_upper_r", "bracer_lower_l", "bracer_upper_l", "wrist_r", "wrist_l", "gloves", "hold_r", "hold_l", "ring_r", "ring_l", "utility_belt", "pants1", "pants2", "shoes" }; + + for (String slot : slots) { + if (creature.getSlottedObject(slot) != null) { + core.equipmentService.unequip(creature, creature.getSlottedObject(slot)); } - - switch (equipment.getTemplate()) { - case "object/tangible/inventory/shared_character_inventory.iff": - case "object/tangible/inventory/shared_appearance_inventory.iff": - case "object/tangible/datapad/shared_character_datapad.iff": - case "object/tangible/bank/shared_character_bank.iff": - case "object/tangible/mission_bag/shared_mission_bag.iff": - case "object/weapon/creature/shared_creature_default_weapon.iff": - continue; - default: - creature.transferTo(creature, inventory, equipment); + } + + + slots = { "hat", "earring_r", "earring_l", "eyes", "mouth", "neck", "cloak", "back", "chest1", "chest2", "chest3_r", "chest3_l", "bicep_r", "bicep_l", "bracer_lower_r", "bracer_upper_r", "bracer_lower_l", "bracer_upper_l", "wrist_r", "wrist_l", "gloves", "utility_belt", "pants1", "pants2", "shoes" }; + + for (String slot : slots) { + if (appearance.getSlottedObject(slot) != null) { + core.equipmentService.unequip(creature, creature.getSlottedObject(slot)); } } } catch (Exception e) { @@ -815,10 +812,6 @@ public class PlayerService implements INetworkDispatch { } } - //for (SWGObject equipment : creature.getAppearanceEquipmentList()) { - //core.equipmentService.unequip(creature, equipment); - //} - for (Buff buff : creature.getBuffList().values().toArray(new Buff[] { })) { if (buff.isRemoveOnRespec()) { core.buffService.removeBuffFromCreature(creature, buff);