Mercurial > wow > itemauditor
view Modules/Utils.lua @ 16:56de19d9bd8d
Cleaned up the messages. You can turn the notifications of price changes off and those messages will only show gold or silver if they are more than 0. I have also removed the dependency on AceConsole because it doesn't allow changing the color of the addon name when I print messages.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Sat, 03 Jul 2010 10:05:53 -0700 |
parents | 44e70a3fdb19 |
children | ff9a698caebc |
line wrap: on
line source
local addonName, addonTable = ...; local addon = _G[addonName] addonTable.utils = addon IAUtils = addon function addon:FormatMoney(copper) color = "|cFFFFFFFF" local prefix = "" if copper < 0 then prefix = "-" copper = abs(copper) end local gold = floor( copper / 10000 ); copper = mod(copper, 10000) local silver = floor( copper / 100 ); copper = mod(copper, 100) copper = color..format(COPPER_AMOUNT_TEXTURE, copper, 13, 13) if silver > 0 or gold > 0 then silver = color..format(SILVER_AMOUNT_TEXTURE, silver, 13, 13) .. ' ' else silver = "" end if gold > 0 then gold = color..format(GOLD_AMOUNT_TEXTURE, gold, 13, 13) .. ' ' else gold = "" end return format("%s%s%s%s", prefix, gold, silver, copper) end -- This is only here to make sure this doesn't blow up if ReplaceItemCache is never called local item_db = {} function addon:ReplaceItemCache(new_cache) item_db = new_cache end -- This will be reset every session local tmp_item_cache = {} function addon:GetItemID(itemName) if item_db[itemName] ~= nil then return item_db[itemName] end if tmp_item_cache[itemName] == nil then local _, itemLink = GetItemInfo (itemName); if itemLink ~= nil then local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") tmp_item_cache[itemName] = tonumber(itemID) end end if tmp_item_cache[itemName] == nil then for link, data in pairs(ItemAuditor.db.factionrealm.items) do local name, itemLink = GetItemInfo (link); if name == itemName then local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") tmp_item_cache[itemName] = tonumber(itemID) end end end return tmp_item_cache[itemName] end function addon:GetLinkFromName(itemName) local itemID = self:GetItemID(itemName) local itemLink if itemID ~= nil then _, itemLink = GetItemInfo(itemID) end return itemLink end function addon:SaveItemID(itemName, id) item_db[itemName] = tonumber(id) end local SubjectPatterns = { AHCancelled = gsub(AUCTION_REMOVED_MAIL_SUBJECT, "%%s", ".*"), AHExpired = gsub(AUCTION_EXPIRED_MAIL_SUBJECT, "%%s", ".*"), AHOutbid = gsub(AUCTION_OUTBID_MAIL_SUBJECT, "%%s", ".*"), AHSuccess = gsub(AUCTION_SOLD_MAIL_SUBJECT, "%%s", ".*"), AHWon = gsub(AUCTION_WON_MAIL_SUBJECT, "%%s", ".*"), CODPayment = gsub(COD_PAYMENT, "%%s", "(.*)"), } function addon:GetMailType(msgSubject) if msgSubject then for k, v in pairs(SubjectPatterns) do if msgSubject:find(v) then return k end end end return "NonAHMail" end function addon:tcount(tab) local n = #tab if (n == 0) then for _ in pairs(tab) do n = n + 1 end end return n end function addon:GetDebug(info) return self.db.char.debug end function addon:SetDebug(info, input) ItemAuditor.db.char.debug = input local value = "off" if input then value = "on" end self:Print("Debugging is now: " .. value) end