Browse Source

optimized deleting items

lakebane-master
FatBoy-DOTC 7 months ago
parent
commit
0ac7a1a7fa
  1. 58
      src/engine/net/client/ClientMessagePump.java

58
src/engine/net/client/ClientMessagePump.java

@ -542,51 +542,41 @@ public class ClientMessagePump implements NetMsgHandler {
} }
private static void DeleteItem(DeleteItemMsg msg, ClientConnection origin) { private static void deleteItem(DeleteItemMsg msg, ClientConnection origin) {
CharacterItemManager itemManager = origin.getPlayerCharacter().getCharItemManager();
int uuid = msg.getUUID();
PlayerCharacter sourcePlayer = origin.getPlayerCharacter(); PlayerCharacter sourcePlayer = origin.getPlayerCharacter();
if (sourcePlayer == null || !sourcePlayer.isAlive()) {
if (sourcePlayer == null)
return;
if (!sourcePlayer.isAlive())
return;
Item i = Item.getFromCache(msg.getUUID());
if (i == null)
return;
if(i.getItemBaseID() == 7)
return; //cant delete gold
if (!itemManager.doesCharOwnThisItem(i.getObjectUUID()))
return;
if (!itemManager.inventoryContains(i))
return; return;
}
if(i.getItemBaseID() == 980066) CharacterItemManager itemManager = sourcePlayer.getCharItemManager();
Item item = Item.getFromCache(msg.getUUID());
if (item == null || !canDeleteItem(item, itemManager)) {
return; return;
}
if (i.canDestroy) { int value = item.getItemBase().value;
int value = i.getItemBase().value; if (item.getItemBase().isRune()) {
if(i.getItemBase().isRune())
value = 500000; value = 500000;
if(sourcePlayer.getCharItemManager().getGoldInventory().getNumOfItems() + value > 10000000){ }
if (sourcePlayer.getCharItemManager().getGoldInventory().getNumOfItems() + value > 10000000) {
return; return;
} }
if (itemManager.delete(i) == true) {
sourcePlayer.getCharItemManager().addGoldToInventory(value,false); if (itemManager.delete(item)) {
sourcePlayer.getCharItemManager().updateInventory(); itemManager.addGoldToInventory(value, false);
itemManager.updateInventory();
Dispatch dispatch = Dispatch.borrow(sourcePlayer, msg); Dispatch dispatch = Dispatch.borrow(sourcePlayer, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY); DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.SECONDARY);
} }
} }
private static boolean canDeleteItem(Item item, CharacterItemManager itemManager) {
return item.getItemBaseID() != 7 && // Can't delete gold
item.getItemBaseID() != 980066 && // Can't delete conc pots
item.canDestroy &&
itemManager.doesCharOwnThisItem(item.getObjectUUID()) &&
itemManager.inventoryContains(item);
} }
private static void ackBankWindowOpened(AckBankWindowOpenedMsg msg, ClientConnection origin) { private static void ackBankWindowOpened(AckBankWindowOpenedMsg msg, ClientConnection origin) {
@ -1750,7 +1740,7 @@ public class ClientMessagePump implements NetMsgHandler {
TransferItemFromInventoryToEquip((TransferItemFromInventoryToEquipMsg) msg, origin); TransferItemFromInventoryToEquip((TransferItemFromInventoryToEquipMsg) msg, origin);
break; break;
case DELETEOBJECT: case DELETEOBJECT:
DeleteItem((DeleteItemMsg) msg, origin); deleteItem((DeleteItemMsg) msg, origin);
break; break;
case VIEWRESOURCES: case VIEWRESOURCES:
ViewResourcesMessage((ViewResourcesMessage) msg, origin); ViewResourcesMessage((ViewResourcesMessage) msg, origin);

Loading…
Cancel
Save