promotional bannermobile promotional banner

CEPGP LootMaster - ANADOLU [Core]

CEPGP LootMaster - ANADOLU - Core version is made for our guild standarts to use our raider members.

File Details

cepgp_lootmaster-8.6.2.zip

  • R
  • May 19, 2026
  • 713.34 KB
  • 102
  • 2.5.5
  • Classic TBC

File Name

cepgp_lootmaster-8.6.2.zip

Supported Versions

  • 2.5.5

Changes

8.6.2 — 2026-05-19

Features

EPGP Controller — Session-Based Award/Exclude

  • New: Added "Session" as a third source option in the EP/GP Controller alongside Guild and Raid.
  • Award session attendees: Select a past raid session from the dropdown and award EP/GP to everyone who attended that session.
  • Exclude session attendees: Check "Exclude from guild rank", pick a rank, and award EP/GP to all members of that rank EXCEPT those who were in the selected session. Useful for awarding standby EP to non-raiders.

Bug Fixes

Session Delete — No Longer Auto-Propagates

  • Removed: Deleting a loot session no longer broadcasts a SESSION_DELETE over the addon channel, and inbound SESSION_DELETE messages are now ignored entirely. Previously, a delete by the ML or a root admin could silently wipe the same session from every other client that had a copy, with no consent prompt — and stale clients could still send these messages.
  • Why: Auto-propagating deletes caused sessions to disappear from other admins' history without warning. Remote deletion remains available via the LM Browse Raid Sessions window, which uses a separate, explicitly user-initiated SESSION_REMOTE_DELETE flow.
  • Where: DeleteLootSession no longer calls any broadcast (the broadcast parameter is preserved for caller compatibility but ignored). BroadcastSessionDelete is now a permanent no-op. The inbound SESSION_DELETE handler in the sync command dispatcher is now a no-op.

Session Attendance — Cross-Raid Pollution (Critical)

  • Fixed: When a non‑Master‑Looter player was watching/monitoring an active loot session while simultaneously being in another raid group, their client was silently snapshotting their own raid roster into the watched session's attendance list. This polluted session.attendance with players who were never in the actual loot raid — including PUGs and non‑guild members from the unrelated raid. If the watcher was also a root admin, their poisoned copy was re‑broadcast through SESSION_REQ responses (BroadcastSessionSnapshot(..., "RESP", ...)), spreading the bad data into other admins' session browsers.
  • Root cause: UpdateSessionAttendance and CreateSessionFromUid blindly read GetRaidRosterInfo / GetNumGroupMembers regardless of whether the local player was the session's master looter. They were invoked from GroupRosterUpdate (every roster event), RecordLootHistoryEntry (every synced award), and on creation of placeholder sessions for remote UIDs.
  • Fix: Added LootMaster:CanRecordLocalRosterIntoSession(session) — returns true only when the local player is currently the Master Looter and the session has no owner yet or its masterLooter/owner matches the local player. UpdateSessionAttendance now bails out early when this check fails, so only the legitimate ML ever writes their raid roster into a session. CreateSessionFromUid no longer calls UpdateSessionAttendance at all — placeholder sessions for remote UIDs are filled exclusively via SESSDATA snapshots from the real owner.
  • Note: Per‑player attendance entries added from synced award events (RecordLootHistoryEntry adding the awarded player and distributor by name) are unchanged — those names come from the sync payload itself, not the local roster, so they remain accurate.
  • Cleanup: Existing sessions that already contain polluted entries are not auto‑cleaned (the addon can't tell which entries are bogus). Root admins can re‑pull a clean copy from the actual master looter via the session browser, or delete and re‑sync the affected session.

Auto EP — Duplicate Awards When ML ≠ Raid Leader

  • Fixed: Auto EP on boss kill was being awarded by both the Master Looter AND the Raid Leader if they were different people with the addon, resulting in double EP for the entire raid.
  • Root Cause: The guard was if not isML and not isRL then return end, allowing both roles to pass through independently.
  • Fix: Only the Master Looter can trigger auto EP awards. If you're not the ML, the function returns immediately — no RL fallback, no exceptions.

Loot Recording — Random Player Loot Polluting Session History

  • Fixed: Items that raid members picked up themselves (e.g., Kael'thas weapons from personal/group loot, disenchanted gear) were being recorded in the ML's session history.
  • Root Cause: OnChatMsgLoot in core recorded any Rare+ item looted by anyone other than the ML, including items players picked up via below-threshold loot or group loot rolls.
  • Fix: OnChatMsgLoot now only records items the ML loots for themselves. Items distributed to other players are exclusively recorded by the ML module's own handler.

Loot Recording — Duplicate Entries on ML Self-Loot Then Distribute

  • Fixed: When the ML looted an item (recorded as self-loot placeholder) and later distributed that same item to a player, both entries remained — creating a duplicate.
  • Root Cause: The two recording paths used different awardId formats ("auto:..." vs ML module's format), so the existing deduplication never matched them.
  • Fix: When a proper distribution is recorded (non-"auto:" awardId), the system now scans for and removes any earlier "auto:" placeholder entry for the same item. The distribution record supersedes the self-loot placeholder.

Loot Attendance Window — Polluted With Zero-Session Guild Members

  • Fixed: Opening the Attendance view with the default filters (All Weeks + All Zones) flooded the table with rows for every guild member who had never raided — each shown at Sessions = 0, Attendance % = 0%. This made it nearly impossible to scan the list for who was actually in past raids.
  • Root Cause: BuildAttendanceRows pre-seeded members with every entry from GetGuildRosterInfo, and the row-emit filter only excluded zero-session rows when a week or zone filter was active. With no filter, the entire guild was rendered.
  • Fix: Removed the unconditional roster pre-seed. Members are now added only when they appear in a session's attendance, so the table shows exactly who attended. Guild roster + the persistent GuildCache are still consulted, but only to back-fill class info (for class-colored names) when the session record itself didn't store it. Zero-session rows are now always excluded as a defensive final filter.
  • Also: Removed a dead-code lookup (local agg = members[name] immediately overwritten by agg = members[shortName]) in the legacy pairs(s.attendance) fallback path.
  • Also: When a character attended as an alt (linked to a main in the alt-management cache), the Player column now renders as Alt (Main) — for example Penbe (Nabsui) — so it's immediately obvious the player joined on an alt.

Persistent Guild Cache

  • New: The addon now snapshots the full guild roster (names, ranks, public notes, officer notes, class, level, GUID, rank permissions) to disk under db.global.guildCache and restores it on next login. Cache is keyed by guild name + cache schema version, so an unrelated guild's data won't be served. RefreshGuildCache now persists after every successful rebuild, and lastUpdate is now a real epoch timestamp (time()) instead of session-relative GetTime() seconds.
  • Globals: _G.LM_GuildCache, _G.LM_GetGuildMember(name), and _G.LM_IsGuildMember(name) are exposed so other addons can read guild data without re-scraping the roster.
  • Privacy: guildCache is intentionally excluded from the GUILD_DATA_KEYS allowlist used by config sharing, so officer notes and other cached fields are never broadcast when you share settings with another player.

Config Sharing — Alt Management Settings Not Synced

  • Fixed: When sharing addon settings with other officers, alt management configuration (enabled flag, EP percentage, alt→main links) was not included in the payload, causing alt lists to be lost on the receiving end.
  • Fix: Removed altManagement from CONFIG_SHARE_EXCLUDED in the ML module. Alt settings are now shared alongside all other configuration.