From 20cb8ef94dc10d3b25c3633c369d78065da880ae Mon Sep 17 00:00:00 2001 From: MagicBot Date: Fri, 8 Mar 2024 13:39:38 -0500 Subject: [PATCH] Handler created for equip message. --- ...ansferItemFromInventoryToEquipHandler.java | 26 +++++++++---------- src/engine/objects/CharacterItemManager.java | 11 ++++---- src/engine/objects/Item.java | 16 ++++++------ src/engine/objects/MobLoot.java | 3 +-- 4 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java b/src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java index bcce3d26..97088caa 100644 --- a/src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java +++ b/src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java @@ -43,28 +43,28 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa return true; } - int uuid = transferMsg.getUUID(); - int slot = transferMsg.getSlotNumber(); - //System.out.println("loading to slot: " + slot); + int itemUUID = transferMsg.getUUID(); + int slotOrdinal = transferMsg.getSlotNumber(); + Enum.EquipSlotType equipSlot = Enum.EquipSlotType.values()[slotOrdinal]; - Item i = itemManager.getItemByUUID(uuid); + Item item = itemManager.getItemByUUID(itemUUID); - if (i == null) { + if (item == null) { forceTransferFromEquipToInventory(transferMsg, origin, "Item not found in your item manager"); return true; } - if (!itemManager.doesCharOwnThisItem(i.getObjectUUID())) { + if (!itemManager.doesCharOwnThisItem(item.getObjectUUID())) { forceTransferFromEquipToInventory(transferMsg, origin, "You do not own this item"); return true; } //dupe check - if (!i.validForInventory(origin, playerCharacter, itemManager)) + if (!item.validForInventory(origin, playerCharacter, itemManager)) return true; - if (i.containerType == Enum.ItemContainerType.INVENTORY) { - if (!itemManager.equipItem(i, (byte) slot)) { + if (item.containerType == Enum.ItemContainerType.INVENTORY) { + if (!itemManager.equipItem(item, equipSlot)) { forceTransferFromEquipToInventory(transferMsg, origin, "Failed to transfer item."); return true; } @@ -77,8 +77,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa playerCharacter.applyBonuses(); DispatchMessage.dispatchMsgToInterestArea(playerCharacter, transferMsg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, false, false); - for (String name : i.getEffects().keySet()) { - Effect eff = i.getEffects().get(name); + for (String name : item.getEffects().keySet()) { + Effect eff = item.getEffects().get(name); if (eff == null) return true; @@ -92,8 +92,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa pum.setNumTrains(eff.getTrains()); pum.setUnknown05(1); pum.setUnknown06((byte) 1); - pum.setEffectSourceType(i.getObjectType().ordinal()); - pum.setEffectSourceID(i.getObjectUUID()); + pum.setEffectSourceType(item.getObjectType().ordinal()); + pum.setEffectSourceID(item.getObjectUUID()); pum.setDuration(-1); DispatchMessage.dispatchMsgToInterestArea(playerCharacter, pum, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, false, false); diff --git a/src/engine/objects/CharacterItemManager.java b/src/engine/objects/CharacterItemManager.java index 4db4fd51..6491644c 100644 --- a/src/engine/objects/CharacterItemManager.java +++ b/src/engine/objects/CharacterItemManager.java @@ -1266,7 +1266,7 @@ public class CharacterItemManager { return false; } - public boolean equipItem(Item i, byte slot) { + public boolean equipItem(Item i, Enum.EquipSlotType slot) { synchronized (this) { @@ -1275,7 +1275,6 @@ public class CharacterItemManager { return false; } - Enum.EquipSlotType equipSlot = Enum.EquipSlotType.values()[slot]; // Item must be in inventory to equip if (!this.inventory.contains(i) && this.absCharacter.getObjectType() != GameObjectType.Mob) @@ -1284,11 +1283,11 @@ public class CharacterItemManager { // make sure player can equip item if (i.getItemBase() == null) return false; - if (!i.getItemBase().canEquip(equipSlot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob) + if (!i.getItemBase().canEquip(slot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob) return false; // check to see if item is already there. - Item old = this.equipped.get((int) slot); + Item old = this.equipped.get(slot); if (old != null) { Logger.error("already equipped"); return false; @@ -1311,11 +1310,11 @@ public class CharacterItemManager { this.remItemFromLists(i); // add to Equipped - this.equipped.put(Enum.EquipSlotType.values()[slot], i); + this.equipped.put(slot, i); i.addToCache(); - addEquipOrder(slot); + addEquipOrder(slot.ordinal()); //calculateWeights(); } diff --git a/src/engine/objects/Item.java b/src/engine/objects/Item.java index 865acca0..d8f9dbf2 100644 --- a/src/engine/objects/Item.java +++ b/src/engine/objects/Item.java @@ -956,7 +956,7 @@ public class Item extends AbstractWorldObject { return true; } - protected synchronized boolean equipItem(PlayerCharacter pc, byte slot) { + protected synchronized boolean equipItem(PlayerCharacter pc, Enum.EquipSlotType slot) { if (!DbManager.ItemQueries.UPDATE_OWNER(this, pc.getObjectUUID(), //tableID @@ -964,42 +964,42 @@ public class Item extends AbstractWorldObject { true, //isPlayer false, //isAccount ItemContainerType.EQUIPPED, - slot)) //Slot + slot.ordinal())) //Slot return false; this.zeroItem(); this.ownerID = pc.getObjectUUID(); this.ownerType = OwnerType.PlayerCharacter; this.containerType = Enum.ItemContainerType.EQUIPPED; - this.equipSlot = EquipSlotType.values()[slot]; + this.equipSlot = slot; return true; } - protected synchronized boolean equipItem(NPC npc, byte slot) { + protected synchronized boolean equipItem(NPC npc, Enum.EquipSlotType slot) { if (!DbManager.ItemQueries.UPDATE_OWNER(this, npc.getObjectUUID(), //UUID true, //isNPC false, //isPlayer false, //isAccount ItemContainerType.EQUIPPED, - slot)) //Slot + slot.ordinal())) //Slot return false; this.zeroItem(); this.ownerID = npc.getObjectUUID(); this.ownerType = OwnerType.Npc; this.containerType = Enum.ItemContainerType.EQUIPPED; - this.equipSlot = EquipSlotType.values()[slot]; + this.equipSlot = slot; return true; } - protected synchronized boolean equipItem(Mob npc, byte slot) { + protected synchronized boolean equipItem(Mob npc, Enum.EquipSlotType slot) { this.zeroItem(); this.ownerID = npc.getObjectUUID(); this.ownerType = OwnerType.Mob; this.containerType = Enum.ItemContainerType.EQUIPPED; - this.equipSlot = EquipSlotType.values()[slot]; + this.equipSlot = slot; return true; } diff --git a/src/engine/objects/MobLoot.java b/src/engine/objects/MobLoot.java index b9c603b8..8d98c039 100644 --- a/src/engine/objects/MobLoot.java +++ b/src/engine/objects/MobLoot.java @@ -239,7 +239,7 @@ public final class MobLoot extends Item { /** * Not implemented */ - @Override + @Deprecated protected boolean equipItem(NPC npc, byte slot) { return false; @@ -248,7 +248,6 @@ public final class MobLoot extends Item { /** * Not implemented */ - @Override @Deprecated protected boolean equipItem(PlayerCharacter pc, byte slot) { return false;