_player.getInventory().unEquipItemInBodySlotAndRecord(L2Item.SLOT_LR_HAND);
_player.getInventory().destroyItemByItemId("", _itemId, 1, _player, null);
_player.store();
//update inventory and userInfo
_player.sendPacket(new ItemList(_player, true));
_player.broadcastUserInfo();
}
else
{
// Remove from Db
_log.info(_name + " being removed offline.");
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection(false);
// Delete the item
PreparedStatement statement = con.prepareStatement("DELETE FROM items WHERE owner_id=? AND item_id=?");
statement.setInt(1, _playerId);
statement.setInt(2, _itemId);
if(statement.executeUpdate() != 1)
{
_log.warning("Error while deleting itemId " + _itemId + " from userId " + _playerId);
}
statement.close();
statement = null;
// Restore the karma
statement = con.prepareStatement("UPDATE characters SET karma=?, pkkills=? WHERE obj_id=?");
statement.setInt(1, _playerKarma);
statement.setInt(2, _playerPkKills);
statement.setInt(3, _playerId);
if(statement.executeUpdate() != 1)
{
_log.warning("Error while updating karma & pkkills for userId " + _playerId);
}
statement.close();
statement = null;
}
catch(Exception e)
{
_log.warning("Could not delete : " + e);
}
finally
{
CloseUtil.close(con);
con = null;
}
}
}
else
{
// either this cursed weapon is in the inventory of someone who has another cursed weapon equipped,
// OR this cursed weapon is on the ground.
if(_player != null && _player.getInventory().getItemByItemId(_itemId) != null)
{
L2ItemInstance rhand = _player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
if (rhand != null)
{
_player.getInventory().unEquipItemInSlotAndRecord(rhand.getEquipSlot());
}
// Destroy
_player.getInventory().destroyItemByItemId("", _itemId, 1, _player, null);
_player.store();
//update inventory and userInfo
_player.sendPacket(new ItemList(_player, true));
_player.broadcastUserInfo();
}
// is dropped on the ground
else if(_item != null)
{