@ -542,41 +542,51 @@ public class ClientMessagePump implements NetMsgHandler {
@@ -542,41 +542,51 @@ 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 ( ) ;
if ( sourcePlayer = = null | | ! sourcePlayer . isAlive ( ) ) {
if ( sourcePlayer = = null )
return ;
}
CharacterItemManager itemManager = sourcePlayer . getCharItemManager ( ) ;
Item item = Item . getFromCache ( msg . getUUID ( ) ) ;
if ( item = = null | | ! canDeleteItem ( item , itemManager ) ) {
if ( ! sourcePlayer . isAlive ( ) )
return ;
}
int value = item . getItemBase ( ) . value ;
if ( item . getItemBase ( ) . isRune ( ) ) {
value = 500000 ;
}
Item i = Item . getFromCache ( msg . getUUID ( ) ) ;
if ( sourcePlayer . getCharItemManager ( ) . getGoldInventory ( ) . getNumOfItems ( ) + value > 10000000 ) {
if ( i = = null )
return ;
}
if ( itemManager . delete ( item ) ) {
itemManager . addGoldToInventory ( value , false ) ;
itemManager . updateInventory ( ) ;
Dispatch dispatch = Dispatch . borrow ( sourcePlayer , msg ) ;
DispatchMessage . dispatchMsgDispatch ( dispatch , DispatchChannel . SECONDARY ) ;
}
}
if ( i . getItemBaseID ( ) = = 7 )
return ; //cant delete gold
if ( ! itemManager . doesCharOwnThisItem ( i . getObjectUUID ( ) ) )
return ;
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 ) ;
if ( ! itemManager . inventoryContains ( i ) )
return ;
if ( i . getItemBaseID ( ) = = 980066 )
return ;
if ( i . canDestroy ) {
int value = i . getItemBase ( ) . value ;
if ( i . getItemBase ( ) . isRune ( ) )
value = 500000 ;
if ( sourcePlayer . getCharItemManager ( ) . getGoldInventory ( ) . getNumOfItems ( ) + value > 10000000 ) {
return ;
}
if ( itemManager . delete ( i ) = = true ) {
sourcePlayer . getCharItemManager ( ) . addGoldToInventory ( value , false ) ;
sourcePlayer . getCharItemManager ( ) . updateInventory ( ) ;
Dispatch dispatch = Dispatch . borrow ( sourcePlayer , msg ) ;
DispatchMessage . dispatchMsgDispatch ( dispatch , DispatchChannel . SECONDARY ) ;
}
}
}
private static void ackBankWindowOpened ( AckBankWindowOpenedMsg msg , ClientConnection origin ) {
@ -1969,7 +1979,7 @@ public class ClientMessagePump implements NetMsgHandler {
@@ -1969,7 +1979,7 @@ public class ClientMessagePump implements NetMsgHandler {
TransferItemFromInventoryToEquip ( ( TransferItemFromInventoryToEquipMsg ) msg , origin ) ;
break ;
case DELETEOBJECT :
d eleteItem( ( DeleteItemMsg ) msg , origin ) ;
D eleteItem( ( DeleteItemMsg ) msg , origin ) ;
break ;
case VIEWRESOURCES :
ViewResourcesMessage ( ( ViewResourcesMessage ) msg , origin ) ;