Example #1
0
 public void Reset()
 {
     AmeisenLogger.Instance.Log("JobEngine", $"Resetting JobEngine", LogLevel.Verbose);
     JobEngineStatus = JobEngineStatus.None;
     CurrentNodeAt   = 0;
     MailboxMode     = false;
     MailboxItemQueue.Clear();
 }
Example #2
0
        private void SendItemMails(List <string> items, string receiver, WowGameobject mailbox)
        {
            if (!MailboxMode)
            {
                foreach (string item in items)
                {
                    MailboxItemQueue.Enqueue(item);
                }

                MailboxMode = true;
                AmeisenLogger.Instance.Log("JobEngine", $"Entering MailboxMode", LogLevel.Verbose);
            }

            // open mailbox
            WowInterface.HookManager.WowObjectOnRightClick(mailbox);
            Task.Delay(1000).GetAwaiter().GetResult();
            AmeisenLogger.Instance.Log("JobEngine", $"Rightclicked Mailbox", LogLevel.Verbose);

            JobEngineStatus = JobEngineStatus.Sending;

            // send stuff to character
            WowInterface.HookManager.SendItemMailToCharacter(MailboxItemQueue.Peek(), receiver);
            Task.Delay(1000).GetAwaiter().GetResult();
            AmeisenLogger.Instance.Log("JobEngine", $"Sent Mail with \"{MailboxItemQueue.Peek()}\" to \"{receiver}\"", LogLevel.Verbose);

            // remove item from mail list if we have no units left in our bags
            WowInterface.CharacterManager.Inventory.Update();
            if (!WowInterface.CharacterManager.Inventory.Items.Any(e => e.Name.ToUpper() == MailboxItemQueue.Peek().ToUpper()))
            {
                AmeisenLogger.Instance.Log("JobEngine", $"Finished sending \"{MailboxItemQueue.Peek()}\"", LogLevel.Verbose);
                MailboxItemQueue.Dequeue();
            }

            // continue if ther are no item left to be checked
            MailboxMode = MailboxItemQueue.Count > 0;

            if (!MailboxMode)
            {
                AmeisenLogger.Instance.Log("JobEngine", $"Leaving MailboxMode", LogLevel.Verbose);
            }
        }