forked from MagicBane/Server
Handler created for equip message.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user