Browse Source

Method moved to top of handler.

combat-2
MagicBot 7 months ago
parent
commit
97558b51c8
  1. 153
      src/engine/net/client/handlers/ItemProductionMsgHandler.java

153
src/engine/net/client/handlers/ItemProductionMsgHandler.java

@ -38,6 +38,79 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler { @@ -38,6 +38,79 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
super(ItemProductionMsg.class);
}
@Override
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException {
// Member variable declaration
PlayerCharacter player;
NPC vendorNPC;
ItemProductionMsg msg;
Dispatch dispatch;
// Member variable assignment
msg = (ItemProductionMsg) baseMsg;
player = origin.getPlayerCharacter();
if (player == null)
return true;
// Grab reference to vendor we are interacting with
vendorNPC = (NPC) DbManager.getObject(mbEnums.GameObjectType.NPC, msg.npcUUID);
// Oops?
if (vendorNPC == null)
return true;
// Process Request
switch (msg.actionType) {
case PRODUCE:
boolean isRandom = false;
if (msg.unknown03 != 0 && msg.pToken == 0 && msg.sToken == 0)
isRandom = true;
//Create Multiple Item Function.. Fill all empty slots
if (msg.size > 0) {
int emptySlots = vendorNPC.getRank() - vendorNPC.getRolling().size();
if (emptySlots > 0) {
for (int i = 0; i < emptySlots; i++) {
vendorNPC.produceItem(player.getObjectUUID(), msg.total_to_produce, isRandom, msg.pToken, msg.sToken, msg.name, msg.templateID);
}
}
} else
vendorNPC.produceItem(player.getObjectUUID(), msg.total_to_produce, isRandom, msg.pToken, msg.sToken, msg.name, msg.templateID);
break;
case JUNK:
junkItem(msg.templateID, vendorNPC, origin);
break;
case RECYCLE:
recycleItem(msg.items, vendorNPC, origin);
msg.actionType = mbEnums.ProductionActionType.TAKE;
dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
break;
case COMPLETE:
vendorNPC.completeItem(msg.templateID);
break;
case DEPOSIT:
depositItem(msg.templateID, vendorNPC, origin);
break;
case SETPRICE:
setItemPrice(msg.itemType, msg.templateID, msg.itemPrice, vendorNPC, origin);
break;
case TAKE:
takeItem(msg.items, vendorNPC, origin);
dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
break;
}
return true;
}
private static void setItemPrice(int itemType, int itemUUID, int itemPrice, NPC vendor, ClientConnection origin) {
Item targetItem;
@ -323,86 +396,6 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler { @@ -323,86 +396,6 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
player.charItemManager.updateInventory();
// Update NPC inventory to client
}
// Method removes item from an NPC's inventory and transferes it to a player
@Override
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException {
// Member variable declaration
PlayerCharacter player;
NPC vendorNPC;
ItemProductionMsg msg;
Dispatch dispatch;
// Member variable assignment
msg = (ItemProductionMsg) baseMsg;
player = origin.getPlayerCharacter();
if (player == null)
return true;
// Grab reference to vendor we are interacting with
vendorNPC = (NPC) DbManager.getObject(mbEnums.GameObjectType.NPC, msg.npcUUID);
// Oops?
if (vendorNPC == null)
return true;
// Process Request
switch (msg.actionType) {
case PRODUCE:
boolean isRandom = false;
if (msg.unknown03 != 0 && msg.pToken == 0 && msg.sToken == 0)
isRandom = true;
//Create Multiple Item Function.. Fill all empty slots
if (msg.size > 0) {
int emptySlots = vendorNPC.getRank() - vendorNPC.getRolling().size();
if (emptySlots > 0) {
for (int i = 0; i < emptySlots; i++) {
vendorNPC.produceItem(player.getObjectUUID(), msg.total_to_produce, isRandom, msg.pToken, msg.sToken, msg.name, msg.templateID);
}
}
} else
vendorNPC.produceItem(player.getObjectUUID(), msg.total_to_produce, isRandom, msg.pToken, msg.sToken, msg.name, msg.templateID);
break;
case JUNK:
junkItem(msg.templateID, vendorNPC, origin);
break;
case RECYCLE:
recycleItem(msg.items, vendorNPC, origin);
msg.actionType = mbEnums.ProductionActionType.TAKE;
dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
break;
case COMPLETE:
vendorNPC.completeItem(msg.templateID);
break;
case DEPOSIT:
depositItem(msg.templateID, vendorNPC, origin);
break;
case SETPRICE:
setItemPrice(msg.itemType, msg.templateID, msg.itemPrice, vendorNPC, origin);
break;
case TAKE:
takeItem(msg.items, vendorNPC, origin);
dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.SECONDARY);
break;
}
return true;
}
// Method handles rolling item requests from the client
}

Loading…
Cancel
Save