View Single Post
02/24/15, 12:22 PM   #3
Migoda
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 18
I checked TIMs code and changed the function that processes the mail queue. Here is my solution:

Lua Code:
  1. function tim.sendQueuedMail()
  2.     if tim.mailQueueindex>0 then
  3.         -- EINEN MailQueue-Eintrag senden (pro Aufruf dieser Funktion)
  4.         local mailboxwasopen=tim.MailBoxOpen
  5.         if tim.MailBoxOpen==false then
  6.             RequestOpenMailbox()
  7.         end
  8.         tim.wait4mail=true
  9.         tim.MailInQueue=tim.mailQueue.mTO[tim.mailQueueindex]
  10.         tim.MailInQueueSUB=tim.mailQueue.mSUB[tim.mailQueueindex]
  11.         SendMail(tim.mailQueue.mTO[tim.mailQueueindex], tim.mailQueue.mSUB[tim.mailQueueindex], tim.mailQueue.mTEXT[tim.mailQueueindex])
  12.         if mailboxwasopen==false then
  13.             CloseMailbox()
  14.         end
  15.         tim.mailQueueindex=tim.mailQueueindex-1
  16.     end
  17. end

to

Lua Code:
  1. function tim.sendQueuedMail()
  2.   if tim.mailQueueindex>0 then
  3.       EVENT_MANAGER:RegisterForUpdate("tim_EVENT_EMAIL", tim.throttleTimerMail, function()
  4.         -- EINEN MailQueue-Eintrag senden (pro Aufruf dieser Funktion)
  5.         local mailboxwasopen=tim.MailBoxOpen
  6.         if tim.MailBoxOpen==false then
  7.           RequestOpenMailbox()
  8.         end
  9.         tim.wait4mail=true
  10.         tim.MailInQueue=tim.mailQueue.mTO[tim.mailQueueindex]
  11.         tim.MailInQueueSUB=tim.mailQueue.mSUB[tim.mailQueueindex]
  12.         SendMail(tim.mailQueue.mTO[tim.mailQueueindex], tim.mailQueue.mSUB[tim.mailQueueindex], tim.mailQueue.mTEXT[tim.mailQueueindex])
  13.         if mailboxwasopen==false then
  14.           CloseMailbox()
  15.         end
  16.         tim.mailQueueindex=tim.mailQueueindex-1
  17.         if tim.mailQueueindex==0 then
  18.           EVENT_MANAGER:UnregisterForUpdate("tim_EVENT_EMAIL")
  19.         end
  20.       end)
  21.     end
  22. end

Is that approach with RegisterForUpdate viable or is there a better way to add a simple delay?
  Reply With Quote