From afbd3beb5ed3530e56eb3462a103bc603a05daa3 Mon Sep 17 00:00:00 2001 From: rilgamon Date: Fri, 12 Mar 2021 01:06:42 +0100 Subject: [PATCH] commit files for zz2 --- README.md | 2 +- core.lua | 635 ++++++++++-------------------------------------- icon2.tga | Bin 2942 -> 0 bytes locale_deDE.lua | 92 +++---- locale_enUS.lua | 80 +++--- locale_koKR.lua | 80 +++--- locale_ruRU.lua | 80 +++--- zz_Money.toc | 16 +- 8 files changed, 306 insertions(+), 679 deletions(-) delete mode 100644 icon2.tga diff --git a/README.md b/README.md index cad4a95..5e9710f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Money Broker You can have a banker to send money from and to with a min and max setup. -Locales: enUS,deDE,koKR,ruRU +Locales: enUS,deDE (Partial koKR,ruRU) #### Links [Releases](https://git.grml.de/rilgamon/zz_Money/releases "Releases") | [Source](https://git.grml.de/rilgamon/zz_Money "Source") | [Bugs&Comments](https://git.grml.de/rilgamon/zz_Money/issues "Bugs&Comments") | [Donate](https://liberapay.com/bundesloser "Donate") | [Contact](https://mastodon.grml.de/@robin "Contact") \ No newline at end of file diff --git a/core.lua b/core.lua index 66b0e45..224b8de 100644 --- a/core.lua +++ b/core.lua @@ -1,505 +1,130 @@ -local name, addon = ... -local parentName = addon['parentName'] or "BrokerPack" -local childName = "zz_Money" -local defaults = { - ['sortDir'] = true, -} -local options = { -} - -local ldbicon = LibStub:GetLibrary("LibDBIcon-1.0") -local L = LibStub("AceLocale-3.0"):GetLocale(childName, true) -local db - -local texturePath = name == "BrokerPack" and "Interface\\AddOns\\BrokerPack\\zz_Money\\in.tga" or "Interface\\AddOns\\zz_Money\\in.tga" -local texturePath2 = name == "BrokerPack" and "Interface\\AddOns\\BrokerPack\\zz_Money\\out.tga" or "Interface\\AddOns\\zz_Money\\out.tga" - -local goldicon,silvericon,coppericon -local sessionStart,sessionIn,sessionOut = 0,0,0 -local mailframes = {} -local lastframe -local mailRec,mailSum -local realm, faction, player -local checkDelay = GetTime() -local connectedRealms -local posFrame = CreateFrame("Frame") -posFrame:SetSize(32,1) -posFrame:SetPoint("TOPRIGHT",SendMailFrame,"TOPRIGHT",-10,-12) -posFrame:SetScript("OnEvent", function(self, event, ...) - self:UnregisterEvent('MAIL_FAILED') - self:UnregisterEvent('MAIL_SEND_SUCCESS') - if(event == "MAIL_SEND_SUCCESS") then - if(mailRec and mailSum) then - db[realm][mailRec]['incoming'] = (db[realm][mailRec]['incoming'] or 0) + mailSum - addon:Print(L['Success'](mailRec,mailSum)) - mailframes[mailRec]:Hide() - end - elseif(event == "MAIL_FAILED") then - addon:Print(L['Fail']) - end - mailRec = nil - mailSum = nil -end) -local Helper_Tooltip_tab -local function getHTT() - Helper_Tooltip_tab = Helper_Tooltip_tab or { ['iconSize'] = addon['db']['global']['iconSize'] or 12} - return Helper_Tooltip_tab -end - -local function Helper_Tooltip3(realm) - if(not addon['db']['global']['connectedRealms']) then return end - for k, v in pairs(connectedRealms) do - if(v == realm) then - return true - end - end -end -local function cdbCheck(n,realm) - db[realm] = db[realm] or {} - db[realm][n] = db[realm][n] or { currentGold = 0 } -end -local function OnText(message) - addon:OnText(childName, message) -end - -local function OnText2() - local m = 0 - if(addon['db']['global']['accountMoney']) then - local sum = 0 - if(addon['db']['sv']['profileKeys']) then - for k,v in pairs(addon['db']['sv']['profileKeys']) do - local n,_,m = strsplit(' ',k,3) - if(n) then - local cr = Helper_Tooltip3(m) - if(m == realm or cr) then - cdbCheck(n,cr and m or realm) - if( faction == db[cr and m or realm][n]['faction']) then - sum = sum + db[cr and m or realm][n]['currentGold'] - end - end - end - end - end - m = sum - else - m = GetMoney() - end - if(addon['db']['global']['shortMoney'] and m>10000)then - m = addon:round(m / 10000,0) * 10000 - end - OnText(addon:buildMoneyString(m,false,getHTT(),addon['db']['global']['abrevK'] and L['abrK'] or nil,addon['db']['global']['abrevM'] and L['abrM'] or nil)) -end - -local function GetFactionList() - local n,m,_ - local l = {} - if(addon['db']['sv']['profileKeys']) then - for k,v in pairs(addon['db']['sv']['profileKeys']) do - n,_,m = strsplit(' ',k,3) - if(n) then - if(m == realm) then - if(faction == db[realm][n]['faction']) then - l[n] = true - end - end - end - end - end - return l -end - -local function getDeliver(name) - local sendSum,offset - local lim, mon - if(db[realm][faction]['banker'] ~= player) then - lim = db[realm][faction]['maxLimit'] or 100 - mon = GetMoney() - sendSum = mon - lim*10000 - 30 - offset = 0 - else - lim = db[realm][faction]['minLimit'] or 100 - mon = db[realm][name]['currentGold'] - sendSum = lim*10000 - mon - offset = 30 - end - if(sendSum + offset > GetMoney()) then - sendSum = GetMoney() - end - return sendSum - (db[realm][faction]['banker'] ~= player and 0 or (db[realm][name]['incoming'] or 0)) -end - - -local function Click(self,button) - local sendSum = getDeliver(self['destName']) - if(addon:IsTwink(self['destName']) and self['destName']~=player) then - if(sendSum>0) then - if(SetSendMailMoney(sendSum)) then - posFrame:RegisterEvent('MAIL_SEND_SUCCESS') - posFrame:RegisterEvent('MAIL_FAILED') - mailRec = self['destName'] - mailSum = sendSum - SendMail(self['destName'],L['Subject'],nil) - end - end - end -end - -local function Mouse(self) - local tip = GameTooltip - tip:SetOwner(self, "ANCHOR_BOTTOM") - tip:ClearLines() - self['tooltip'] = tip - if(db[realm][faction]['banker'] ~= player) then - tip:AddLine(format("%s %s",L['Bankier'],db[realm][faction]['banker'])) - tip:AddLine(format("%s %s",L['Goldgrenze'],db[realm][faction]['maxLimit'])) - else - tip:AddLine(format("%s %s",L['Empfaenger'],self['destName'])) - tip:AddLine(format("%s %s",L['Goldgrenze'],db[realm][faction]['minLimit'])) - end - local sendSum = getDeliver(self['destName']) - tip:AddLine(format("%s %s",L['Sende'],addon:buildMoneyString(sendSum,false,getHTT()))) - tip:Show() -end -local function MouseOut(self) - self['tooltip']:Hide() -end -local function MainFrame(name) - if(getDeliver(name)<0) then return nil end - local mailframe = mailframes[name] and mailframes[name] or CreateFrame("Button",nil,SendMailFrame,"ActionButtonTemplate SecureActionButtonTemplate") - mailframe:SetSize(32,32) - mailframe:SetPoint("TOPRIGHT",lastframe,"BOTTOMRIGHT",0,-8) - mailframe:EnableMouse(true) - mailframe:RegisterForClicks("AnyUp") - mailframe['destName'] = name - mailframe:SetScript("OnClick", Click) - mailframe:SetScript("OnEnter", Mouse) - mailframe:SetScript("OnLeave", MouseOut) - if(not mailframe['texture']) then - mailframe['texture'] = mailframe:CreateTexture(nil,"BACKGROUND") - mailframe['texture']:SetTexture("Interface\\Icons\\INV_Misc_Bag_10_Blue") - mailframe['texture']:SetAllPoints(mailframe) - mailframe['texture']:SetPoint("CENTER",0,0) - mailframe['texture']:Show() - end - return mailframe -end -local function buildMailFrames() - local banker = db[realm][faction]['banker'] - if(mailframes) then - for k,v in pairs(mailframes) do - mailframes[k]:Hide() - mailframes[k] = nil - end - mailframes = {} - end - if(addon['db']['global']["disableBanker"]) then return end - posFrame:Show() - lastframe = posFrame - - if(player == banker) then - local fl = GetFactionList() - if(fl) then - for k,v in pairs(fl) do - if(k ~= banker) then - if(getDeliver(k) > 0 and getDeliver(k) < GetMoney() - 10000) then - mailframes[k] = MainFrame(k) - mailframes[k]:Show() - lastframe = mailframes[k] - end - end - end - end - else - if(getDeliver(banker) > 0 and getDeliver(banker) < GetMoney() - 10000) then - mailframes[banker] = MainFrame(banker) - mailframes[banker]:Show() - end - end -end - -local function getDateString() - return format("%s%s",tostring(date("%Y")),tostring(1000 + date("%j"))) -end -local function getSumToday(d) - if(faction=='Neutral') then return 0,0 end - local sumIn,sumOut = 0,0 - d = d or 0 - local day = getDateString() + d - for a,b in pairs(db[realm]['activity'][faction][tostring(day)] or {}) do - if(b < 0) then - sumOut = sumOut + b - else - sumIn = sumIn + b - end - end - return sumOut,sumIn -end - -local function getSumWeek() - local sumIn, sumOut = 0,0 - local sumWeekIn, sumWeekOut = 0,0 - for a=0,6 do - sumOut, sumIn = getSumToday(a * -1) - sumWeekIn = sumWeekIn + sumIn - sumWeekOut = sumWeekOut + sumOut - end - return sumWeekOut,sumWeekIn -end - -local ttlist = {} - -local function Helper_Tooltip(str,col,sum,bol) - return col and addon:colorize(str,col) or str,addon:buildMoneyString(sum,bol,getHTT()),1,1,1,1,1,1 -end -local function Helper_Tooltip2(tex,str,sum,bol) - return format("|T%s:0|t%s",tex,str),addon:buildMoneyString(sum,bol,getHTT()),1,1,1,1,1,1 -end -local function OnClick(self, button) - if(IsShiftKeyDown() and button == "LeftButton") then - addon['db']['global']['ldbicons'][childName]['hide'] = not addon['db']['global']['ldbicons'][childName]['hide'] - if(ldbicon) then - if(addon['db']['global']['ldbicons'][childName]['hide']) then - ldbicon:Hide(childName) - else - ldbicon:Show(childName) - end - end - else - if(InterfaceOptionsFrame:IsVisible() and not InCombatLockdown()) then - InterfaceOptionsFrame:Hide() - else - InterfaceOptionsFrame_OpenToCategory(childName) - InterfaceOptionsFrame_OpenToCategory(childName) -- Twice because of a bug in InterfaceOptionsFrame_OpenToCategory - end - end -end -local function OnTooltip(tip) - tip:AddLine(childName) - if(faction == 'Neutral') then - tip:AddLine(L['neutral']) - return - end - tip:AddDoubleLine(Helper_Tooltip(L['Sitzung'],'ffff00',db[realm][player]['currentGold'] - sessionStart,true)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath,L['Einnahmen'],sessionIn,false)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath2,L['Ausgaben'],sessionOut,false)) - tip:AddLine(' ') - local sumOut,sumIn = getSumToday() - tip:AddDoubleLine(Helper_Tooltip(L['Heute'],'ffff00',sumOut+sumIn,true)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath,L['Einnahmen'],sumIn,false)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath2,L['Ausgaben'],sumOut,false)) - tip:AddLine(' ') - sumOut,sumIn = getSumToday(-1) - tip:AddDoubleLine(Helper_Tooltip(L['Gestern'],'ffff00',sumOut+sumIn,true)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath,L['Einnahmen'],sumIn,false)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath2,L['Ausgaben'],sumOut,false)) - tip:AddLine(' ') - sumOut,sumIn = getSumWeek() - tip:AddDoubleLine(Helper_Tooltip(L['7-Tage'],'ffff00',sumIn+sumOut,true)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath,L['Einnahmen'],sumIn,false)) - tip:AddDoubleLine(Helper_Tooltip2(texturePath2,L['Ausgaben'],sumOut,false)) - tip:AddLine(' ') - local sum = 0 - wipe(ttlist) - if(addon['db']['sv']['profileKeys']) then - for k,v in pairs(addon['db']['sv']['profileKeys']) do - local n,_,m = strsplit(' ',k,3) - if(n) then - local cr = Helper_Tooltip3(m) - if(m == realm or cr) then - cdbCheck(n,cr and m or realm) - if( faction == db[cr and m or realm][n]['faction']) then - sum = sum + db[cr and m or realm][n]['currentGold'] - ttlist[k] = db[cr and m or realm][n]['currentGold'] - end - end - end - end - end - for _,v in pairs(addon:sortArray(ttlist,addon['db']['global']['sortDir'])) do - local n,_,m = strsplit(' ',v,3) - local cr = Helper_Tooltip3(m) - tip:AddDoubleLine(Helper_Tooltip(addon:classcolor(n,db[cr and m or realm][n]['class']),nil,db[cr and m or realm][n]['currentGold']+(db[cr and m or realm][n]['incoming'] or 0) or 0,false)) - end - tip:AddLine(' ') - tip:AddDoubleLine(Helper_Tooltip(L['Gesamt'],'ffff00',sum,false)) -end - -local oldMoney = 0 - -local function OnDataUpdate() - if(faction == 'Neutral') then - faction = UnitFactionGroup('player') - if(faction == 'Neutral') then - OnText2() - C_Timer.After(2, OnDataUpdate) - return - end - end - local m = GetMoney() - if(m == oldMoney) then return end - local stamp = time() - local day = getDateString() - db[realm][player] = db[realm][player] or { ['currentGold'] = m,['faction'] = faction } - db[realm][player]['incoming'] = 0 - db[realm]['activity'] = db[realm]['activity'] or { Horde = {}, Alliance={}} - db[realm][faction] = db[realm][faction] or {} - db[realm][faction]['banker'] = db[realm][faction]['banker'] or player - db[realm][faction]['minLimit'] = db[realm][faction]['minLimit'] or 300 - db[realm][faction]['maxLimit'] = db[realm][faction]['maxLimit'] or 300 - if(db[realm][player]['currentGold'] ~= m) then - db[realm]['activity'][faction][day] = db[realm]['activity'][faction][day] or {} - while(db[realm]['activity'][faction][day][stamp]) do - stamp = stamp + 1 - end - local d = m-db[realm][player]['currentGold'] - if(d < 0) then - sessionOut = sessionOut + d - else - sessionIn = sessionIn + d - end - db[realm]['activity'][faction][day][stamp] = d - db[realm][player]['currentGold'] = m - end - OnText2() - C_Timer.After(2, OnDataUpdate) -end - -local function MAIL_SHOW() - OnDataUpdate() - buildMailFrames() -end - -local function resetSession() - player = UnitName('player') - realm = GetRealmName() - sessionStart = db[realm][player]['currentGold'] or 0 - sessionIn = 0 - sessionOut = 0 - OnDataUpdate() -end - -local function cleanUp() - local ci = 7 - local day = getDateString() - if(faction == 'Neutral') then return end - for k,v in pairs(db[realm]['activity'][faction]) do - if(tonumber(k) < tonumber(day)-ci) then - db[realm]['activity'][faction][tostring(k)] = nil - end - end -end - -local function buildSelect() - local sel = {} - local n,m,_ - if(addon['db']['sv']['profileKeys']) then - for k,v in pairs(addon['db']['sv']['profileKeys']) do - n,_,m = strsplit(' ',k,3) - if(addon:IsTwink(n)) then - if(faction == db[realm][n]['faction']) then - sel[n] = n - end - end - end - end - return sel -end -local function buildSelectAll() - local sel = {} - local n,m,_ - if(addon['db']['sv']['profileKeys']) then - for k,v in pairs(addon['db']['sv']['profileKeys']) do - n,_,m = strsplit(' ',k,3) - sel[format("%s-%s",n,m)] = format("%s-%s",n,m) - end - end - return sel -end - -local function getPref2(info) - return db[realm][faction][info[#info]] -end - -local function setPref2(info,value) - db[realm][faction][info[#info]] = value - buildMailFrames() - OnDataUpdate() -end - -local function getPref(info) - return addon['db']['global'][info[#info]] -end - -local function setPref(info,value) - oldMoney = 0 - addon['db']['global'][info[#info]] = value - Helper_Tooltip_tab = nil - buildMailFrames() - OnDataUpdate() -end -local function deleteChar() - if(addon['db']['global']['deleteCharOk']) then - local charName, charRealm = strsplit('-', addon['db']['global']['deleteChar'],2) - if(db[charRealm] and db[charRealm][charName]) then - db[charRealm][charName] = nil - addon['db']['sv']['profileKeys'][format("%s - %s", charName, charRealm)] = nil - end - end - setPref({'deleteCharOk'}, nil) -end -local function init() - player = UnitName('player') - realm = GetRealmName() - faction = UnitFactionGroup('player') - connectedRealms = GetAutoCompleteRealms() - options = addon:InitConfig(childName, true, { - ['name'] = childName, - ['type'] = "data source", - ['OnClick'] = OnClick, - ['OnTooltipShow'] = OnTooltip, - ['icon'] ="Interface\\Icons\\INV_Misc_Bag_10_Blue", - }, getPref, setPref) - db = addon['db']['profile'][childName] - db[realm] = db[realm] or { - ['activity'] = { Horde = {}, Alliance={}}, - [faction] = {}, - [player] = { currentGold = 0, ['faction'] = faction }, - ['banker'] = player, - } - db[realm][faction] = db[realm][faction] or {} - db[realm][player] = db[realm][player] or { currentGold = 0, ['faction'] = faction } - db[realm][player]['faction'] = faction - db[realm][player]['incoming'] = db[realm][player]['incoming'] or 0 - local _, class, _ = UnitClass('player') - db[realm][player]['class'] = class - local menu = addon:AddConfigMenu({ - ['name'] = L['Bankier'], - ['order'] = 2, - ['menuGet'] = getPref2, - ['menuSet'] = setPref2, - ['disabled'] = function() return addon['db']['global']["disableBanker"] end, - }, options) - addon:AddConfigEntry(childName, "range","minLimit",L['Minimum Limit'],L['Desc MinL'],1,10,150000,5,false,menu) - addon:AddConfigEntry(childName, "range","maxLimit",L['Maximum Limit'],L['Desc MaxL'],2,10,150000,5,false,menu) - addon:AddConfigEntry(childName, "select","banker",L['Bankier'],nil,3,buildSelect,nil,nil,nil,menu) - addon:AddConfigEntry(childName, "header","deleteCharHeader",L['DeleteChar'],nil,9,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "select","deleteChar",L['DeleteChar'],L['DeleteCharDesc'],10,buildSelectAll,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","deleteCharOk",L['DeleteCharOk'],nil,11,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "execute","deleteCharExec",L['DeleteChar'],L['DeleteCharDesc'],12,deleteChar,nil,nil,nil,options['args'][childName]) - - addon:AddConfigEntry(childName, "range","iconSize",L['iconSize'],nil,2,5,32,1,false,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","sortDir",L['sortDir'],nil,2,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","connectedRealms",L['connectedRealms'],nil,2,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","disableBanker",L['nobanker'],nil,3,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","accountMoney",L['accountMoney'],L['accountMoneyDesc'],4,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","shortMoney",L['shortMoney'],nil,5,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","abrevK",L['abrevK'],nil,6,nil,nil,nil,nil,options['args'][childName]) - addon:AddConfigEntry(childName, "toggle","abrevM",L['abrevM'],nil,6,nil,nil,nil,nil,options['args'][childName]) - C_Timer.After(2, OnDataUpdate) - addon:RegisterFunc({"PLAYER_MONEY"},"OnEvent", OnDataUpdate) - addon:RegisterFunc({"MAIL_SHOW"},"OnEvent", MAIL_SHOW) - resetSession() - cleanUp() -end - -addon:startup(name, childName, init, true, defaults) +local addonName, addonTable = ... +local childName = "zz_Money" +local db, dbr, dbp, faction, realm, connectedRealms +addonTable['events'] = addonTable['events'] or {} +local events = addonTable['events'] +local session = { start = 0, income = 0, expense = 0 } +local L = LibStub("AceLocale-3.0"):GetLocale(childName, true) +local function prepareDB() + local player = UnitName('player') + realm = GetNormalizedRealmName() + if(not realm) then return end + faction = UnitFactionGroup('player') + local className, classFilename, classId = UnitClass('player') + addonTable['db']['profile'][childName] = addonTable['db']['profile'][childName] or {} + db = addonTable['db']['profile'][childName] + db[realm] = db[realm] or {} + db[faction] = db[faction] or {} + db[faction]['banker'] = db[faction]['banker'] or {} + db[faction]['banker']['banker'] = db[faction]['banker']['banker'] or player + dbr = db[realm] + dbr['activity'] = dbr['activity'] or { Horde = {}, Alliance={}} + dbr['Horde'] = dbr['Horde'] or {} + dbr['Alliance'] = dbr['Alliance'] or {} + dbr[player] = dbr[player] or {} + dbp = dbr[player] + dbp['faction'] = faction + dbp['currentGold'] = dbp['currentGold'] or 0 + dbp['class'] = classFilename + dbp['faction'] = faction + addonTable['storage'] = { + ['db'] = db, + ['dbr'] = dbr, + ['dbp'] = dbp, + ['dbf'] = db[faction], + ['L'] = L, + ['session'] = session, + ['faction'] = faction, + ['realm'] = realm, + } + addonTable:SetupPrefs(childName) + addonTable:SetupBroker() + addonTable:SetupBanker() +end +function addonTable:getDateString() + return format("%s%s",tostring(date("%Y")),tostring(1000 + date("%j"))) +end +local specs = { + ['name'] = childName, + ['sv'] = true, + ['cfg'] = true, + ['cfgReset'] = prepareDB, + ['ldb'] = addonTable['ldb'] , + ['defaults'] = { + ['profile'] = { + [childName] = { + ['disableBanker'] = true, + } + } + } +} +function addonTable:displayMoney(money, abr) + if(abr) then + local ab = false + if(db['abrevM'] and money >= 10000000000) then + ab = L['abrM'] + money = addonTable:round(money / 10000000000,1) * 10000 + elseif(db['abrevK'] and money >= 10000000) then + ab = L['abrK'] + money = addonTable:round(money / 10000000,1) * 10000 + end + if(ab) then + if(db['shortMoney'] and money>10000)then + money = addonTable:round(money / 10000,0) * 10000 + end + return gsub(GetCoinTextureString(money), "(%d+)", function(num) return format('%i%s',num, ab) end,1) + end + end + if(db['shortMoney'] and money>10000)then + money = addonTable:round(money / 10000,0) * 10000 + end + return GetCoinTextureString(money) +end +local pew_events = {} +function pew_events:PLAYER_MONEY(event) + local money = GetMoney() + if(money == 0) then return end + if(session['start'] == 0) then + session['start'] = money + end + dbp['currentGold'] = dbp['currentGold'] or 0 + dbp['incoming'] = 0 + if(money ~= dbp['currentGold']) then + local diff = money - dbp['currentGold'] + local out = GetCoinTextureString(abs(diff)) + local color = "ffffff" + local stamp = time() + local day = addonTable:getDateString() + local dba = dbr['activity'][faction] + dba[day] = dba[day] or {} + local dbd = dba[day] + while(dbd[stamp]) do + stamp = stamp + 1 + end + if(diff < 0) then + color = "ff0000" + session['expense'] = session['expense'] + diff + else + session['income'] = session['income'] + diff + end + dbd[stamp] = diff + if(db['showLog']) then + print(addonTable:colorize(out, color)) + end + dbp['currentGold'] = money + end + addonTable:OnText(childName, addonTable:displayMoney(money, true)) +end +function addonTable:PrefChanged(pref, value, oldvalue) + pew_events:PLAYER_MONEY() +end +function events:PLAYER_ENTERING_WORLD(event) + addonTable['db']['profile'][childName ] = addonTable['db']['profile'][childName] or {} + db = addonTable['db']['profile'][childName] + prepareDB() + addonTable:UnregisterEvent('PLAYER_ENTERING_WORLD') + addonTable:RegisterEvent(pew_events) + pew_events:PLAYER_MONEY() +end +LibStub:GetLibrary("zzAddOn"):NewAddOn(specs, ...) + diff --git a/icon2.tga b/icon2.tga deleted file mode 100644 index 5fee9b2ea60463864dd39659e950f55a6be8e79c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2942 zcmX|D2~bp57HzkLiHi0AX%!Zh-Lq{rdr9a&mG4?`CCr@%zHq=1)LMN&IzTVWE`XCTefb+=FOY2h1Om)wtIWidms4j@TG74;On~+K09_G zK0Y3qcQa+Fsj1U=cmJn;L_ii#J$&>K!KZ>D>5za^tD#nN&~RF4^;&4O9JCq@v^p(R zN)1#h4obNa3b}%Y9J1~noWF1$Nl8gaPEJna)n8)X&t&OMOG|UQpOa&V2nz#C%ka=3 ztQHPtBZpxt2fbbgt4V`l8wZP-gKba+vsMi)nY9|!&}-BfvYJp=U5OJXP9h~GWh6E> z_FsGeyqQ@n^JJztAt8Z0NP^uqi0*zZqMi)mO1TZm&n%=?4uejKh(a5#R16`azzQ9w z#NeO;xs?W7C)xF5p>&%gkl@M3$kLT)s;eW$|IX^2Ao~^{3pDc(HS#UbTf|)*Q%l+#y5Y3B32#4iW01~|f&JvklL!qBtqlnY`9#Qq#q$|l+$-UI_!-GRqO0v4-25uww5l4eTb`p+(g>?n zjeTb;FlR#*mTs*?hNuo2RUbHxE-a@!|W8q1c0%Qgz+_$4?DwpM@I)RWI#xU0xtVG1g4r0 zkZ8nTJ(c)ftib2KO88$f;`A*OzB{79mJkgFq^}{${~aHiTG2p8V-w;a>+Hjm(o(#5 z@f;2H^{9OLk`WK&@&Tw-YC>H!m=i~j9u05|3JQA2pm^`zJyX0()^eg`VGinsB&;4yyrWj}WRwEL-}zrTOckt0VS6bd1gN})Fxpym1zol=YC zJF2j1S0%DVub?$)(M2d*zgvuX>nh=Y<~b3V9M(ZI&*+iSQG5xPS3HA_*ym%H4C%M; zAR!?hag>$Ub+4(QOz7?F!|BtfKz6Zlqeqz|arb$~<%bR(;xVAp>7XI9RV#ZjAZy0! z5A6tkU_;6);8>m=jqRN<8(Ls8O3^KCLwkD%f$Tl{`nsW3aD)RTfv+8{k`}ys|DKMu z9i1IgB5^ITs|6{h5v$K=G7c|8Eu6uj1 z@)(DM@j9$Np~mOleK6?dxSf%SrWPtgX%|Y0ijk3#Mc0!W>Dd`*YiTCrH{(u52BH56 zZ(KvTV5RTj;Q>ddIdGoqynJ|gc$9*^m_L7hl&h;Ne=rO&dcB@P;}ChP1=HP|F?Wju zQ&u(OXiO8anGrW{rr_4C+ep8cg^2J_6qS_HWvRi{8`p3zJBz>4qoZO_S64^rveA|D z2!4J)!pYGQ)22_4C6EXh35*ip?Afy&rcImHuw=;+95`?Q$>f5Y`&v+Q#)jMfQ_bIS<4JU5 z^5n_bLA?p}H!x7)g)puTQB(Udfur7Il)2T^Z>UJCiabz5s3vn03>0d0RW%MCJcy}N zr!xJSb~^-oM7;h9W5$e`MB>(Y^XBoeuB@!&IWUYBmw>f1mze%fm{Ofi4~Dp_SFd8> z!i7v-FYTYfYvS7srfwyPhgYmv0b)!@BobmYIWDoxj~N&kAeN^mwh$_a@5fQ&h)tU| z@!`{EPhJh*8I2=7@e?Ob1Oqz}AcRDP5C#SYLJ$xTFuDq5t8vGVA7?xXf(BFckl#P5 zgmg|JQ3uPRv$HdVEYQnrHEzLz1(-E!7Tckw&%WR{@GYf)9^J2!9Bk#s%lHPCJ?@R6 mDUz)Y^RinEp8P}`_}{iIUhBL!Y~A4bgR9T?8$8x668slwzWWFO diff --git a/locale_deDE.lua b/locale_deDE.lua index 5a37beb..0d7fa10 100644 --- a/locale_deDE.lua +++ b/locale_deDE.lua @@ -1,46 +1,48 @@ -local addonname, addon = ... -local name = "zz_Money" -local L = LibStub("AceLocale-3.0"):NewLocale(name, "deDE", false) -if L then - L[name] = name - L[name..' Settings'] = name..' Einstellungen' - L['Sitzung']='Sitzung' - L['Einnahmen']='Einnahmen' - L['Ausgaben']='Ausgaben' - L['Heute']='Heute' - L['Gestern']='Gestern' - L['7-Tage']='7-Tage' - L['Gesamt']='Gesamt' - L['Bankier']='Bankier' - L['Goldgrenze']='Goldgrenze' - L['Sende'] = 'Sende' - L['Subject'] = 'Ab in den Sparstrumpf' - L['Minimum Limit']='Minimum Limit' - L['Desc MinL']='Spieler mit Gold unter diesem Limit werden dem Bankier angzeigt' - L['Maximum Limit']='Maximum Limit' - L['Desc MaxL']='Spieler mit Gold \195\188ber diesem Limit bekommen einen Knopf im Postfenster um es an den Bankier zu schicken' - L['Empfaenger']='Empf\195\164nger' - L['Fail']='Sendung fehlgeschlagen' - L['Success']=function(name,sum) return format("Sent %s to %s",addon:buildMoneyString(sum,nil,{ ['iconSize'] = addon['db']['global']['iconSize'] or 12}),name) end - L['iconSize']='M\195\188nzgr\195\182\195\159e' - L['sortDir'] = 'Tooltip-Sortierung Auf-/Absteigend' - L['nobanker'] = 'Bankier deaktivieren' - L['neutral'] = 'Deaktiviert solange neutral' - L['accountMoneyDesc'] = 'Zeige accountweiten Goldbestand' - L['accountMoney'] = 'Globales Gold' - L['shortMoney'] = 'Gold runden' - L['abrevK'] = "Geldanzeige k\195\188rzen k" - L['abrevM'] = "Geldanzeige k\195\188rzen m" - L['abrK'] = "k" - L['abrM'] = "m" - L['connectedRealms'] = "Zeige verbundene Realms" - L['DeleteChar'] = "L\195\182sche Char" - L['DeleteCharDesc'] = "Entferne alle Daten zu diesem Character" - L['DeleteCharOk'] = "Ja, ich bin sicher!" -end - --- \195\182 \195\159 --- \195\188 \195\164 --- \195\132 --- \195\182 +local addonname, addon = ... +local name = "zz_Money" +local L = LibStub("AceLocale-3.0"):NewLocale(name, "deDE", false) +if L then + L[name] = name + L[name..' Settings'] = name..' Einstellungen' + L['Sitzung']='Sitzung' + L['Einnahmen']='Einnahmen' + L['Ausgaben']='Ausgaben' + L['Heute']='Heute' + L['Gestern']='Gestern' + L['7-Tage']='7-Tage' + L['Gesamt']='Gesamt' + L['Bankier']='Bankier' + L['Goldgrenze']='Goldgrenze' + L['Sende'] = 'Sende' + L['Subject'] = 'Ab in den Sparstrumpf' + L['Minimum Limit']='Minimum Limit' + L['Desc MinL']='Spieler mit Gold unter diesem Limit werden dem Bankier angzeigt' + L['Maximum Limit']='Maximum Limit' + L['Desc MaxL']='Spieler mit Gold \195\188ber diesem Limit bekommen einen Knopf im Postfenster um es an den Bankier zu schicken' + L['Empfaenger']='Empf\195\164nger' + L['Fail']='Sendung fehlgeschlagen' + L['Success']=function(name,sum) return format("Betrag von %s an %s gesendet", GetCoinTextureString(sum), name) end + L['iconSize']='M\195\188nzgr\195\182\195\159e' + L['sortDir'] = 'Tooltip-Sortierung Auf-/Absteigend' + L['nobanker'] = 'Bankier deaktivieren' + L['neutral'] = 'Deaktiviert solange neutral' + L['accountMoneyDesc'] = 'Zeige accountweiten Goldbestand' + L['accountMoney'] = 'Globales Gold' + L['shortMoney'] = 'Gold runden' + L['shortMoneyTip'] = 'Gold im Tooltip k\195\188rzen' + L['abrevK'] = "Geldanzeige k\195\188rzen k" + L['abrevM'] = "Geldanzeige k\195\188rzen m" + L['abrK'] = "k" + L['abrM'] = "m" + L['connectedRealms'] = "Zeige verbundene Realms" + L['DeleteChar'] = "L\195\182sche Char" + L['DeleteCharDesc'] = "Entferne alle Daten zu diesem Character" + L['DeleteCharOk'] = "Ja, ich bin sicher!" + L['showLog'] = "Logge Ver\195\164nderungen im Chat" +end + +-- \195\182 \195\159 +-- \195\188 \195\164 +-- \195\132 +-- \195\182 -- \195\156 \ No newline at end of file diff --git a/locale_enUS.lua b/locale_enUS.lua index 1cd7c55..7d09f4c 100644 --- a/locale_enUS.lua +++ b/locale_enUS.lua @@ -1,40 +1,42 @@ -local addonname, addon = ... -local name = "zz_Money" -local L = LibStub("AceLocale-3.0"):NewLocale(name, "enUS", true) -if L then - L[name] = name - L[name..' Settings'] = name..' Settings' - L['Sitzung']='Session' - L['Einnahmen']='Income' - L['Ausgaben']='Expenses' - L['Heute']='Today' - L['Gestern']='Yesterday' - L['7-Tage']='7-Days' - L['Gesamt']='Total' - L['Bankier']='Banker' - L['Goldgrenze']='Goldlimit' - L['Sende'] = 'Send' - L['Subject'] = 'Sock away' - L['Minimum Limit']='Minimum Limit' - L['Desc MinL']='Chars with less than this limit will be show to the banker' - L['Maximum Limit']='Maximum Limit' - L['Desc MaxL']='Chars with more than this limit will see a button in the send mail window to send it to the banker' - L['Empfaenger']='Beneficiary' - L['Fail']='Mail failed' - L['Success']=function(name,sum) return format("Sent %s to %s",addon:buildMoneyString(sum,nil,{ ['iconSize'] = addon['db']['global']['iconSize'] or 12}),name) end - L['iconSize']='Coinsize' - L['sortDir'] = 'Sort Tooltip Up/Down' - L['nobanker'] = 'Disable banker functionality' - L['neutral'] = 'Disabled while neutral' - L['accountMoney'] = 'Global Money' - L['accountMoneyDesc'] = 'Show accountwide Money' - L['shortMoney'] = 'Display gold only' - L['abrevK'] = "Shorten money display k" - L['abrevM'] = "Shorten money display m" - L['abrK'] = "k" - L['abrM'] = "m" - L['connectedRealms'] = "List connected Realms" - L['DeleteChar'] = "Delete Char" - L['DeleteCharDesc'] = "Removes all data for this character" - L['DeleteCharOk'] = "Yes, I'm sure!" +local addonname, addon = ... +local name = "zz_Money" +local L = LibStub("AceLocale-3.0"):NewLocale(name, "enUS", true) +if L then + L[name] = name + L[name..' Settings'] = name..' Settings' + L['Sitzung']='Session' + L['Einnahmen']='Income' + L['Ausgaben']='Expenses' + L['Heute']='Today' + L['Gestern']='Yesterday' + L['7-Tage']='7-Days' + L['Gesamt']='Total' + L['Bankier']='Banker' + L['Goldgrenze']='Goldlimit' + L['Sende'] = 'Send' + L['Subject'] = 'Sock away' + L['Minimum Limit']='Minimum Limit' + L['Desc MinL']='Chars with less than this limit will be shown to the banker' + L['Maximum Limit']='Maximum Limit' + L['Desc MaxL']='Chars with more than this limit will see a button in the send mail window to send it to the banker' + L['Empfaenger']='Beneficiary' + L['Fail']='Mail failed' + L['Success']=function(name,sum) return format("Sent %s to %s", GetCoinTextureString(sum), name) end + L['iconSize']='Coinsize' + L['sortDir'] = 'Sort Tooltip Up/Down' + L['nobanker'] = 'Disable banker functionality' + L['neutral'] = 'Disabled while neutral' + L['accountMoney'] = 'Global Money' + L['accountMoneyDesc'] = 'Show accountwide Money' + L['shortMoney'] = 'Display gold only' + L['shortMoneyTip'] = 'Shorten money in tooltip' + L['abrevK'] = "Shorten money display k" + L['abrevM'] = "Shorten money display m" + L['abrK'] = "k" + L['abrM'] = "m" + L['connectedRealms'] = "List connected Realms" + L['DeleteChar'] = "Delete Char" + L['DeleteCharDesc'] = "Removes all data for this character" + L['DeleteCharOk'] = "Yes, I'm sure!" + L['showLog'] = "Log changes in chat" end \ No newline at end of file diff --git a/locale_koKR.lua b/locale_koKR.lua index bcdcee2..60ff2a6 100644 --- a/locale_koKR.lua +++ b/locale_koKR.lua @@ -1,40 +1,42 @@ -local addonname, addon = ... -local name = "zz_Money" -local L = LibStub("AceLocale-3.0"):NewLocale(name, "koKR", false) -if L then - L[name] = name - L[name..' Settings'] = name..' 설정' - L['Sitzung']='세션' - L['Einnahmen']='수입' - L['Ausgaben']='지출' - L['Heute']='오늘' - L['Gestern']='어제' - L['7-Tage']='7일' - L['Gesamt']='전체' - L['Bankier']='은행' - L['Goldgrenze']='골드 제한' - L['Sende'] = '보내기' - L['Subject'] = '모우기' - L['Minimum Limit']='최소 제한' - L['Desc MinL']='Chars with less than this limit will be show to the banker' - L['Maximum Limit']='최대 제한' - L['Desc MaxL']='Chars with more than this limit will see a button in the send mail window to send it to the banker' - L['Empfaenger']='수령인' - L['Fail']='우편물 발송 실패' - L['Success']=function(name,sum) return format("Sent %s to %s",addon:buildMoneyString(sum,nil,{ ['iconSize'] = addon['db']['global']['iconSize'] or 12}),name) end - L['iconSize']='골드 아이콘 크기' - L['sortDir'] = '위/아래로 툴팁 정렬' - L['nobanker'] = '은행 기능 비활성화' - L['neutral'] = '중립적인 동안 비활성화' - L['accountMoney'] = 'Global Money' - L['accountMoneyDesc'] = 'Show accountwide Money' - L['shortMoney'] = '골드만 표시' - L['abrevK'] = "Shorten money display k" - L['abrevM'] = "Shorten money display m" - L['abrK'] = "k" - L['abrM'] = "m" - L['connectedRealms'] = "List connected Realms" - L['DeleteChar'] = "Delete Char" - L['DeleteCharDesc'] = "Removes all data for this character" - L['DeleteCharOk'] = "Yes, I'm sure!" +local addonname, addon = ... +local name = "zz_Money" +local L = LibStub("AceLocale-3.0"):NewLocale(name, "koKR", false) +if L then + L[name] = name + L[name..' Settings'] = name..' 설정' + L['Sitzung']='세션' + L['Einnahmen']='수입' + L['Ausgaben']='지출' + L['Heute']='오늘' + L['Gestern']='어제' + L['7-Tage']='7일' + L['Gesamt']='전체' + L['Bankier']='은행' + L['Goldgrenze']='골드 제한' + L['Sende'] = '보내기' + L['Subject'] = '모우기' + L['Minimum Limit']='최소 제한' + L['Desc MinL']='Chars with less than this limit will be shown to the banker' + L['Maximum Limit']='최대 제한' + L['Desc MaxL']='Chars with more than this limit will see a button in the send mail window to send it to the banker' + L['Empfaenger']='수령인' + L['Fail']='우편물 발송 실패' + L['Success']=function(name,sum) return format("Sent %s to %s", GetCoinTextureString(sum), name) end + L['iconSize']='골드 아이콘 크기' + L['sortDir'] = '위/아래로 툴팁 정렬' + L['nobanker'] = '은행 기능 비활성화' + L['neutral'] = '중립적인 동안 비활성화' + L['accountMoney'] = 'Global Money' + L['accountMoneyDesc'] = 'Show accountwide Money' + L['shortMoney'] = '골드만 표시' + L['shortMoneyTip'] = 'Shorten money in tooltip' + L['abrevK'] = "Shorten money display k" + L['abrevM'] = "Shorten money display m" + L['abrK'] = "k" + L['abrM'] = "m" + L['connectedRealms'] = "List connected Realms" + L['DeleteChar'] = "Delete Char" + L['DeleteCharDesc'] = "Removes all data for this character" + L['DeleteCharOk'] = "Yes, I'm sure!" + L['showLog'] = "Log changes in chat" end \ No newline at end of file diff --git a/locale_ruRU.lua b/locale_ruRU.lua index 3bb7fcc..4557fe6 100644 --- a/locale_ruRU.lua +++ b/locale_ruRU.lua @@ -1,40 +1,42 @@ -local addonname, addon = ... -local name = "zz_Money" -local L = LibStub("AceLocale-3.0"):NewLocale(name, "ruRU", false) -if L then - L[name] = name - L[name..' Settings'] = name..' Настройки' - L['Sitzung']='Сессия' - L['Einnahmen']='Доход' - L['Ausgaben']='Расход' - L['Heute']='Сегодня' - L['Gestern']='Вчера' - L['7-Tage']='7-Дней' - L['Gesamt']='Всего' - L['Bankier']='Банкир' - L['Goldgrenze']='Лимит золота' - L['Sende'] = 'Отправить' - L['Subject'] = 'Лишнее золото' - L['Minimum Limit']='Минимальный лимит' - L['Desc MinL']='Персонажи с золотом меньше указанного значения будут показаны банкиру' - L['Maximum Limit']='Максимальный лимит' - L['Desc MaxL']='Персонажи с золотом больше указанного лимита будут видеть кнопку для отправки избытка золота банкиру' - L['Empfaenger']='Бенефициар' - L['Fail']='Не удалось отправить письмо' - L['Success']=function(name,sum) return format("Sent %s to %s",addon:buildMoneyString(sum,nil,{ ['iconSize'] = addon['db']['global']['iconSize'] or 12}),name) end - L['iconSize']='Размер монеты' - L['sortDir'] = 'Сортировка Верх/Низ' - L['nobanker'] = 'Отключить функцию банкира' - L['neutral'] = 'Отключено пока не выбрана фракция' - L['accountMoney'] = 'Золота на аккаунте' - L['accountMoneyDesc'] = 'Показать все золото на аккаунте' - L['shortMoney'] = 'Показывать только золото' - L['abrevK'] = "Сокращать золото до тысяч" - L['abrevM'] = "Сокращать золото до миллионов" - L['abrK'] = "k" - L['abrM'] = "m" - L['connectedRealms'] = "List connected Realms" - L['DeleteChar'] = "Delete Char" - L['DeleteCharDesc'] = "Removes all data for this character" - L['DeleteCharOk'] = "Yes, I'm sure!" +local addonname, addon = ... +local name = "zz_Money" +local L = LibStub("AceLocale-3.0"):NewLocale(name, "ruRU", false) +if L then + L[name] = name + L[name..' Settings'] = name..' Настройки' + L['Sitzung']='Сессия' + L['Einnahmen']='Доход' + L['Ausgaben']='Расход' + L['Heute']='Сегодня' + L['Gestern']='Вчера' + L['7-Tage']='7-Дней' + L['Gesamt']='Всего' + L['Bankier']='Банкир' + L['Goldgrenze']='Лимит золота' + L['Sende'] = 'Отправить' + L['Subject'] = 'Лишнее золото' + L['Minimum Limit']='Минимальный лимит' + L['Desc MinL']='Персонажи с золотом меньше указанного значения будут показаны банкиру' + L['Maximum Limit']='Максимальный лимит' + L['Desc MaxL']='Персонажи с золотом больше указанного лимита будут видеть кнопку для отправки избытка золота банкиру' + L['Empfaenger']='Бенефициар' + L['Fail']='Не удалось отправить письмо' + L['Success']=function(name,sum) return format("Sent %s to %s", GetCoinTextureString(sum), name) end + L['iconSize']='Размер монеты' + L['sortDir'] = 'Сортировка Верх/Низ' + L['nobanker'] = 'Отключить функцию банкира' + L['neutral'] = 'Отключено пока не выбрана фракция' + L['accountMoney'] = 'Золота на аккаунте' + L['accountMoneyDesc'] = 'Показать все золото на аккаунте' + L['shortMoney'] = 'Показывать только золото' + L['shortMoneyTip'] = 'Shorten money in tooltip' + L['abrevK'] = "Сокращать золото до тысяч" + L['abrevM'] = "Сокращать золото до миллионов" + L['abrK'] = "k" + L['abrM'] = "m" + L['connectedRealms'] = "List connected Realms" + L['DeleteChar'] = "Delete Char" + L['DeleteCharDesc'] = "Removes all data for this character" + L['DeleteCharOk'] = "Yes, I'm sure!" + L['showLog'] = "Log changes in chat" end \ No newline at end of file diff --git a/zz_Money.toc b/zz_Money.toc index e6e837b..d522d2d 100644 --- a/zz_Money.toc +++ b/zz_Money.toc @@ -1,16 +1,10 @@ -## Interface: 90002 -## X-Repository: https://svn.grml.de/zz_Money -## X-WoWI-ID: 15621 -## X-Curse-Project-ID: 39054 -## X-TOC-Classic: 11302 +## Interface: 90005 ## Title: Money ## Notes: Broker Money display ## Notes-deDE: Broker zur Goldanzeige ## Author: Rilgamon +## X-Repository: https://git.grml.de/rilgamon/zz_Money.git +## OptionalDeps: zzLib, Ace3, BrokerPack ## SavedVariables: zz_MoneyDB -## LoadManagers: AddonLoader -## X-LoadOn-Always: delayed -## OptionalDeps: Ace3,BrokerPack,zzLibCommon -Common\common.xml -pack.xml - +Libs\embeds.xml +pack.xml \ No newline at end of file