/trunk
local function curLoop(res,id) |
local unitname = nil |
for k,v in pairs(modul['db']) do |
local units = addon['getUnits']() |
local units = addon:getUnits() |
if(units and units[k]) then |
unitname = units[k]['name'] |
for a,b in pairs(v) do |
tooltip:AddLine(" ") |
for name, b in pairs(res) do |
if(addon:GetPref(modul.name .. "Tooltip")) then |
tooltip:AddLine(format("%s %s: %s",addon['getIcon'](itemID),name,b)) |
tooltip:AddLine(format("%s %s: %s",addon:getIcon(itemID),name,b)) |
end |
end |
end |
['count'] = count, |
['max'] = maximum, |
} |
addon['setIcon'](itemID, icon) |
addon:setIcon(itemID, icon) |
end |
end |
end |
['units'] = {}, |
['guilds'] = {} |
} |
local function getPlayerID() |
function addon:getPID() |
if(playerID) then |
return playerID |
end |
} |
return playerID |
end |
local function checkPID() |
if(not playerID) then |
playerID = getPlayerID() |
end |
if(playerID) then |
return true |
end |
end |
addon['getPID'] = getPlayerID |
addon['checkPID'] = checkPID |
local function getChars() |
local chars = {} |
for k,v in pairs(db['units']) do |
end |
end |
end |
local function getGuildID() |
function addon:getGID() |
local pname, pserver = UnitFullName("player") |
if(not pserver) then |
return |
} |
return guildID |
end |
addon['getGID'] = getGuildID |
local function checkGID() |
function addon:checkGID() |
if(not guildID) then |
guildID = getGuildID() |
guildID = addon:getGID() |
end |
if(guildID and guildID>0) then |
addon:GetNamespace('guildbank') |
return true |
end |
end |
addon['checkGID'] = checkGID |
function addon.getGuilds() |
function addon:getGuilds() |
return db['guilds'] |
end |
local function setName(id,itemname) |
names[tonumber(id)] = itemname |
end |
end |
local function getName(id) |
function addon:getName(id) |
local names = addon:GetNamespace('names') |
if(not names[tonumber(id)]) then |
setName(id,GetItemInfo(id)) |
end |
return db['names'][id] |
end |
addon['getName'] = getName |
addon['setIcon'] = function(id,icon) |
local function deleteNames() |
db['names'] = {} |
end |
function addon:setIcon(id,icon) |
if(id and icon) then |
local icons = addon:GetNamespace('icons') |
icons[tonumber(id)] = "|T"..icon..":0|t" |
end |
end |
local function getIcon(id) |
function addon:getIcon(id) |
id = tonumber(id) |
local icons = addon:GetNamespace('icons') |
if(not db['icons'][id]) then |
if(id and not db['icons'][id]) then |
local itemname, _, _, _, _, _, _, _, _, icon = GetItemInfo(id) |
setName(id,itemname) |
addon['setIcon'](id,icon) |
addon:setIcon(id,icon) |
end |
return db['icons'][id] or '' |
end |
addon['getIcon'] = getIcon |
addon['getUnits'] = function() |
local function deleteIcons() |
db['icons'] = {} |
end |
function addon:getUnits() |
return addon:GetNamespace('units') |
end |
local function search(id) |
end |
local function checkID(itemID) |
if(TradeSkillFrame ~= nil and TradeSkillFrame:IsVisible()) then |
if (GetMouseFocus():GetName()) == "TradeSkillSkillIcon" then |
-- itemID = GetTradeSkillItemLink(TradeSkillFrame.selectedSkill):match("item:(%d+):") or nil |
else |
local tab = GetMouseFocus() |
local par2 = tab:GetParent() |
local par = par2:GetParent() |
local recipeID = par.selectedRecipeID |
local tooltip = par2.tooltipFrame |
for i = 1, C_TradeSkillUI.GetRecipeNumReagents(recipeID) do |
if(tab.reagentIndex and i==tab.reagentIndex) then |
local recipeItemLink = C_TradeSkillUI.GetRecipeReagentItemLink(recipeID, i) |
itemID = addon['getItemId'](recipeItemLink) |
break |
end |
local tab = GetMouseFocus() |
local par2 = tab:GetParent() |
local par = par2:GetParent() |
local tooltip = par2.tooltipFrame |
for i = 1, C_TradeSkillUI.GetRecipeNumReagents(par.selectedRecipeID) do |
if(tab.reagentIndex and i==tab.reagentIndex) then |
local recipeItemLink = C_TradeSkillUI.GetRecipeReagentItemLink(par.selectedRecipeID, i) |
itemID = addon['getItemId'](recipeItemLink) |
break |
end |
end |
return tonumber(itemID),tooltip |
end |
return tonumber(itemID),tooltip |
end |
local function GameTooltip_OnTooltipSetItem(tooltip) |
local _, link = tooltip:GetItem() |
local dname, drealm = strsplit(" - ",name) |
local input,sum = output(b) |
if(sum>0) then |
tooltip:AddLine(format("%s %s: %s [ %s ] ",getIcon(id),dname,sum,addon['colorize'](table.concat(input,', '),"ffffff"))) |
tooltip:AddLine(format("%s %s: %s [ %s ] ",addon:getIcon(id),dname,sum,addon['colorize'](table.concat(input,', '),"ffffff"))) |
end |
input = nil |
end |
tooltip:Show() |
end |
GameTooltip:HookScript("OnTooltipSetItem", GameTooltip_OnTooltipSetItem) |
addon['funcSync'] = function(func,delayed) |
function addon:funcSync(func,delayed) |
local st = GetTime() |
if(delayed and sync[func]['times'][delayed]) then |
sync[func]['times'][delayed] = nil |
return |
end |
end |
addon['GET_ITEM_INFO_RECEIVED'] = function(self, event, id) |
if(not db['names'][id]) then |
function addon:GET_ITEM_INFO_RECEIVED(event, id) |
if(id and not db['names'][id]) then |
setName(id,GetItemInfo(id)) |
end |
end |
dout = specialoutput2(id,dout) |
end |
if(#dout>0) then |
addon['Print'](format("%s %s",getIcon(id),itemlink and itemlink or itemname)) |
addon['Print'](format("%s %s",addon:getIcon(id),itemlink and itemlink or itemname)) |
for k,v in pairs(dout) do |
addon['Print'](v) |
end |
},addon.dbmenu) |
addon:AddConfigEntry(name,"select","selectGID","Select guild to modify","Select guild to modify",1,getGuilds,nil,nil,nil,addon.menuguild) |
addon:AddConfigEntry(name,"execute","deleteGID","Delete","Delete selected Guild",2,deleteGuild,nil,nil,nil,addon.menuguild) |
addon:AddConfigEntry(name,"execute","deleteNames","Clear Namecache","Deletes cached itemnames. They are required for itemsearch.",2,deleteNames,nil,nil,nil,addon.dbmenu) |
addon:AddConfigEntry(name,"execute","deleteIcons","Clear Iconcache","Deletes cached icons. They are used for itemsearch/tooltip.",2,deleteIcons,nil,nil,nil,addon.dbmenu) |
end |
addon['startup'](addon, name, name, init, true, defaults) |
local BankIsOpen = false |
local function scanAllBankBags(delayed) |
if(not BankIsOpen) then return end |
if(not addon['funcSync'](scanAllBankBags,delayed)) then return end |
if(not addon:funcSync(scanAllBankBags,delayed)) then return end |
local playerID = addon.getPID() |
if(playerID) then |
modul['db'][playerID] = modul['db'][playerID] or {} |
local cName = modulname.."Count" |
local dName = cName |
for k,v in pairs(modul['db']) do |
local units = addon['getUnits']() |
local units = addon:getUnits() |
if(units[k]) then |
local playerID = addon.getPID() |
if(playerID and units[k]['faction']==units[playerID]['faction']) then |
itemlist[id] = itemlist[id] or {} |
itemlist[id]['count'] = itemlist[id]['count'] or 0 |
itemlist[id]['count'] = itemlist[id]['count'] + itemCount |
addon['getName'](id) |
addon:getName(id) |
end |
end |
slot = slot + 1 |
return empty and nil or itemlist |
end |
local function scanAllBags(delayed) |
if(not addon['funcSync'](scanAllBags,delayed)) then return end |
if(not addon:funcSync(scanAllBags,delayed)) then return end |
local playerID = addon.getPID() |
if(playerID) then |
for bag=0,4 do |
local function bagLoop(id,res) |
local dName = modulname.."Count" |
for k,v in pairs(modul['db']) do |
local units = addon['getUnits']() |
local units = addon:getUnits() |
if(units[k]) then |
local playerID = addon.getPID() |
if(playerID and units[k]['faction']==units[playerID]['faction']) then |
empty = false |
itemlist[id] = itemlist[id] or {} |
itemlist[id]['count'] = (itemlist[id]['count'] or 0) + 1 |
addon['getName'](id) |
addon:getName(id) |
end |
end |
return empty and nil or itemlist |
local function bagLoop(id,res) |
local dName = modulname.."Count" |
for k,v in pairs(modul['db']) do |
local units = addon['getUnits']() |
local units = addon:getUnits() |
if(units[k]) then |
local playerID = addon.getPID() |
if(playerID and units[k]['faction']==units[playerID]['faction']) then |
if(mode) then |
res[#res+1] = format(" %s: %s",addon['colorize'](guildname,"00ffff"),addon['colorize'](b[modulname..'Count'],"ffffff")) |
else |
res[#res+1] = format("%s %s: %s",addon['getIcon'](id),guildname,addon['colorize'](b[modulname..'Count'],"ffffff")) |
res[#res+1] = format("%s %s: %s",addon:getIcon(id),guildname,addon['colorize'](b[modulname..'Count'],"ffffff")) |
end |
end |
return res |
itemlist[id] = itemlist[id] or {} |
itemlist[id]['count'] = itemlist[id]['count'] or 0 |
itemlist[id]['count'] = itemlist[id]['count'] + itemCount |
addon['getName'](id) |
addon:getName(id) |
end |
end |
end |
empty = false |
itemlist[id] = itemlist[id] or {} |
itemlist[id]['count'] = (itemlist[id]['count'] or 0) + 1 |
addon['getName'](id) |
addon['setIcon'](id, icon) |
addon:getName(id) |
addon:setIcon(id, icon) |
end |
end |
end |
local function bagLoop(id,res) |
local dName = modulname.."Count" |
for k,v in pairs(modul['db']) do |
local units = addon['getUnits']() |
local units = addon:getUnits() |
if(units[k]) then |
local playerID = addon.getPID() |
if(playerID and units[k]['faction']==units[playerID]['faction']) then |
end |
local function OnEvent(self,event,...) |
local playerID = addon.getPID() |
print(playerID,event,...) |
if(playerID and type(events[event])=='function') then |
modul['db'] = addon:GetNamespace(modul.name) |
modul['db'][playerID] = modul['db'][playerID] or {} |