promotional bannermobile promotional banner

PullTimer (Multi)

A simple pull timer, break timer and ready check addon with profiles and custom options.

File Details

PullTimer v1.20

  • R
  • Apr 27, 2025
  • 205.65 KB
  • 33
  • 4.4.2

File Name

PullTimer.zip

Supported Versions

  • 4.4.2
General
  • Version Update: Updated addon version from 1.16 to 1.20 in PullTimer.toc.
  • New File Added: Added BreakTimer.lua to implement break timer functionality, enhancing raid coordination with configurable break timers.
  • TOC Update: Added BreakTimer.lua and Settings.lua to the list of loaded files in PullTimer.toc to support new features and maintain modularity.
PullTimer.toc
  • Changes:
    • Updated version number from 1.16 to 1.20.
    • Added Settings.lua and BreakTimer.lua to the file list to include new settings framework and break timer functionality.
    • No changes to dependencies or interface version (40402).
Core.lua
  • New Features:
    • Added support for break timer settings in the defaults table, including breakTimerEnabled, breakTimerPopoutVisible, breakTimerAnnounce, and breakTimerAnnounceChannel.
    • Introduced debug mode with a new debug setting in the defaults table, enabling verbose logging for troubleshooting.
    • Added new settings to the settingsConfig table:
      • BreakTimerCheckBox: Toggles break timer functionality.
      • BreakTimerAnnounceCheckBox: Enables/disables break timer announcements.
      • BreakTimerAnnounceChannelDropdown: Selects the announcement channel (RAID, PARTY, SAY).
      • DebugCheckBox: Toggles debug logging.
    • Added Minimal layout option to the LayoutDropdown settings, supporting a new compact UI layout.
  • Enhancements:
    • Improved backdrop updates with backdropUpdatePending flag to prevent multiple simultaneous updates, using C_Timer.After for smoother performance.
    • Enhanced UI refresh with uiUpdatePending flag to avoid redundant UI updates, also using C_Timer.After.
    • Added debug logging for settings initialization, including checks for SettingsFramework methods (Initialize, HandleProfileCreation, UpdateConfigPanel, UpdateProfilesPanel).
    • Updated OnPlayerLogin to display version 1.19 (likely a typo, as TOC indicates 1.20).
    • Improved minimap button tooltip with colored text and additional command information (/pulltimer and /pulltimer reset).
  • Bug Fixes:
    • Added fallback for missing LDBIcon library, with debug logging to report if LibDBIcon-1.0 is not found.
    • Enhanced HandleReset to reset new settings (debug, breakTimerEnabled, breakTimerPopoutVisible, breakTimerAnnounce, breakTimerAnnounceChannel).
  • Optimizations:
    • Consolidated UpdateBackdrop logic to handle both main frame and break timer popout frame, ensuring consistent appearance.
    • Improved RefreshUI to handle frame visibility more robustly, ensuring the frame is shown unless explicitly hidden.
Frame.lua
  • New Features:
    • Added break timer popout frame (BreakTimerPopoutFrame) with buttons for 3-minute, 5-minute, and 10-minute break timers.
    • Introduced arrow button to toggle the break timer popout visibility, with dynamic texture updates (UI-Panel-CollapseButton-Down or UI-Panel-CollapseButton-Up).
    • Added Minimal layout to the layout cache, with adjusted button positions for a compact single-row design.
  • Enhancements:
    • Refactored layout management into a ConfigureLayout function and layoutCache table for cleaner, more maintainable code.
    • Added UpdateButtonSizesAndFonts function to centralize button and input sizing/font logic, improving consistency across layouts.
    • Enhanced RefreshUI to dynamically position the break timer popout frame below the main frame.
    • Added debug logging for Minimal layout application, including frame size and button positions.
    • Improved visibility logic for UI elements when minimized, hiding all children except minimizeBtn and arrowButton.
  • Bug Fixes:
    • Fixed button positioning logic to use SetButtonPoint helper function, ensuring accurate placement across all layouts.
    • Corrected btnx button script to cancel both pull and break timers (CancelTimer and CancelBreakTimer).
  • Optimizations:
    • Consolidated button size and font updates into UpdateButtonSizesAndFonts, reducing redundant code.
    • Improved drag handling to save frame position only when moved, enhancing performance.
Timer.lua
  • Enhancements:
    • Improved CancelTimer to include remaining countdown time in the cancellation message for better user feedback.
    • Optimized button enabling/disabling logic by iterating over a button table, reducing code duplication.
  • Bug Fixes:
    • Removed redundant activeTimer check in CancelTimer, as the function already handles nil cases gracefully.
  • Optimizations:
    • Streamlined timer initialization by attaching functions directly to PullTimer object, maintaining modularity.
BreakTimer.lua (New File)
  • New Features:
    • Implemented StartBreakTimer and CancelBreakTimer functions to manage break timers (3m, 5m, 10m).
    • Added time formatting with FormatTime function for readable MM:SS display.
    • Integrated with COUNTDOWN and BREAK slash commands for compatibility with raid assist or DBM addons.
    • Supported break timer announcements in configurable channels (RAID, PARTY, SAY) with debug logging.
  • Enhancements:
    • Added fallback message if neither COUNTDOWN nor BREAK commands are available, prompting users to install raid assist or DBM.
    • Used C_Timer.NewTicker for precise second-by-second updates to the break timer display.
  • Optimizations:
    • Designed as a standalone module, attaching functions to PullTimer object to maintain modularity.
Settings.lua
  • New Features:
    • Added tooltip support for new settings (Debug Logging, Enable Break Timer, Announce Break Timer, Announce Channel) with descriptive hover text.
    • Introduced tooltip support for Frame Layout and Announce Channel dropdowns, providing detailed descriptions for each option.
  • Enhancements:
    • Improved SetTooltipScripts helper function to standardize tooltip creation across settings.
    • Enhanced CreateCustomSettings to include specific tooltips for new settings and dynamic tooltips for dropdown options.
    • Updated UpdateConfigPanel to handle new settings (BreakTimerCheckBox, BreakTimerAnnounceCheckBox, BreakTimerAnnounceChannelDropdown, DebugCheckBox).
    • Improved SetupDropdown helper function to streamline dropdown initialization and refresh.
  • Bug Fixes:
    • Fixed copy profile button to silently ignore invalid profiles instead of printing an error.
    • Corrected delete profile button to silently ignore invalid profiles, improving user experience.
  • Optimizations:
    • Consolidated tooltip logic into SetTooltipScripts, reducing code duplication.
    • Optimized dropdown updates in UpdateProfilesPanel using SetupDropdown, improving maintainability.