From 20cb8ef94dc10d3b25c3633c369d78065da880ae Mon Sep 17 00:00:00 2001
From: MagicBot <MagicBot@magicbane.com>
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;