public async Task <MethodResult> RecycleItem(InventoryItemSetting itemSetting, int toDelete) { try { var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.RecycleInventoryItem, RequestMessage = new RecycleInventoryItemMessage { Count = toDelete, ItemId = itemSetting.Id }.ToByteString() }); RecycleInventoryItemResponse recycleInventoryItemResponse = null; recycleInventoryItemResponse = RecycleInventoryItemResponse.Parser.ParseFrom(response); LogCaller(new LoggerEventArgs(String.Format("Deleted {0} {1}. Remaining {2}", toDelete, itemSetting.FriendlyName, recycleInventoryItemResponse.NewCount), LoggerTypes.Recycle)); return(new MethodResult { Success = true }); } catch (Exception ex) { LogCaller(new LoggerEventArgs(String.Format("Failed to recycle iventory item {0}", itemSetting.FriendlyName), LoggerTypes.Warning, ex)); return(new MethodResult()); } }
public async Task <MethodResult> RecycleItem(InventoryItemSetting itemSetting, int toDelete) { try { RecycleInventoryItemResponse response = await _client.Inventory.RecycleItem(itemSetting.Id, toDelete); if (response.Result == RecycleInventoryItemResponse.Types.Result.Success) { LogCaller(new LoggerEventArgs(String.Format("Deleted {0} {1}. Remaining {2}", toDelete, itemSetting.FriendlyName, response.NewCount), LoggerTypes.Recycle)); return(new MethodResult { Success = true }); } else { LogCaller(new LoggerEventArgs(String.Format("Failed to delete {0}. Message: {1}", itemSetting.FriendlyName, response.Result), LoggerTypes.Warning)); return(new MethodResult()); } } catch (Exception ex) { LogCaller(new LoggerEventArgs(String.Format("Failed to recycle iventory item {0}", itemSetting.FriendlyName), LoggerTypes.Warning, ex)); return(new MethodResult()); } }
public async Task <MethodResult> RecycleFilteredItems() { if (Items.Count == 0 || Items == null) { return new MethodResult { Message = "Not items here...." } } ; if (!UserSettings.RecycleItems) { return(new MethodResult { Message = "Item deletion not enabled" }); } //TODO: skip ThrowInvalidOperationException(ExceptionResource resource) try { foreach (ItemData item in Items) { InventoryItemSetting itemSetting = UserSettings.ItemSettings.FirstOrDefault(x => x.Id == item.ItemId); if (itemSetting == null) { continue; } int toDelete = item.Count - itemSetting.MaxInventory; if (toDelete <= 0) { continue; } await RecycleItem(itemSetting, toDelete); await Task.Delay(CalculateDelay(UserSettings.DelayBetweenPlayerActions, UserSettings.PlayerActionDelayRandom)); } UpdateInventory(InventoryRefresh.Items); return(new MethodResult { Message = "Success", Success = true }); } catch { return(new MethodResult()); } }
public async Task <MethodResult> RecycleItem(ItemData item, int toDelete) { InventoryItemSetting itemSetting = UserSettings.ItemSettings.FirstOrDefault(x => x.Id == item.ItemId); if (itemSetting == null) { return(new MethodResult()); } return(await RecycleItem(itemSetting, toDelete)); }
public async Task <MethodResult> RecycleItem(InventoryItemSetting itemSetting, int toDelete) { if (!_client.LoggedIn) { MethodResult result = await AcLogin(); if (!result.Success) { return(result); } } var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.RecycleInventoryItem, RequestMessage = new RecycleInventoryItemMessage { Count = toDelete, ItemId = itemSetting.Id }.ToByteString() }); if (response == null) { return(new MethodResult()); } RecycleInventoryItemResponse recycleInventoryItemResponse = RecycleInventoryItemResponse.Parser.ParseFrom(response); switch (recycleInventoryItemResponse.Result) { case RecycleInventoryItemResponse.Types.Result.ErrorCannotRecycleIncubators: return(new MethodResult()); case RecycleInventoryItemResponse.Types.Result.ErrorNotEnoughCopies: return(new MethodResult()); case RecycleInventoryItemResponse.Types.Result.Success: LogCaller(new LoggerEventArgs(String.Format("Deleted {0} {1}. Remaining {2}", toDelete, itemSetting.FriendlyName, recycleInventoryItemResponse.NewCount), LoggerTypes.Recycle)); return(new MethodResult { Success = true }); case RecycleInventoryItemResponse.Types.Result.Unset: return(new MethodResult()); } return(new MethodResult()); }
public async Task <MethodResult> RecycleFilteredItems() { if (!UserSettings.RecycleItems) { return(new MethodResult { Message = "Item deletion not enabled" }); } MethodResult <List <InventoryItem> > inventoryResponse = await UpdateInventory(); if (!inventoryResponse.Success) { return(inventoryResponse); } await UpdateItemList(false); foreach (ItemData item in Items) { InventoryItemSetting itemSetting = UserSettings.ItemSettings.FirstOrDefault(x => x.Id == item.ItemId); if (itemSetting == null) { continue; } int toDelete = item.Count - itemSetting.MaxInventory; if (toDelete <= 0) { continue; } await RecycleItem(itemSetting, toDelete); await Task.Delay(CalculateDelay(UserSettings.DelayBetweenPlayerActions, UserSettings.PlayerActionDelayRandom)); } return(new MethodResult { Message = "Success", Success = true }); }
public void LoadInventorySettings() { ItemSettings = new List <InventoryItemSetting>(); foreach (ItemId item in Enum.GetValues(typeof(ItemId))) { if (item == ItemId.ItemUnknown) { continue; } var itemSetting = new InventoryItemSetting { Id = item }; ItemSettings.Add(itemSetting); } }
private void editToolStripMenuItem_Click(object sender, EventArgs e) { int totalObjects = fastObjectListViewRecycling.SelectedObjects.Count; if (totalObjects == 0) { return; } InventoryItemSetting iiSettings = fastObjectListViewRecycling.SelectedObjects[0] as InventoryItemSetting; if (iiSettings == null) { return; } string num = Prompt.ShowDialog("Max Inventory Amount", "Edit Amount", iiSettings.MaxInventory.ToString()); if (String.IsNullOrEmpty(num)) { return; } int maxInventory = 0; if (!Int32.TryParse(num, out maxInventory)) { return; } foreach (InventoryItemSetting item in fastObjectListViewRecycling.SelectedObjects) { item.MaxInventory = maxInventory; } fastObjectListViewRecycling.SetObjects(_manager.UserSettings.ItemSettings); }
public async Task <MethodResult> RecycleItems() { if (!UserSettings.RecycleItems) { return(new MethodResult { Message = "Item deletion not enabled" }); } MethodResult <List <InventoryItem> > inventoryResponse = await GetInventory(); if (!inventoryResponse.Success) { return(inventoryResponse); } await UpdateItemList(false); foreach (ItemData item in Items) { InventoryItemSetting itemSetting = UserSettings.ItemSettings.FirstOrDefault(x => x.Id == item.ItemId); if (itemSetting == null) { continue; } int toDelete = item.Count - itemSetting.MaxInventory; if (toDelete <= 0) { continue; } try { RecycleInventoryItemResponse response = await _client.Inventory.RecycleItem(itemSetting.Id, toDelete); if (response.Result == RecycleInventoryItemResponse.Types.Result.Success) { LogCaller(new LoggerEventArgs(String.Format("Deleted {0} {1}. Remaining {2}", toDelete, itemSetting.FriendlyName, response.NewCount), LoggerTypes.Recycle)); } else { LogCaller(new LoggerEventArgs(String.Format("Failed to delete {0}. Message: {1}", itemSetting.FriendlyName, response.Result), LoggerTypes.Warning)); } await Task.Delay(500); } catch (Exception ex) { LogCaller(new LoggerEventArgs(String.Format("Failed to recycle iventory item {0}", itemSetting.FriendlyName), LoggerTypes.Warning, ex)); } } return(new MethodResult { Message = "Success", Success = true }); }