Compare commits

...

8 Commits

Author SHA1 Message Date
Robin Hüskes 050f77bc1d Fix wrong variable used 2023-01-22 16:35:39 +01:00
Robin Hüskes 70ef3cfde1 Fix Char Modul not using events to update 2023-01-22 16:19:26 +01:00
Robin Hüskes 5a826dada9 Update Toc 2023-01-22 12:53:26 +01:00
Robin Hüskes d808ff9cd3 Restore Classic compatibility 2023-01-22 12:53:06 +01:00
Robin Hüskes b711bb8fc4 Restore Classic compatibility 2023-01-22 12:50:18 +01:00
Robin Hüskes ef759c0ed1 Restore Wrath compatibility 2023-01-22 07:54:12 +01:00
Robin Hüskes 42fdfd738f Restore Wrath compatibility 2023-01-22 07:43:32 +01:00
Robin Hüskes f42cfe02e2 Update Libs 2022-12-15 20:41:20 +01:00
13 changed files with 212 additions and 154 deletions

View File

@ -1,5 +1,5 @@
--[[ $Id: CallbackHandler-1.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ ]]
local MAJOR, MINOR = "CallbackHandler-1.0", 7
--[[ $Id: CallbackHandler-1.0.lua 26 2022-12-12 15:09:39Z nevcairiel $ ]]
local MAJOR, MINOR = "CallbackHandler-1.0", 8
local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
if not CallbackHandler then return end -- No upgrade needed
@ -7,21 +7,16 @@ if not CallbackHandler then return end -- No upgrade needed
local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end}
-- Lua APIs
local error = error
local securecallfunction, error = securecallfunction, error
local setmetatable, rawget = setmetatable, rawget
local next, select, pairs, type, tostring = next, select, pairs, type, tostring
local xpcall = xpcall
local function errorhandler(err)
return geterrorhandler()(err)
end
local function Dispatch(handlers, ...)
local index, method = next(handlers)
if not method then return end
repeat
xpcall(method, errorhandler, ...)
securecallfunction(method, ...)
index, method = next(handlers, index)
until not method
end

View File

@ -9,14 +9,44 @@ local modul = {
}
local db
local desc = format('%sCount', modulname)
local GetContainerItemInfo = GetContainerItemInfo
if(C_Container and C_Container.GetContainerItemInfo) then
GetContainerItemInfo2 = C_Container.GetContainerItemInfo
else
GetContainerItemInfo2 = function(bag, slot)
local icon, itemCount, locked, quality, readable, lootable, itemLink, isFiltered, noValue, itemID, isBound = GetContainerItemInfo(bag, slot)
if(icon) then
return {
['iconFileID'] = icon,
['stackCount'] = itemCount,
['isLocked'] = locked,
['quality'] = quality,
['isReadable'] = readable,
['hasLoot'] = lootable,
['hyperlink'] = itemLink,
['isFiltered'] = isFiltered,
['hasNoValue'] = noValue,
['itemID'] = itemID,
['isBound'] = isBound
}
end
end
end
local function GetContainerNumSlots2(bag, slot)
if(C_Container and C_Container.GetContainerNumSlots) then
return C_Container.GetContainerNumSlots(bag, slot)
end
return GetContainerNumSlots(bag, slot)
end
function child:scanBag(bag)
local slot = 1
local itemlist = {}
local empty = true
while(slot<=C_Container.GetContainerNumSlots(bag)) do
while(slot<=GetContainerNumSlots2(bag)) do
local item = Item:CreateFromBagAndSlot(bag, slot)
if(item) then
local itemInfo = C_Container.GetContainerItemInfo(bag, slot)
local itemInfo = GetContainerItemInfo2(bag, slot)
local id = item:GetItemID()
if(itemInfo and id) then
empty = false
@ -30,16 +60,25 @@ function child:scanBag(bag)
end
return empty and nil or itemlist
end
local startbag, endbag
if(Enum and Enum.BagIndex) then
startbag = Enum.BagIndex.Backpack
endbag = Enum.BagIndex.ReagentBag
else
startbag = BACKPACK_CONTAINER
endbag = NUM_BAG_SLOTS
end
local function scanAllBags(delayed)
if(not child:funcSync(scanAllBags, delayed)) then return end
local playerID = child.getPID()
if(playerID) then
local tab = modul['db'][playerID]
for bag=Enum.BagIndex.Backpack ,Enum.BagIndex.ReagentBag do
print()
for bag=startbag ,endbag do
tab[bag] = child:scanBag(bag) -- loop all bought bags
end
for k,v in pairs(modul['db'][playerID]) do
if(k<Enum.BagIndex.Backpack or k>Enum.BagIndex.ReagentBag) then
if(k < startbag or k > endbag) then
tab[k] = nil -- prevent bogus bags
end
end

View File

@ -11,6 +11,20 @@ local db
local desc = format('%sCount', modulname)
local desc2 = 'reagentCount'
local BankIsOpen = false
local startbag, endbag, bankbag, reagentbankbag = 0, 4, -1, -3
if(Enum and Enum.BagIndex) then
startbag = Enum.BagIndex.Backpack
endbag = Enum.BagIndex.ReagentBag
bankbag = Enum.BagIndex.Bank
reagentbankbag = Enum.BagIndex.Reagentbank
reagentbag = Enum.BagIndex.ReagentBag
else
startbag = 6
endbag = startbag + GetNumBankSlots()
bankbag = BANK_CONTAINER
reagentbankbag = -3
reagentbag = BACKPACK_CONTAINER + NUM_BAG_SLOTS + 1
end
function modul.Guess(id)
local dbcount = modul.Get(id)
local count = GetItemCount(id,true)
@ -20,7 +34,7 @@ function modul.Guess(id)
local dif = dbcount - count
modul['db'][playerID] = modul['db'][playerID] or {}
local tab = modul['db'][playerID]
for bag = Enum.BagIndex.BankBag_1 ,Enum.BagIndex.BankBag_1 + GetNumBankSlots() - 1 do
for bag = startbag ,endbag - 1 do
local btab = tab[bag]
if(btab and btab[id] and btab[id]['count'] > 0) then
while(dif > 0 and btab[id]['count'] > 0) do
@ -54,7 +68,7 @@ local function scanAllBankBags(delayed)
if(playerID) then
modul['db'][playerID] = modul['db'][playerID] or {}
local tab = modul['db'][playerID]
for bag = Enum.BagIndex.BankBag_1 ,Enum.BagIndex.BankBag_1 + GetNumBankSlots() - 1 do
for bag = startbag ,endbag - 1 do
tab[bag] = tab[bag] or {}
if(BankIsOpen) then
tab[bag] = child:scanBag(bag) -- loop all bought bankbags
@ -63,17 +77,17 @@ local function scanAllBankBags(delayed)
end
end
if(BankIsOpen) then
tab[Enum.BagIndex.Bank] = child:scanBag(Enum.BagIndex.Bank) -- Main bankbag
tab[bankbag] = child:scanBag(bankbag) -- Main bankbag
else
guess(tab[Enum.BagIndex.Bank])
guess(tab[bankbag])
end
if(BankIsOpen) then
tab[Enum.BagIndex.Reagentbank] = child:scanBag(Enum.BagIndex.Reagentbank) -- Main reagentbag
tab[reagentbankbag] = child:scanBag(reagentbankbag) -- Main reagentbag
else
guess(tab[Enum.BagIndex.Reagentbank])
guess(tab[reagentbankbag])
end
for k,v in pairs(modul['db'][playerID]) do
if(not(k == Enum.BagIndex.Bank) and not(k == Enum.BagIndex.Reagentbank) and not(k > Enum.BagIndex.ReagentBag and k <= GetNumBankSlots() + Enum.BagIndex.ReagentBag)) then
if(not(k == bankbag) and not(k == reagentbankbag) and not(k > reagentbag and k <= GetNumBankSlots() + reagentbag)) then
tab[k] = nil -- prevent bogus bankbags
end
end
@ -89,7 +103,7 @@ local function bagLoop(id, res)
if(playerID and units[k]['faction'] == units[playerID]['faction']) then
local unitname = units[k]['name']
for bag, list in pairs(v) do
dName = (bag == Enum.BagIndex.Reagentbank) and desc2 or desc
dName = (bag == reagentbankbag) and desc2 or desc
for a, b in pairs(list) do
if(a == id) then
res[unitname] = res[unitname] or {
@ -124,18 +138,20 @@ function modul.Get(id)
end
-- function events:BANKFRAME_OPENED()
-- BankIsOpen = true
-- scanAllBankBags()
-- end
-- function events:BANKFRAME_CLOSED()
-- BankIsOpen = false
-- end
function events:BANKFRAME_OPENED()
BankIsOpen = true
scanAllBankBags()
end
function events:BANKFRAME_CLOSED()
BankIsOpen = false
end
function events:PLAYERBANKBAGSLOTS_CHANGED(...)
scanAllBankBags()
end
events.PLAYERBANKSLOTS_CHANGED = events.PLAYERBANKBAGSLOTS_CHANGED
events.PLAYERREAGENTBANKSLOTS_CHANGED = events.PLAYERBANKBAGSLOTS_CHANGED
if(BuyReagentBank) then
events.PLAYERREAGENTBANKSLOTS_CHANGED = events.PLAYERBANKBAGSLOTS_CHANGED
end
events.ITEM_UNLOCKED = events.PLAYERBANKBAGSLOTS_CHANGED
events.BAG_UPDATE_DELAYED = events.PLAYERBANKBAGSLOTS_CHANGED
local function OnEvent(self, event, ...)
@ -172,12 +188,11 @@ function modul:Delete(id, typ)
end
end
local skip = {}
local function MFOpen()
BankIsOpen = true
scanAllBankBags()
end
local function MFClose()
BankIsOpen = false
if(WOW_PROJECT_MAINLINE) then
skip[WOW_PROJECT_MAINLINE] = {
['BANKFRAME_OPENED'] = true,
['BANKFRAME_CLOSED'] = true
}
end
function modul:Enable()
self['status'] = true
@ -191,8 +206,10 @@ function modul:Enable()
self['frame']:RegisterEvent(list[i])
end
self['frame']:SetScript("OnEvent", OnEvent)
child:RegisterOpen(8, MFOpen)
child:RegisterClose(8, MFClose)
if(WOW_PROJECT_ID == WOW_PROJECT_MAINLINE) then
child:RegisterOpen(8, events.BANKFRAME_OPENED)
child:RegisterClose(8, events.BANKFRAME_CLOSED)
end
end
function modul:Disable()
self['status'] = false

View File

@ -126,6 +126,7 @@ function modul:Enable()
for i = 1, #list do
self['frame']:RegisterEvent(list[i])
end
self['frame']:SetScript("OnEvent", OnEvent)
OnEvent(child, "PLAYER_EQUIPMENT_CHANGED")
end
function modul:Disable()
@ -133,6 +134,7 @@ function modul:Disable()
for event, func in pairs(events) do
self['frame']:UnregisterEvent(event)
end
self['frame']:SetScript("OnEvent", nil)
end
local init = {
Setup = function(self)

View File

@ -172,11 +172,6 @@ local skip = {
['CURRENCY_DISPLAY_UPDATE'] = true
}
}
if(WOW_PROJECT_BURNING_CRUSADE_CLASSIC) then
skip[WOW_PROJECT_BURNING_CRUSADE_CLASSIC] = {
['PLAYERREAGENTBANKSLOTS_CHANGED'] = true
}
end
function modul:Enable()
if(child:IsRetail()) then
self.status = true
@ -206,8 +201,9 @@ function modul:Disable()
end
end
end
child:IgnoreClassic(modulname)
child:IgnoreBCC(modulname)
if(not LE_EXPANSION_WRATH_OF_THE_LICH_KING or LE_EXPANSION_LEVEL_CURRENT<LE_EXPANSION_WRATH_OF_THE_LICH_KING or not _G['GetCurrencyListInfo']) then
child:addIgnore(WOW_PROJECT_ID, modulname)
end
local init = {
Setup = function(self)
modul.db, modul.status = child:RegisterModul(modul, modulname)

View File

@ -130,12 +130,12 @@ function events:GUILDBANKBAGSLOTS_CHANGED()
end
end
end
-- function events:GUILDBANKFRAME_CLOSED()
-- GuildBankIsOpen = false
-- end
-- function events:GUILDBANKFRAME_OPENED()
-- GuildBankIsOpen = true
-- end
function events:GUILDBANKFRAME_CLOSED()
GuildBankIsOpen = false
end
function events:GUILDBANKFRAME_OPENED()
GuildBankIsOpen = true
end
local function OnEvent(self, event, ...)
local guildID = child.getGID()
if(guildID and type(events[event])=='function') then
@ -183,6 +183,12 @@ end
local function MFClose()
GuildBankIsOpen = false
end
local skip = {
[WOW_PROJECT_MAINLINE] = {
['GUILDBANKFRAME_OPENED'] = true,
['GUILDBANKFRAME_CLOSED'] = true
}
}
function modul:Enable()
self.status = true
local list = {}
@ -194,11 +200,15 @@ function modul:Enable()
lgbc.RegisterCallback(self, "GuildBankComm_PageUpdate", "OnPageSync")
end
for i = 1, #list do
self['frame']:RegisterEvent(list[i])
if(not skip[WOW_PROJECT_ID] or not skip[WOW_PROJECT_ID][event]) then
self['frame']:RegisterEvent(list[i])
end
end
self['frame']:SetScript("OnEvent", OnEvent)
child:RegisterOpen(10, MFOpen)
child:RegisterClose(10, MFClose)
if(WOW_PROJECT_ID == WOW_PROJECT_MAINLINE) then
child:RegisterOpen(10, MFOpen)
child:RegisterClose(10, MFClose)
end
end
function modul:Disable()
self.status = false
@ -211,6 +221,9 @@ function modul:Disable()
end
end
end
if(LE_EXPANSION_LEVEL_CURRENT<LE_EXPANSION_BURNING_CRUSADE or not GetGuildBankItemInfo) then
child:addIgnore(WOW_PROJECT_ID, modulname)
end
local init = {
Setup = function(self)
db = child['db']

View File

@ -10,34 +10,16 @@ local modul = {
local desc = format('%sCount', modulname)
local mailOpen = false
local db
--[[CLOSE_INBOX_ITEM: mailIndex
MAIL_CLOSED
MAIL_FAILED: itemID
MAIL_INBOX_UPDATE
MAIL_LOCK_SEND_ITEMS: attachSlot, itemLink
MAIL_SEND_INFO_UPDATE
MAIL_SEND_SUCCESS
MAIL_SHOW
MAIL_SUCCESS: itemID
MAIL_UNLOCK_SEND_ITEMS
SEND_MAIL_COD_CHANGED
SEND_MAIL_MONEY_CHANGED
UPDATE_PENDING_MAIL
]]
local function scan()
if(not mailOpen) then return end
local numItems, totalItems = GetInboxNumItems()
-- print("Found",numItems, totalItems)
local playerID = child.getPID()
local db = modul['db'][playerID]
db[1] = {}
for index = 1, numItems do
local packageIcon, stationeryIcon, sender, subject, money, CODAmount, daysLeft, hasItem, wasRead, wasReturned,
textCreated, canReply, isGM = GetInboxHeaderInfo(index)
-- print("Index", index, hasItem)
if(hasItem) then
-- print("Mail has item", index)
for itemIndex = 1, ATTACHMENTS_MAX_RECEIVE do
local name, itemID, texture, count, quality, canUse = GetInboxItem(index, itemIndex)
if(name) then
@ -51,48 +33,19 @@ local function scan()
end
end
function events:MAIL_INBOX_UPDATE()
-- print("MIU")
scan()
end
function events:MAIL_FAILED()
-- print('failed')
function events:MAIL_SHOW()
mailOpen = true
end
-- function events:MAIL_CLOSED()
-- -- print('closed')
-- mailOpen = false
-- end
function events:MAIL_SEND_SUCCESS()
-- print("mail_send_success")
function events:MAIL_CLOSED()
mailOpen = false
end
function events:MAIL_SUCCESS(event, itemID) --fires along with MAIL_SEND_SUCCESS, itemID always nil, fires when deleting mail
scan()
end
function events:MAIL_SEND_INFO_UPDATE() -- item changed
-- print("update")
for index = 1, ATTACHMENTS_MAX_SEND do
local name, itemID, texture, count, quality = GetSendMailItem(index)
if name then
-- print("You are sending", name, "x", count)
end
end
end
--[[function events:SEND_MAIL_COD_CHANGED() -- price added
print("cod changed")
end]]
function events:MAIL_LOCK_SEND_ITEMS(event, attachSlot, itemLink)
-- print(event, attachSlot, itemLink)
end
function events:UPDATE_PENDING_MAIL()
-- print("Update pending mail")
end
-- function events:MAIL_SHOW()
-- -- print("Mail show")
-- mailOpen = true
-- end
local function OnEvent(self, event, ...)
local playerID = child.getPID()
-- print(modulname, event, ...)
if(playerID and type(events[event])=='function') then
modul['db'] = child:GetNamespace(modul.name)
modul['db'][playerID] = modul['db'][playerID] or {}
@ -149,6 +102,12 @@ end
local function MFClose()
mailOpen = false
end
local skip = {
[WOW_PROJECT_MAINLINE] = {
['MAIL_SHOW'] = true,
['MAIL_CLOSED'] = true
}
}
function modul:Enable()
self['status'] = true
local list = {}
@ -156,11 +115,15 @@ function modul:Enable()
list[#list+1] = event
end
for i = 1, #list do
self['frame']:RegisterEvent(list[i])
if(not skip[WOW_PROJECT_ID] or not skip[WOW_PROJECT_ID][event]) then
self['frame']:RegisterEvent(list[i])
end
end
self['frame']:SetScript("OnEvent", OnEvent)
child:RegisterOpen(17, MFOpen)
child:RegisterClose(17, MFClose)
if(WOW_PROJECT_ID == WOW_PROJECT_MAINLINE) then
child:RegisterOpen(17, MFOpen)
child:RegisterClose(17, MFClose)
end
end
function modul:Disable()
self['status'] = false

View File

@ -79,13 +79,13 @@ function modul.Output(input, sum, b)
end
return input, sum
end
-- function events:VOID_STORAGE_CLOSE()
-- voidOpen = false
-- end
-- function events:VOID_STORAGE_OPEN()
-- voidOpen = true
-- scanVoid()
-- end
function events:VOID_STORAGE_CLOSE()
voidOpen = false
end
function events:VOID_STORAGE_OPEN()
voidOpen = true
scanVoid()
end
events.VOID_STORAGE_CONTENTS_UPDATE = scanVoid
events.VOID_STORAGE_DEPOSIT_UPDATE = scanVoid
events.ITEM_UNLOCKED = scanVoid
@ -111,6 +111,19 @@ end
local function MFClose()
voidOpen = false
end
local skip = {}
if(WOW_PROJECT_MAINLINE) then
skip[WOW_PROJECT_MAINLINE] = {
['VOID_STORAGE_CLOSE'] = true,
['VOID_STORAGE_OPEN'] = true
}
end
if(WOW_PROJECT_WRATH_CLASSIC) then
skip[WOW_PROJECT_WRATH_CLASSIC] = {
['VOID_STORAGE_CLOSE'] = true,
['VOID_STORAGE_OPEN'] = true
}
end
function modul:Enable()
self['status'] = true
local list = {}
@ -118,11 +131,15 @@ function modul:Enable()
list[#list+1] = event
end
for i = 1, #list do
self['frame']:RegisterEvent(list[i])
if(not skip[WOW_PROJECT_ID] or not skip[WOW_PROJECT_ID][list[i]]) then
self['frame']:RegisterEvent(list[i])
end
end
self['frame']:SetScript("OnEvent", OnEvent)
child:RegisterOpen(26, MFOpen)
child:RegisterClose(26, MFClose)
if(WOW_PROJECT_ID == WOW_PROJECT_MAINLINE) then
child:RegisterOpen(26, MFOpen)
child:RegisterClose(26, MFClose)
end
end
function modul:Disable()
self['status'] = false
@ -130,8 +147,9 @@ function modul:Disable()
self['frame']:UnregisterEvent(event)
end
end
child:IgnoreClassic(modulname)
child:IgnoreBCC(modulname)
if(not LE_EXPANSION_CATACLYSM or LE_EXPANSION_LEVEL_CURRENT<LE_EXPANSION_CATACLYSM or not _G['GetVoidItemInfo']) then
child:addIgnore(WOW_PROJECT_ID, modulname)
end
local init = {
Setup = function(self)
db = child['db']

View File

@ -7,9 +7,6 @@ local db
local skip = {
[WOW_PROJECT_CLASSIC] = {}
}
if(WOW_PROJECT_BURNING_CRUSADE_CLASSIC) then
skip[WOW_PROJECT_BURNING_CRUSADE_CLASSIC] = {}
end
function child:GetModul(modName)
for k,modul in pairs(moduls) do
if(modul.name==modName) then
@ -17,12 +14,12 @@ function child:GetModul(modName)
end
end
end
function child:IgnoreClassic(ign)
skip[WOW_PROJECT_CLASSIC][ign] = true
end
function child:IgnoreBCC(ign)
if(WOW_PROJECT_BURNING_CRUSADE_CLASSIC) then
skip[WOW_PROJECT_BURNING_CRUSADE_CLASSIC][ign] = true
function child:addIgnore(pid, ign)
if(pid) then
if(ign) then
skip[pid] = skip[pid] or {}
skip[pid][ign] = true
end
end
end
function child:RegisterModul(modul, namespace)

View File

@ -75,36 +75,36 @@ local function GameTooltip_OnTooltipSetItem(tooltip)
tooltip:Show()
end
local function GameTooltip_OnTooltipSetItem2(tooltip, tooltipData)
-- local tooltipData = tooltip:GetTooltipData()
if(tooltipData and tooltipData.id and tooltipData.type == 0) then -- type -> 0 = item, 1 = spell
curItem = tooltipData.id
tooltip.zzInfo = true
child:setTT(curItem,tooltip)
tooltip:AddLine()
for name,b in pairs(child:Search(curItem)) do
local dname, drealm = strsplit(" - ",name)
local input,sum = child:output(b)
if(sum>0) then
tooltip:AddLine(format(L['tooltip_main_string'],child:getIcon(curItem),dname,sum,child:colorize(table.concat(input,', '),"ffffff")))
end
input = nil
-- local tooltipData = tooltip:GetTooltipData()
if(tooltipData and tooltipData.id and tooltipData.type == 0) then -- type -> 0 = item, 1 = spell
curItem = tooltipData.id
tooltip.zzInfo = true
child:setTT(curItem,tooltip)
tooltip:AddLine()
for name,b in pairs(child:Search(curItem)) do
local dname, drealm = strsplit(" - ",name)
local input,sum = child:output(b)
if(sum>0) then
tooltip:AddLine(format(L['tooltip_main_string'],child:getIcon(curItem),dname,sum,child:colorize(table.concat(input,', '),"ffffff")))
end
child:specialoutput(tooltip, curItem)
if(db['showID']) then
tooltip:AddLine(format(L['tooltip_id_string'],curItem))
end
GameTooltip_CalculatePadding(tooltip)
-- tooltip:Show()
elseif(tooltipData) then
input = nil
end
child:specialoutput(tooltip, curItem)
if(db['showID']) then
tooltip:AddLine(format(L['tooltip_id_string'],curItem))
end
GameTooltip_CalculatePadding(tooltip)
-- tooltip:Show()
elseif(tooltipData) then
end
if(GameTooltip.OnTooltipSetItem) then
child.GameTooltip_OnTooltipSetItem = GameTooltip_OnTooltipSetItem
GameTooltip:HookScript("OnTooltipSetItem", GameTooltip_OnTooltipSetItem)
else
end
if(TooltipDataProcessor) then
child.GameTooltip_OnTooltipSetItem = GameTooltip_OnTooltipSetItem2
TooltipDataProcessor.AddTooltipPostCall(Enum.TooltipDataType.Item, GameTooltip_OnTooltipSetItem2)
else
child.GameTooltip_OnTooltipSetItem = GameTooltip_OnTooltipSetItem
GameTooltip:HookScript("OnTooltipSetItem", GameTooltip_OnTooltipSetItem)
end
function events:TRADE_SKILL_LIST_UPDATE(event)
child:updateTT()

View File

@ -1,4 +1,4 @@
## Interface: 100002
## Interface: 100005
## Title: itemsdb
## X-Curse-Project-ID: 290291
## X-WoWI-ID: 24579

9
zz_itemsdb_Vanilla.toc Executable file
View File

@ -0,0 +1,9 @@
## Interface: 11403
## Title: itemsdb
## X-Curse-Project-ID: 290291
## X-WoWI-ID: 24579
## X-Repository: https://git.grml.de/rilgamon/zz_itemsdb.git
## OptionalDeps: zzLib, Ace3, BrokerPack
## SavedVariables: zz_itemsdbDB
Libs\embeds.xml
pack.xml

9
zz_itemsdb_Wrath.toc Executable file
View File

@ -0,0 +1,9 @@
## Interface: 30401
## Title: itemsdb
## X-Curse-Project-ID: 290291
## X-WoWI-ID: 24579
## X-Repository: https://git.grml.de/rilgamon/zz_itemsdb.git
## OptionalDeps: zzLib, Ace3, BrokerPack
## SavedVariables: zz_itemsdbDB
Libs\embeds.xml
pack.xml