File Details
v0.5.2
- R
- Apr 29, 2026
- 318.97 KB
- 16
- 12.0.5+2
- Retail
File Name
PiratesPlunder-v0.5.2.zip
Supported Versions
- 12.0.5
- 12.0.1
- 12.0.0
Changelog
[0.5.1] - 2026-04-28
Added
- Roster snapshots: end-of-session standings frozen per session. Captured locally by every client on
PP.Session:End()(skipped forRESETandSYNC_DELETE); shipped inline onSESSION_CLOSE; backfilled on demand viaSNAPSHOT_REQUEST/SNAPSHOT_REPLY(BULK priority).sessionSnapshotstable added toguilds[guildKey]schema (auto-backfilled byEnsureData). Arbitration byrosterVersion— newest wins. - New
PP.Repo.Rostermethods:GetSessionSnapshot,SetSessionSnapshot,BuildRosterSnapshot,GetAllSnapshotVersions. - Roster snapshot UI: "View Roster Snapshot" button on ended-session detail view; popup window lists frozen standings sorted by score. "Fetch Session Snapshots" button in the Settings tab triggers a group-wide backfill (5 s cooldown).
LOOT_CLEARmessage type: raid leader broadcasts after 60 s of an empty queue. Receivers wipe their loot display and mark the cleared keys as completed so lateLOOT_POSTmessages cannot re-pop them. Idle timer cancels on new posts and on session end/create.PP:LocalClearLoot()and/pp loot clear(/pp l clear): wipes pending loot for this client only, no broadcast. Settings tab gains a "Clear My Loot Display" button.PARTY_LEADER_CHANGEDhandler (OnPartyLeaderChanged): hands off the idle-clear timer when leadership transfers.- Bounded post-join sync retry (
_ScheduleJoinSync): up to 3 attempts (3 s, then 9 s, then 15 s) issuingRequestSync; stops once an active session is adopted, the group is left, or no other PP users are present. _completedLootKeysruntime table tracks cleared/awarded/cancelled loot keys to suppress late re-posts.
Changed
- Reliable broadcast simplified: per-member whisper retry loop removed.
BroadcastCriticalnow broadcasts once and relies on theACKhash check to detect divergence — any mismatch schedules a singleSendFullSync._criticalAckSnapshotsentries auto-expire after 30 s. - Message priority dropped from
ALERTtoNORMALfor loot/session/sync traffic.LOOT_STATE_QUERY,RAID_SETTINGS, and the newSNAPSHOT_*messages remain atBULK. LOOT_AWARDpayload now carriesrosterVersionandrosterHash— receivers update score, advancerosterVersion, and verify the hash from a single message. SeparateROSTER_DELTAon award removed; gap detection requests a full sync.ROSTER_DELTArequires sequential version application; any gap (incoming != local + 1) triggersRequestSync.LOOT_CANCELpayload now includesguildKeyso the ACK hash compares against the same roster on every client.BroadcastSessionCreatepayload reduced to{name, startTime}— recipients reconstruct the session shell locally.HandleSyncRequestresponds using the responder's own active guild key (no longer filters by requester guild match) so a joining player with a stale_activeGuildKeyis not ignored by every officer.SendFullSync(guildKey, target): targeted whispers bypass the broadcast cooldown.HandleSyncFullonly auto-creates foreign guild records when the message is a whispered reply received within 15 s of our ownRequestSyncand the sender is currently in our group.HandleSyncFullends a local stale session when the sender authoritatively cleared theirs at a neweractiveSessionVersion.PP.Session:RecordItemAwardaccepts an optionalguildKeyparameter;HandleLootAwardpasses the payload'sguildKeyso receivers with a stale_activeGuildKeystill write into the correct session.- Default session names: when multiple sessions are created on the same day they auto-increment as
Session YYYY-MM-DD #2,#3, … HandleSessionCreaterebuilds the session shell from the trimmed payload and routes viaPP.Repo.Roster:SetActiveSessionID.
Fixed
- Whisper-only
SYNC_FULLandSNAPSHOT_REPLYno longer accepted from non-group senders or outside their request trust window — prevents arbitrary guild-key injection and snapshot-poisoning via unsolicited whispers. LOOT_CLEARvalidated as raid-leader-only; pending keys are marked completed before the local wipe so a delayedLOOT_POSTcannot re-introduce a cleared item.- Snapshot pop-up window released on
SESSION_DELETEso it cannot reference a deleted session.
[0.5.0] - 2026-04-22
Added
- Reliable broadcast (
BroadcastCritical): initial RAID/PARTY broadcast + per-member whisper retry for critical messages (LOOT_POST, LOOT_AWARD, LOOT_CANCEL, SESSION_CREATE, SESSION_CLOSE, SESSION_DELETE, ROSTER_DELTA, GROUP_SCORE). Retries 3× with 4s delay before giving up. - ACK message type: receivers echo back a roster hash so the sender can detect divergence and trigger a delta or full sync.
- Roster delta sync (
ROSTER_DELTA/BroadcastRosterDelta): sends only changed/removed entries instead of the full roster on every update. - Group score sync (
GROUP_SCORE/GROUP_SCORE_ACK): dedicated round-trip for boss-kill point awards with per-member acknowledgement. - Message priority system: LOOT, SESSION, and SYNC messages sent at ALERT priority; bulk sync at BULK priority.
- Handshake on group join: automatically requests a version check from all online members.
- Full sync throttle: additional full syncs are suppressed within a 10-second cooldown.
ComputeRosterHash: deterministic roster hash used to detect drift without exchanging the full payload./pp debugcommand: toggles sync debug output to chat (replaces/pp bagdebug)./pp minimapcommand: toggles minimap icon visibility.- Minimap visibility checkbox in the Settings tab.
ShowMinimapIcon()/HideMinimapIcon()methods with persistence across reloads.- Default session names auto-increment within a day (
Session YYYY-MM-DD,Session YYYY-MM-DD #2, …). _ppUsersruntime table: tracks which group members have the addon loaded.
Changed
- All slash-command handlers consolidated into
Commands/Commands.lua(was split acrossDevCommands.lua,RosterCommands.lua,SessionCommands.lua). SendFullSyncno longer accepts atargetparameter — full syncs always broadcast to the group.- Loot key format changed to
itemLink:timestamp:indexfor stable chronological sort across reloads. - Loot master window width increased to 850.
- Tooltip overlay frames reused instead of recreated on each draw.
Fixed
- Loot master window sort order: entries now sort chronologically by timestamp, with index as tiebreaker within the same second.
- Whisper reflection attack vector: the addon no longer echoes whisper-delivered messages back to the sender.
- Potential duplicate ACK keys replaced with a time-based GUID.
[0.4.0] - 2026-03-22
Added
- Minimap icon with LibDBIcon-1.0: left-click toggles main window, right-click opens loot master window
- Pending loot bars UI: visual progress bars for active loot postings
Fixed
- Leader change stale raid: session now correctly reactivates on rejoin after leader swap
- Sync gating to prevent unintentional guild entry creation
[0.3.2] - 2026-03-21
Changed
- Clarified
GetDatavsEnsureDataAPI inPP.Repo.Roster:EnsureDataauto-creates the guild entry if missing;GetDatareturns nil for absent entries
Fixed
- Added nil-guards after
GetData()calls in Sync.lua, LootService, SessionService, and main.lua to prevent crashes when guild data is absent
[0.3.1] - 2026-03-21
Changed
- Sync improvements for roster and session state propagation
- Session renamed to use more descriptive identifiers
Fixed
- Prevent auto-pass triggering when not in an active raid
- Scroll position preserved on UI redraw
[0.3.0] - 2026-03-21
Changed
- Refactored data access into Repository layer (PP.Repo.Roster, PP.Repo.Loot)
- Refactored business logic into Service layer (PP.Session, PP.Roster, PP.Loot)
- Session teardown consolidated into single PP.Session:End() path
- Pending trades now persist across UI reloads
Fixed
- Spurious client-side session ends on disconnect/reconnect (disconnect recovery window)
- LEADER_LEFT session end now deferred 5 seconds to survive leader promotion windows
- CheckActiveRaid moved to fire after world load so IsInGroup() is accurate on reload
- Auto-pass epic+ setting now included in full sync payload (resilient to race with loot rolls)
- Cancel and Award loot actions now gated by CanPostLoot() permission check
[0.2.2]
Fixed
- Session window reopening on UI redraw
- Sync improvements for roster version propagation
[0.2.1]
Added
- Initial guild roster and session sync via AceComm
- Loot response system (NEED / MINOR / TRANSMOG / PASS)
- Auto-trade window population for pending deliveries
[0.2.0]
Added
- Initial public release
- Guild-based loot distribution with score tracking
- Sandbox mode for in-game testing

