Advertisement
SmooKy

Untitled

Nov 22nd, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 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. if guildName then
  36. if not db[realmName][guildName] then
  37. db[realmName][guildName] = { money = -1 }
  38. end
  39. guildProfile = db[realmName][guildName]
  40. end
  41. f:RegisterEvent("PLAYER_MONEY")
  42. f:RegisterEvent("GUILDBANKFRAME_OPENED")
  43. f:RegisterEvent("GUILDBANK_UPDATE_MONEY")
  44. f:RegisterEvent("GUILDBANK_UPDATE_WITHDRAWMONEY")
  45. f:RegisterEvent("MAIL_SHOW")
  46. f:RegisterEvent("MAIL_INBOX_UPDATE")
  47. f:RegisterEvent("MAIL_SUCCESS")
  48. end
  49.  
  50. function f:ADDON_LOADED(event, name)
  51. if name ~= addonName then
  52. return
  53. end
  54. f:UnregisterEvent(event)
  55. isLoaded = true
  56. Init()
  57. end
  58.  
  59. function f:PLAYER_LOGIN(event)
  60. f:UnregisterEvent(event)
  61. isLogged = true
  62. Init()
  63. end
  64.  
  65. function f:GUILD_ROSTER_UPDATE()
  66. Init()
  67. end
  68. end
  69.  
  70. do
  71. function f:PLAYER_MONEY()
  72. charProfile.money = GetMoney()
  73. end
  74.  
  75. local function UpdateGuildMoney()
  76. if not guildProfile then
  77. return
  78. end
  79. guildProfile.money = GetGuildBankMoney()
  80. end
  81.  
  82. function f:GUILDBANKFRAME_OPENED()
  83. UpdateGuildMoney()
  84. end
  85.  
  86. function f:GUILDBANK_UPDATE_MONEY()
  87. UpdateGuildMoney()
  88. end
  89.  
  90. function f:GUILDBANK_UPDATE_WITHDRAWMONEY()
  91. UpdateGuildMoney()
  92. end
  93.  
  94. local function UpdateMailStuff()
  95. for i = 1, GetInboxNumItems() do
  96. local _, _, sender, subject, money, _, daysLeft, hasItem, _, _, _, canReply = GetInboxHeaderInfo(i)
  97. if not mailProfile then
  98. db[realmName][charName][sender] = { mail = -1 }
  99. end
  100. mailProfile = db[realmName][charName][sender]
  101. mailProfile.mail = subject .. "-" .. money
  102. end
  103. end
  104.  
  105. function f:MAIL_SHOW()
  106. UpdateMailStuff()
  107. end
  108.  
  109. function f:MAIL_INBOX_UPDATE()
  110. UpdateMailStuff()
  111. end
  112.  
  113. function f:MAIL_SUCCESS()
  114. UpdateMailStuff()
  115. end
  116. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement