Advertisement
SmooKy

Untitled

Nov 21st, 2019
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. local addonName = 'Goldsheet_Mail'
  2.  
  3. local f = CreateFrame("Frame")
  4. f:SetScript("OnEvent", function(f, event, ...) f[event](f, event, ...) end)
  5. f:RegisterEvent("ADDON_LOADED")
  6. f:RegisterEvent("PLAYER_LOGIN")
  7. f:RegisterEvent("GUILD_ROSTER_UPDATE")
  8.  
  9. local db
  10. local charProfile
  11. local guildProfile
  12. local mailProfile
  13. do
  14. local isLoaded
  15. local isLogged
  16.  
  17. local function Init()
  18. if not isLoaded or not isLogged then
  19. return
  20. end
  21. local realmName = GetRealmName()
  22. local charName = UnitName("player")
  23. local guildName = GetGuildInfo("player")
  24. if not MYNEWMAILGVARS then
  25. MYNEWMAILGVARS = {}
  26. end
  27. db = MYNEWMAILGVARS
  28. if not db[realmName] then
  29. db[realmName] = {}
  30. end
  31. if not db[realmName][charName] then
  32. db[realmName][charName] = { money = GetMoney() }
  33. end
  34. charProfile = db[realmName][charName]
  35. for i = 1, GetInboxNumItems() do
  36. local _, _, sender, subject, money, _, daysLeft, hasItem, _, _, _, canReply = GetInboxHeaderInfo(i)
  37. if not mailProfile then
  38. db[realmName][charName][sender] = { mail = -1 }
  39. end
  40. mailProfile = db[realmName][charName][sender]
  41. end
  42. if guildName then
  43. if not db[realmName][guildName] then
  44. db[realmName][guildName] = { money = -1 }
  45. end
  46. guildProfile = db[realmName][guildName]
  47. end
  48. f:RegisterEvent("PLAYER_MONEY")
  49. f:RegisterEvent("GUILDBANKFRAME_OPENED")
  50. f:RegisterEvent("GUILDBANK_UPDATE_MONEY")
  51. f:RegisterEvent("GUILDBANK_UPDATE_WITHDRAWMONEY")
  52. f:RegisterEvent("MAIL_SHOW")
  53. f:RegisterEvent("MAIL_INBOX_UPDATE")
  54. f:RegisterEvent("MAIL_SUCCESS")
  55. end
  56.  
  57. function f:ADDON_LOADED(event, name)
  58. if name ~= addonName then
  59. return
  60. end
  61. f:UnregisterEvent(event)
  62. isLoaded = true
  63. Init()
  64. end
  65.  
  66. function f:PLAYER_LOGIN(event)
  67. f:UnregisterEvent(event)
  68. isLogged = true
  69. Init()
  70. end
  71.  
  72. function f:GUILD_ROSTER_UPDATE()
  73. Init()
  74. end
  75. end
  76.  
  77. do
  78. function f:PLAYER_MONEY()
  79. charProfile.money = GetMoney()
  80. end
  81.  
  82. local function UpdateGuildMoney()
  83. if not guildProfile then
  84. return
  85. end
  86. guildProfile.money = GetGuildBankMoney()
  87. end
  88.  
  89. function f:GUILDBANKFRAME_OPENED()
  90. UpdateGuildMoney()
  91. end
  92.  
  93. function f:GUILDBANK_UPDATE_MONEY()
  94. UpdateGuildMoney()
  95. end
  96.  
  97. function f:GUILDBANK_UPDATE_WITHDRAWMONEY()
  98. UpdateGuildMoney()
  99. end
  100.  
  101. local function UpdateMailStuff()
  102. for i = 1, GetInboxNumItems() do
  103. local _, _, sender, subject, money, _, daysLeft, hasItem, _, _, _, canReply = GetInboxHeaderInfo(i)
  104. mailProfile.mail = subject .. " - " .. money
  105. end
  106. end
  107.  
  108. function f:MAIL_SHOW()
  109. UpdateMailStuff()
  110. end
  111.  
  112. function f:MAIL_INBOX_UPDATE()
  113. UpdateMailStuff()
  114. end
  115.  
  116. function f:MAIL_SUCCESS()
  117. UpdateMailStuff()
  118. end
  119. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement