promotional bannermobile promotional banner

CEPGP LootMaster - ANADOLU [ML]

This is a helper addon to distribute from CEPGP Lootmaster - ANADOLU - Core addon while being Master Looter.

File Details

cepgp_lootmaster_ml-8.5.1.zip

  • R
  • Mar 22, 2026
  • 180.36 KB
  • 61
  • 2.5.5
  • Classic TBC

File Name

cepgp_lootmaster_ml-8.5.1.zip

Supported Versions

  • 2.5.5

Changes

8.5.1 β€” 2026-03-21

Roll Snapshot System

When an item is awarded, the addon now captures a full snapshot of all candidate responses at that moment and stores it with the loot history entry.

  • CaptureRollSnapshot(lootLink): Records all candidate responses with decided status (sort 401–1099) β€” stores name, class, response text, response color, roll, PR, and isEPGP flag. Sorted by response type, then PR (for EPGP) or roll (for random)
  • StoreRollSnapshot(itemLink, snapshot): Stores the snapshot in _pendingRollSnapshots, consumed by RecordLootHistoryEntry when the item is recorded to session history
  • Dice icon in loot history: Items with a saved roll snapshot show a clickable dice icon (🎲) in the history table. Clicking it opens the Roll Snapshot Viewer
  • ShowRollSnapshotViewer(item, itemDisplayName): Displays the recorded responses in the same "Roll SonuΓ§larΔ±" format used during live distribution β€” auto-converts old numeric response IDs to the new text/color format for backward compatibility
  • Persistent across sessions: Roll snapshots are saved with the loot history entry and survive /reload, logout, and session export/import

Auto-Trade System

Automated trading workflow for distributing items from the ML's bags to raid members.

  • AutoTradeItem(itemLink, candidate, forceFree): Finds the item in bags, initiates trade with the target player, places the item in the trade window, and handles completion
  • GP awareness: forceFree=true trades without GP charge; forceFree=false awards GP on completion
  • Trade distance check: Validates target is within interact range via CheckInteractDistance(unitID, 2) before initiating
  • Event-driven flow: Registers TRADE_SHOW (place item), TRADE_ACCEPT_UPDATE (track acceptance), TRADE_CLOSED (verify completion via bag contents comparison)
  • Auto-close existing trade: If a trade window is already open, closes it with CancelTrade() + 0.1s delay before starting the new trade

Trade Watch Alert System

Detects when awarded items are traded to other players and alerts the Master Looter.

  • AddToTradeWatchlist(itemLink, player, distributor): Tracks awarded items for 2 hours (WoW trade window limit), keyed by itemID
  • OnTradeWatchAccept: TRADE_ACCEPT_UPDATE handler that inspects trade slots 1–6 for watched items, sends "TRADEWATCH" whisper to the ML
  • ShowTradeWatchAlert(player, itemLink, target): Animated dark-red alert frame (380Γ—190px) at screen top β€” red border, 6Γ— red flash overlay (0.12s fade-in, 0.35s fade-out), warning icons, labeled fields for Player/Item/Traded-to
  • Dedup: _tradeWatchAlerted table prevents duplicate alerts for the same item+player combination
  • /lm testwatcher (or /lm tw): Simulates a trade watch alert locally for visual testing

Modern Loot Window β€” Settings Integration

Loot frame appearance is now fully configurable from the settings panel. All values persist in db.profile and apply on next frame open without /reload.

  • Getter functions: FrameWidth(), RowHeight(), IconSize(), VisibleRows() read from db.profile via GetSetting(key, default) helper
  • Appearance sliders (Loot Window settings group):
    • Frame Width (150–400px, default 210)
    • Row Height (20–60px, default 36)
    • Icon Size (16–48px, default 32)
    • Visible Rows (2–15, default 5)
  • Display toggles:
    • Show Binding Text (lootWindowShowBinding) β€” BoE/BoU indicator on item icon
    • Show Quantity Badge (lootWindowShowQuantity) β€” count badge on icon corner
    • Stack Duplicates (lootWindowStackDuplicates) β€” merge same-name items into single row with combined quantity
    • Word Wrap Names (lootWindowWordWrap) β€” allow item names to wrap to 2 lines
    • Show Loot All Button (lootWindowShowLootAll) β€” toggle bottom Loot All button
    • Require ML in Raid (lootWindowRequireMLRaid) β€” when enabled (default), modern loot frame only appears when you are Master Looter in a raid; disable to use everywhere (ML buttons still require ML + raid + active session)
  • Removed: showItemLevel setting and iLvl display β€” extra sub-text row eliminated

Modern Loot Window β€” Layout Overhaul

  • Sub-text row removed: The iLvl + binding sub-text (subFs) is gone β€” item name now fills the full row height, vertically centered (JustifyV("MIDDLE"))
  • Max 2 lines: Item names use SetMaxLines(2) with optional word wrap; long names truncate with ellipsis
  • BoE/BoU icon overlay: Binding indicator moved from sub-text to a 10pt OUTLINE font overlay (bindFs) at the icon's top-left corner β€” BoE in green (|cFF88FF88BoE|r), BoU in yellow (|cFFFFCC44BoU|r). BoP items show no indicator
  • Stack duplicates: When enabled, items with the same name merge into a single row with accumulated quantity and extraSlots tracking

Modern Loot Window β€” Mock Test Improvements

  • Always ML mode: /lm testloot now always opens in Master Looter mode β€” mockML = true unconditionally, no need to type /lm testloot ml
  • GetLootThreshold override: Mock mode saves and overrides GetLootThreshold to return 2 (Uncommon) via _real_GetLootThreshold, ensuring ML buttons appear on test items. Original restored on mock close

Test Loot Window Command

  • /lm testlootwindow (alias /lm tlw): Opens a test loot popup with realistic mock candidates using actual session data
  • Session Data Integration: Searches GetLootHistorySessions() for Karazhan sessions (or any session with attendance data), extracts player names and class files from session.attendance
  • 10-Player Limit: Caps at 10 candidates to match Karazhan's raid size for realistic testing
  • Response Cycling: Each candidate cycles through response types (NEED, GREED, OFFSPEC, MINORUPGRADE, PASS) for visual variety
  • Fallback Data: If no session history is found, uses placeholder test data with realistic names and classes
  • Uses Equipped Item: Tests with the player's currently equipped main-hand weapon (GetInventoryItemLink("player", 16))

Gated Print System

  • ML/Admin-only console output: LootMaster:Print() now suppresses messages for non-ML/non-admin players. The original AceConsole:Print is saved as _OriginalPrint and only called if the player is Master Looter, Root Admin, or Session Admin. Startup messages (before DB is loaded) always print

Minimap Menu Permission System

  • Per-item permission control: HasMinimapMenuPermission(menuKey) checks structured permission tables with guild, admin, and rank fields (OR logic β€” matching any enabled permission grants access)
  • Master Looter always has access to all menu items
  • Legacy compatibility: Handles old string-format permissions ("everyone", "admin", "guild", "rank")
  • RT integration: Raid Tools module checks HasMinimapMenuPermission before showing EPGP Ranks, EPGP History, and Session Bar items in the minimap right-click menu

Loot Frame Recording

  • GiveMasterLootAndRecord(): Wrapper around GiveMasterLoot() used by the modern loot frame's "Give to..." dropdown β€” captures item link, assigns loot, marks as sent (prevents double-recording by CHAT_MSG_LOOT listener), broadcasts LOOTED to raid, and records the entry as LOOTTYPE.FREE in session history

Bug Fixes

  • ChatFrameEditBox nil guard: The EPGP_LOGOUTPUT_POPUP dialog's OnHide callback no longer crashes on clients where the deprecated ChatFrameEditBox global doesn't exist
  • Removed /rl command: The global /rl (ReloadUI shortcut) registration was removed β€” all addon commands now use the /lm prefix exclusively
  • Fixed stale /lmtestloot references: Comments and print messages in the loot frame updated from old /lmtestloot to /lm testloot
  • Duplicate settings toggle removed: The useModernLootFrame toggle was removed from the loot_settings group β€” kept only in the loot_window group to avoid confusion

Locale Updates

  • New English strings: Loot Window settings (Frame Width, Row Height, Icon Size, Visible Rows, Display toggles), Roll Snapshot Viewer (Roll History, No roll data), Trade Watch alerts (TRADE WARNING, Player/Item/Traded-to labels), Trade completion messages
  • Turkish (trTR) translations: Full translation for all new settings β€” ASCII-only characters for maximum compatibility
  • German (deDE) translations: Matching translations for all new strings