public static async Task UseLuckyEgg(Client client, Inventory inventory, StateMachine machine) { var inventoryContent = await inventory.GetItems(); var luckyEggs = inventoryContent.Where(p => p.ItemId == ItemId.ItemLuckyEgg); var luckyEgg = luckyEggs.FirstOrDefault(); if (luckyEgg == null || luckyEgg.Count <= 0 || _lastLuckyEggTime.AddMinutes(30).Ticks > DateTime.Now.Ticks) return; _lastLuckyEggTime = DateTime.Now; await client.Inventory.UseItemXpBoost(); var refreshCachedInventory = await inventory.RefreshCachedInventory(); machine.Fire(new UseLuckyEggEvent {Count = luckyEgg.Count}); await Task.Delay(2000); }