Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
d9ee106
added acc-wide currencies to warband column, needs fix for crests
joshuadbeil Jul 23, 2024
bdd82c3
Merge branch 'Lardeck:master' into beta
joshuadbeil Jul 24, 2024
12f2dc3
added functions to update warband currencies on looting/spending and …
joshuadbeil Jul 25, 2024
a81780b
removed debugging prints
joshuadbeil Jul 25, 2024
c5e013b
reverted some variable renaming
joshuadbeil Jul 25, 2024
52645b3
minor bugfix, added some fallbacks where tables were potentially nil …
joshuadbeil Jul 26, 2024
7f68ce8
reverted some minor change
joshuadbeil Jul 29, 2024
917c0b4
moved AccountDataRequest to currency module and removed function wrap…
joshuadbeil Jul 31, 2024
45d02fb
Add custom names for echoes weeklies
Lardeck Jul 31, 2024
2696438
learned that characters vanish from api data if their currency is set…
joshuadbeil Aug 1, 2024
03053cd
removed some labels from the general tab and adjusted the new prepatc…
joshuadbeil Aug 2, 2024
11ee6e7
uncommented a function whoopsie
joshuadbeil Aug 2, 2024
45cd6c1
added another retail check
joshuadbeil Aug 2, 2024
3a6f07a
added lockout reset for warband data
joshuadbeil Aug 3, 2024
877665c
Add done world quests
Lardeck Aug 3, 2024
1bcfcea
fixed same-table reference in quests and started concentration tracker
joshuadbeil Aug 5, 2024
d893b76
Reset world quest weekly not daily
Lardeck Aug 7, 2024
b50c4ef
changed current and removed old crest definition. did some more conce…
joshuadbeil Aug 13, 2024
29677d2
removed typo in the crest string
joshuadbeil Aug 13, 2024
6169125
Add warband=true and warband='unique' handling
Lardeck Aug 14, 2024
a89ab1d
Merge branch 'beta' into tww
joshuadbeil Aug 19, 2024
5b063b0
added all new quests, currencies, instance maps, items of interest, r…
joshuadbeil Aug 20, 2024
1c8fba7
added all new db items to their respective module and updated categories
joshuadbeil Aug 20, 2024
8524bdd
Merge pull request #6 from joshuadbeil/tww
joshuadbeil Aug 20, 2024
2158bb3
removed debug lines for release
joshuadbeil Aug 20, 2024
c858880
changed some labelrow names for readability
joshuadbeil Aug 20, 2024
354e6c7
added another weekly and the catalyst currency
joshuadbeil Aug 20, 2024
6d23807
added missing quest event handler for warbands
joshuadbeil Aug 21, 2024
46a0cc6
fixed bug that reset hidden warband quests on relog
joshuadbeil Aug 21, 2024
6adf3e3
added warband reputation functionality and added a mapping table for …
joshuadbeil Aug 21, 2024
1dd993d
moved the standing cuntion a somewhere else
joshuadbeil Aug 21, 2024
189e712
added mapping for old friends standings, too
joshuadbeil Aug 21, 2024
36c880b
some cleanup
joshuadbeil Aug 21, 2024
e14b097
Merge pull request #22 from joshuadbeil/tww
Lardeck Aug 22, 2024
0d87674
Fix creating multiple buttons when adding/removing labels
Lardeck Aug 22, 2024
e6409ba
Add 10 seconds delay to the quest update
Lardeck Aug 22, 2024
ca72b79
Reset Categories once when logging in with the new version
Lardeck Aug 22, 2024
e7bb1b4
Merge branch 'master' into warband
Lardeck Aug 22, 2024
9eab62f
Merge pull request #23 from Lardeck/warband
Lardeck Aug 22, 2024
5b34475
added missing db entries that somehow got lost in the merge
joshuadbeil Aug 26, 2024
29b7b5e
replaced all rare mob questIDs with the corresponding questID respons…
joshuadbeil Aug 26, 2024
61e12e2
fixed labelRow for greater keyflames. adjustred rare tracker to ShowA…
joshuadbeil Aug 26, 2024
c8ea5ed
fixed profession weekly knowledge display.
joshuadbeil Aug 26, 2024
718e116
YEETED prepatch event off the addon, it was truly awful. (Needs a mod…
joshuadbeil Aug 26, 2024
ccd07fe
fixed some rare names to actual npc names
joshuadbeil Aug 26, 2024
3ad756c
found new questID for Alunira
joshuadbeil Aug 26, 2024
49d16a9
fixed an error that divided some crest quantity by 100
joshuadbeil Aug 26, 2024
9f7908a
Merge pull request #24 from joshuadbeil/master
Lardeck Aug 27, 2024
d7a0615
Fix lua error if the altData is not available somehow
Lardeck Aug 27, 2024
a0b5a50
added the 2nd KP Inscription can get.
joshuadbeil Aug 29, 2024
5462701
Add Coffer Key Shards to the calculation of the Coffer Keys
Lardeck Aug 29, 2024
8b9ae0a
Fix lua error
Lardeck Aug 29, 2024
867a8ba
fixed Awakening the Machine not displaying
joshuadbeil Aug 30, 2024
031c3ef
removed rares wihout weekly reset from the tracker
joshuadbeil Aug 30, 2024
3de09b0
changed knowledge label name to be less confusing as it can also drop…
joshuadbeil Aug 30, 2024
24160eb
flagged PVP weekly quests for Warbands since they reward renown now
joshuadbeil Aug 30, 2024
ba5413a
removed currency tooltip for warband column as it makes no sense
joshuadbeil Aug 30, 2024
72133a9
fixed quest IDs for mining knowledge
joshuadbeil Aug 30, 2024
5fc6e82
Merge pull request #25 from joshuadbeil/master
Lardeck Aug 30, 2024
a644d0b
Merge pull request #26 from Lardeck/dev
Lardeck Aug 30, 2024
d59b46d
Update vault
Lardeck Aug 31, 2024
f2c238f
Fix lua error
Lardeck Aug 31, 2024
19b301d
changed rares to track via C_QuestLog.IsQuestFlaggedCompletedOnAccoun…
joshuadbeil Sep 1, 2024
0e3821a
reverted change as api still doesnt work as intended
joshuadbeil Sep 1, 2024
edb6823
added a new category for rares with 1-time rep reward and expanded fu…
joshuadbeil Sep 2, 2024
ec0c2f2
Merge pull request #27 from joshuadbeil/master
Lardeck Sep 2, 2024
ff0cd14
Merge pull request #28 from Lardeck/dev
Lardeck Sep 2, 2024
551cbc0
removed Brinelash from the rares list as blizzard has also officially…
joshuadbeil Sep 2, 2024
4c2e74e
Remove Brineslash
Lardeck Sep 2, 2024
d4af676
Update required Hallowfall Rares
Lardeck Sep 2, 2024
7b49ed0
one more rare adjustment, this was the last, I promise
joshuadbeil Sep 5, 2024
6f71c68
Merge branch 'dev' into master
Lardeck Sep 5, 2024
65fcc66
Merge pull request #29 from joshuadbeil/master
Lardeck Sep 5, 2024
8b85356
Add Daily and Weekly Reset button
Lardeck Sep 5, 2024
5f3eb58
Add ability to track achievements in the quest tooltip
Lardeck Sep 5, 2024
5bc5292
Delay quest update further
Lardeck Sep 5, 2024
8226c54
Add color constants
Lardeck Sep 5, 2024
a78dfd9
Add string to one time rares that indicates if you've already gained rep
Lardeck Sep 5, 2024
df7a522
Add achievement info to the quest db
Lardeck Sep 5, 2024
f492f34
Add weekly delve rep
Lardeck Sep 5, 2024
ed523d0
Remove the tooltip from awakening the machine
Lardeck Sep 5, 2024
a9ce5ae
Only show a tooltip for the gather knowledge after collecting one
Lardeck Sep 5, 2024
4047220
Add the weekly coffer keys
Lardeck Sep 5, 2024
9df4f18
Add Coffer Keys to the weekly category
Lardeck Sep 6, 2024
8c30376
Update Rares, add Delve rep, add weekly Coffer Keys
Lardeck Sep 6, 2024
0972d45
Fix Delve vault
Lardeck Sep 9, 2024
62dbb11
Fix Mythic Dungeons
Lardeck Sep 11, 2024
20d3d4a
Add current world boss
Lardeck Sep 11, 2024
a4b6293
fixed weekly meta quest and archaic cypher key
joshuadbeil Sep 12, 2024
9aeae30
Weekly Meta merge and Archaic Cypher key warband change
Lardeck Sep 12, 2024
48ca773
Fix world boss
Lardeck Sep 12, 2024
3685db7
Fix vault world tooltip
Lardeck Sep 12, 2024
ad56342
Weekly Meta, World Boss and Vault Update
Lardeck Sep 12, 2024
b0f19ba
fixed dungeon short-names
joshuadbeil Sep 17, 2024
1db2e02
Merge pull request #34 from joshuadbeil/master
Lardeck Sep 17, 2024
3b348c0
Merge pull request #35 from Lardeck/dev
Lardeck Sep 17, 2024
cfc062a
Add current world boss
Lardeck Sep 18, 2024
ad51f3c
Merge pull request #36 from Lardeck/dev
Lardeck Sep 18, 2024
99e0c89
Update PermoksAccountManager.toc
lexxy23 Sep 28, 2024
6d3246e
Bump version
Lardeck Oct 22, 2024
7ce7137
Add some Timewarped Relic Coffer Keys, Bronze Celebration Token and BRD
Lardeck Oct 22, 2024
6440f82
Merge pull request #37 from lexxy23/master
Lardeck Oct 22, 2024
40dffd4
Bump toc
Lardeck Oct 22, 2024
04a485a
Merge branch 'master' into dev
Lardeck Oct 22, 2024
5ef253a
Merge pull request #38 from Lardeck/dev
Lardeck Oct 22, 2024
1689bc1
Fix typo
Lardeck Oct 23, 2024
d391af0
Count celebration tokens warband wide
Lardeck Oct 28, 2024
ee324e6
Add normal and heroic coffer keys
Lardeck Oct 28, 2024
86d921b
Fix classic lua error
Lardeck Oct 30, 2024
de77478
Update formatting of the coffer keys
Lardeck Oct 30, 2024
0101590
Merge pull request #39 from Lardeck/dev
Lardeck Nov 5, 2024
09b223b
Add option to show window while hovering over the minimap button
Lardeck Nov 12, 2024
d36e415
Merge pull request #41 from Lardeck/dev
Lardeck Nov 15, 2024
8263a2e
Rename hover option
Lardeck Jan 13, 2025
baafa27
Add equipped items
Lardeck Jan 13, 2025
97c115c
Rename hover option and track equipped items
Lardeck Jan 13, 2025
eb10865
Fix tracking of equipped items
Lardeck Jan 16, 2025
6dccc07
Fix tracking of equipped items
Lardeck Jan 16, 2025
5dc8d9a
11.1 Update 1
Lardeck Feb 22, 2025
c46852e
11.1 Update 2
Lardeck Feb 25, 2025
036c32b
11.1 Update
Lardeck Feb 25, 2025
b97cab8
Fix Catalyst Charges for 11.1
Lardeck Feb 26, 2025
d329261
Force crest updates
Lardeck Feb 27, 2025
ecc7f6a
Fix crest quantity
Lardeck Feb 27, 2025
00eccc3
Fix possible lua error
Lardeck Mar 3, 2025
88d888b
Fix lua error for neutral characters
Lardeck Mar 5, 2025
0d074b6
Add missing keystones
Lardeck Mar 8, 2025
4ef58e6
Add Weekly Bounty Map
Lardeck Apr 1, 2025
dc87195
Fix partial sparks
Lardeck Apr 1, 2025
5fa6bf1
Fix vault ilvl
Lardeck Apr 1, 2025
f9f8b9b
Fix the itemID for the Radiant Echoes
Lardeck Apr 4, 2025
2e8ffae
Bump toc
Lardeck Apr 23, 2025
623d5d4
Fix font size not working after a reload
Lardeck Apr 23, 2025
22c9a97
Add 11.1.1 Nightfall Weekly and the new Flame's Radiance faction
Lardeck Apr 23, 2025
af35b28
Add vision currencies
Lardeck May 18, 2025
cc6e985
Add 11.2 factions, currencies, items, dungeons, raid, and update vaul…
Lardeck Aug 5, 2025
1564e9f
Fix lua error
Lardeck Aug 5, 2025
a475c61
Fix toc
Lardeck Aug 12, 2025
a37a025
Fix crest display
Lardeck Aug 24, 2025
dafa97e
12.0 fix
Lardeck Jan 21, 2026
ca9efc0
Midnight Update
Lardeck Mar 4, 2026
19baeaf
Fix weekly quests
Lardeck Mar 4, 2026
a4521e8
Add Veteran Crests
Lardeck Mar 9, 2026
567173b
Give manager buttons and the close button a global name (for ElvUI)
Lardeck Mar 13, 2026
29f9e9e
Check if the guild message is secret before parsing it
Lardeck Mar 13, 2026
ce55951
Add the import API, PRMKAPI.Import(importString)
Lardeck Mar 13, 2026
580fefa
Add an API reference to make it more clear that you can create plugins
Lardeck Mar 16, 2026
726c63e
Add Special Assignments, the World Bosses and fix Harandir weekly
Lardeck Mar 16, 2026
99f0884
Fix possible Lua error in the currency module
Lardeck Mar 16, 2026
63f0e62
Add item icons to the options
Lardeck Mar 16, 2026
278a609
Add Coffer Key Shards
Lardeck Mar 18, 2026
3e7c632
Add gold tooltip
Lardeck Mar 18, 2026
f20393c
Fix Coffer Key Shard Currency
Lardeck Mar 18, 2026
1a633bb
Fix raid tooltip
Lardeck Mar 19, 2026
aa9e6c4
Fix vault tooltip
Lardeck Mar 19, 2026
1955c65
Add "Nightmare Preys" and "(The) Nightmarish Task" (Weekly Prey Quest)
Lardeck Mar 20, 2026
562bd2f
Fix quantity of the Coffer Key Shards
Lardeck Mar 22, 2026
74fd6c7
Add new keystones
Lardeck Mar 25, 2026
8dec083
Fix raid tooltip
Lardeck Mar 27, 2026
22c9054
Add missing weekly event quests
Lardeck Mar 29, 2026
fe64d44
Fix the challenge mode id of Magister Terrace
Lardeck Mar 30, 2026
b4c4b6f
Possible coffer key shard fix
Lardeck Mar 31, 2026
b6fc5bf
Restore accidentally deleted coffer keys
Lardeck Mar 31, 2026
400ad52
Fix Outline option in the Experimental options
Lardeck Apr 4, 2026
9b40f9c
Hopefully fix the raids for real this time
Lardeck Apr 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,820 changes: 1,913 additions & 1,907 deletions PermoksAccountManager.lua

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion PermoksAccountManager.toc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Interface: 110000
## Interface: 110200, 120001
## Title: Permoks Account Manager
## Version: @project-version@
## SavedVariables: PermoksAccountManagerDB
Expand Down
46 changes: 46 additions & 0 deletions PermoksAccountManager_Mists.toc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
## Interface: 50500
## Title: Permoks Account Manager
## Author: Permok
## Version: @project-version@
## SavedVariables: PermoksAccountManagerDB
## X-Curse-Project-ID: 582886
## X-Wago-ID: 25NRoe63


libs\LibStub\LibStub.lua
libs\CallbackHandler-1.0\CallbackHandler-1.0.lua
libs\AceAddon-3.0\AceAddon-3.0.xml
libs\AceConsole-3.0\AceConsole-3.0.xml
libs\AceEvent-3.0\AceEvent-3.0.xml
libs\AceDB-3.0\AceDB-3.0.xml
libs\AceGUI-3.0\AceGUI-3.0.xml
libs\AceConfig-3.0\AceConfig-3.0.xml
libs\AceComm-3.0\AceComm-3.0.xml
libs\AceLocale-3.0\AceLocale-3.0.xml
libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
libs\LibDBIcon-1.0\lib.xml
libs\LibQTip-1.0\lib.xml
libs\LibDeflate\LibDeflate.lua
libs\LibSerialize\LibSerialize.lua
libs\LibSharedMedia-3.0\lib.xml
libs\AceGUI-3.0-SharedMediaWidgets\widget.xml
libs\AceGUIWidget-TwoTextButton.lua

modules.lua
locales\locales.xml
commands.lua
communication.lua

db\db-mop.lua

modules\accounts.lua
modules\character.lua
modules\currencies.lua
modules\factions.lua
modules\instances.lua
modules\quests.lua
modules\items.lua
modules\classic_professions.lua

PermoksAccountManager.lua
options.lua
124 changes: 121 additions & 3 deletions api.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,118 @@ _G.PAMAPI = {}

local api = _G.PAMAPI

function api.AddModule(...)
if ... then
local added = PermoksAccountManager:AddModule(...)
--[[
PAM API quick reference

How to add a module
1. Create a unique module name.
2. Build a payload table:
- update(charInfo): fills or refreshes data on the current character.
- labels: table of rowIdentifier = labelRow.
- events: eventName = callback or { callbackA, callbackB }.
Every callback receives (charInfo, ...eventArgs).
- share: optional map of callbackFunction = charInfoKey.
After that callback runs, PAM shares charInfo[charInfoKey] with synced accounts.
3. Register the module with:
local module = _G.PAMAPI.AddModule("my_module", payload, true)
Pass true for forceLoad when you want the module to register events and run update() immediately.
4. Keep every row identifier unique across all PAM modules.

Minimal complete example
local api = _G.PAMAPI

local function UpdateExample(charInfo)
charInfo.exampleModule = charInfo.exampleModule or {}
charInfo.exampleModule.status = IsResting() and "Resting" or "Awake"
end

local payload = {
update = UpdateExample,
labels = {
example_status = {
label = "Example Status",
group = "other",
version = false,
data = function(altData)
return altData.exampleModule and altData.exampleModule.status or "-"
end,
},
},
events = {
PLAYER_ENTERING_WORLD = UpdateExample,
PLAYER_UPDATE_RESTING = UpdateExample,
},
share = {
[UpdateExample] = "exampleModule",
},
}

api.AddModule("example_module", payload, true)

Built-in labelRow.type values supported by PAM without custom registration
- quest: reads altData.questInfo[questType][visibility][key].
- currency: reads altData.currencyInfo[key].
- faction: reads altData.factions[key].
- item: reads altData.itemCounts[key].
- sanctum: reads altData.sanctumInfo with labelRow.key.
- raid: reads altData.instanceInfo.raids[key].
- pvp: reads altData.pvp[key].
- vault: reads altData.vaultInfo[key].

If you do not want to use one of the built-in types, set data = function(altData, labelRow, rowIdentifier)
on the row instead. Bundled types such as gold, keystone, spark, worldquest, renown, and similar module-
specific types are not core defaults; they are registered by their owning modules.

Common label row fields
- label: string or function returning the row name shown in the UI.
- type: optional string; use one of the built-in types above or a custom type you registered yourself.
- data: optional fallback renderer used when no built-in/custom type is needed.
- key: optional lookup key used by most built-in types.
- group: optional group/category key such as character, currency, item, dungeons, raids, reputation,
profession, resetDaily, resetWeekly, or other.
- version: false for all game versions, or a specific WOW_PROJECT_* constant.
- tooltip: true to use the default tooltip for the type, or a function for a custom tooltip.
- customTooltip: function(button, altData, labelRow, rowIdentifier) for full tooltip control.
- color: function(altData) returning a ColorMixin.
- OnClick: function(buttonName, altData) for row click handling.
- warband: true to show in the warband column, "unique" for warband-only rows.
- passKey: for custom label types, prepends labelRow.key or rowIdentifier to the callback arguments.
- passRow: for custom label types, prepends the full labelRow to the callback arguments.

Available functions
- PAMAPI.AddModule(moduleName, payload, forceLoad)
moduleName: unique string used to register the module.
payload: table containing update, labels, optional events, and optional share.
forceLoad: boolean; pass true to load the module immediately.
returns: the created module object, or nil when registration fails.

- module:AddCustomLabelType(customType, callback, alwaysForceUpdate, ...)
customType: string that your label rows use in labelRow.type.
callback: renderer called with the altData fields named in ... after PAM extracts them.
alwaysForceUpdate: boolean; when true, callback arguments are rebuilt every refresh instead of cached.
...: one or more altData keys, for example "itemCounts", "currencyInfo", or "exampleModule".

- PAMAPI.GetCharacterInfo(key)
key: string key from the current character info table.
returns: PermoksAccountManager.charInfo[key], or nil.

- PAMAPI.GetCharactersForAccount(account)
account: account key from db.global.accounts, for example "main" or a synced account id.
returns: db.global.accounts[account].data, or nil.

- PAMAPI.Import(importString)
importString: export string created by PAM.
effect: overwrites the imported custom/category/options data and reruns OnLogin() to refresh state.
]]


function api.AddModule(moduleName, payload, forceLoad)
if moduleName and payload then
local added = PermoksAccountManager:AddModule(moduleName, payload, forceLoad)
if added then
PermoksAccountManager.UpdateCustomLabelOptions()
end
return added
end
end

Expand All @@ -23,3 +129,15 @@ function api.GetCharactersForAccount(account)
return PermoksAccountManager.db.global.accounts[account].data
end
end

function api.Import(importString)
local data = PermoksAccountManager:ParseImportString(importString)
if data then
PermoksAccountManager.db.global.custom = data.custom
PermoksAccountManager.db.global.options = data.options
PermoksAccountManager.db.global.internalVersion = data.internalVersion
end

--TODO: Handle the import more gracefully. This should work for now. Forcing a reload would probably be more secure.
PermoksAccountManager:OnLogin()
end
11 changes: 11 additions & 0 deletions commands.lua
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,13 @@ function commands.SECRET()
end
end

function commands.SETVERSION(version)
version = tonumber(version)
if version then
PermoksAccountManager.db.global.internalTWWVersion = version
end
end

function commands.CL()
PermoksAccountManager.db.global.customLabels = not PermoksAccountManager.db.global.customLabels
end
Expand Down Expand Up @@ -224,6 +231,10 @@ function PermoksAccountManager:Purge()
self:OnLogin()

self:Print("Please reload your interface to update the displayed info.")

if self.isRetail then
self:Print("To update Warband currency info a relog is required.")
end
end

function PermoksAccountManager:ResetCategories()
Expand Down
Loading
Loading