diff --git a/scripts/commands/generic/transferItemMisc.js b/scripts/commands/generic/transferItemMisc.js index 709403d2..44fefc2b 100644 --- a/scripts/commands/generic/transferItemMisc.js +++ b/scripts/commands/generic/transferItemMisc.js @@ -1,6 +1,8 @@ var execute = function(galManager, player, target, args) { var actor = player.getCreatureObject(); var inventory; + var oldContainer = target.getParent(); + var newContainer = galManager.getObjectManager().getObjectById(args.split(" ")[1]); if(actor == null || target == null) { return; @@ -12,11 +14,12 @@ var execute = function(galManager, player, target, args) { return; } - if(target.getParent() == actor) { - result = target.moveToContainer(actor, inventory); - actor.removeEquipment(target) + if(oldContainer == actor) { // This item is currently being worn + actor.removeEquipment(target); // Remove the item from the equipment list } else { - result = target.moveToContainer(actor, actor); - actor.addEquipment(target) + actor.addEquipment(target); } + + result = target.moveToContainer(actor, newContainer); // Move item from the old container to the new container + }; \ No newline at end of file diff --git a/src/services/objects/ObjectManager.java b/src/services/objects/ObjectManager.java index 3ea128c5..c7188b55 100644 --- a/src/services/objects/ObjectManager.java +++ b/src/services/objects/ObjectManager.java @@ -56,6 +56,7 @@ import network.packets.swg.zone.object_controller.ObjectController; import resources.Location; import resources.Terrain; import resources.config.ConfigFile; +import resources.containers.ContainerPermissions; import resources.control.Intent; import resources.control.Manager; import resources.objects.SWGObject; @@ -181,10 +182,26 @@ public class ObjectManager extends Manager { if (!(obj instanceof CreatureObject && ((CreatureObject) obj).hasSlot("ghost"))) objectAwareness.add(obj); if (obj instanceof CreatureObject && ((CreatureObject) obj).getPlayerObject() != null) { - if (!obj.hasSlot("bank")) - obj.addObject(createObject("object/tangible/bank/shared_character_bank.iff", false)); - if (!obj.hasSlot("mission_bag")) - obj.addObject(createObject("object/tangible/mission_bag/shared_mission_bag.iff", false)); + if (!obj.hasSlot("bank")) { + SWGObject missing = createObject("object/tangible/bank/shared_character_bank.iff", false); + + missing.setContainerPermissions(ContainerPermissions.INVENTORY); + obj.addObject(missing); + } + + if (!obj.hasSlot("mission_bag")) { + SWGObject missing = createObject("object/tangible/mission_bag/shared_mission_bag.iff", false); + + missing.setContainerPermissions(ContainerPermissions.INVENTORY); + obj.addObject(missing); + } + + if (!obj.hasSlot("appearance_inventory")) { + SWGObject missing = createObject("object/tangible/inventory/shared_appearance_inventory.iff", false); + + missing.setContainerPermissions(ContainerPermissions.INVENTORY); + obj.addObject(missing); + } } objectMap.put(obj.getObjectId(), obj); updateBuildoutParent(obj); diff --git a/src/services/player/CharacterCreationService.java b/src/services/player/CharacterCreationService.java index a65203cc..ca16c244 100644 --- a/src/services/player/CharacterCreationService.java +++ b/src/services/player/CharacterCreationService.java @@ -319,6 +319,8 @@ public class CharacterCreationService extends Service { datapad.setContainerPermissions(ContainerPermissions.INVENTORY); TangibleObject apprncInventory = createTangible(objManager, "object/tangible/inventory/shared_appearance_inventory.iff"); apprncInventory.setContainerPermissions(ContainerPermissions.INVENTORY); + TangibleObject safetyDeposit = createTangible(objManager, "object/tangible/bank/shared_character_bank.iff"); + safetyDeposit.setContainerPermissions(ContainerPermissions.INVENTORY); creatureObj.setRace(Race.getRaceByFile(create.getRace())); creatureObj.setAppearanceData(create.getCharCustomization()); @@ -330,6 +332,7 @@ public class CharacterCreationService extends Service { creatureObj.addObject(inventory); // slot = inventory creatureObj.addObject(datapad); // slot = datapad creatureObj.addObject(apprncInventory); // slot = appearance_inventory + creatureObj.addObject(safetyDeposit); // slot = bank creatureObj.addEquipment(inventory); creatureObj.addEquipment(datapad);