├── .gitignore ├── Bindings.xml ├── CHANGELOG.txt ├── Changelog and Notes.txt ├── Leatrix_InputScrollFrameTemplate.xml ├── Leatrix_Plus.blp ├── Leatrix_Plus.lua ├── Leatrix_Plus.toc ├── Leatrix_Plus_Flight_Alliance.lua ├── Leatrix_Plus_Flight_Horde.lua ├── Leatrix_Plus_Library.lua ├── Leatrix_Plus_Locale.lua ├── Leatrix_Plus_Media.lua ├── Leatrix_Plus_Wrath.toc ├── README.md ├── assets ├── ROTATING-MINIMAPARROW.blp ├── minimapicon.tga └── ui-guildachievement-parchment-horizontal-desaturated.blp └── libs ├── CallbackHandler-1.0 ├── CallbackHandler-1.0.lua └── CallbackHandler-1.0.xml ├── LibCompat-1.0 ├── Backdrop │ ├── Backdrop.lua │ └── Backdrop.xml ├── LibCompat-1.0.lua ├── LibCompat-1.0.toc ├── Libs │ ├── CallbackHandler-1.0 │ │ └── CallbackHandler-1.0.lua │ ├── LibGroupTalents-1.0 │ │ ├── LibGroupTalents-1.0.lua │ │ ├── LibTalentQuery-1.0.lua │ │ └── lib.xml │ └── LibStub │ │ └── LibStub.lua ├── Templates.xml └── lib.xml ├── LibDBIcon-1.0 └── LibDBIcon-1.0.lua ├── LibDataBroker-1.1 ├── LibDataBroker-1.1.lua └── README.textile └── LibStub ├── LibStub.lua ├── LibStub.toc └── tests ├── test.lua ├── test2.lua ├── test3.lua └── test4.lua /.gitignore: -------------------------------------------------------------------------------- 1 | desktop.ini 2 | /.idea/.gitignore 3 | /.idea/discord.xml 4 | /.idea/icon.svg 5 | /.idea/Leatrix_Plus.iml 6 | /.idea/misc.xml 7 | /.idea/modules.xml 8 | /unitscan.blp 9 | /.idea/vcs.xml 10 | -------------------------------------------------------------------------------- /Bindings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SlashCmdList["Leatrix_Plus"]() 6 | 7 | 8 | 9 | 10 | SlashCmdList["Leatrix_Plus"]("id") 11 | 12 | 13 | 14 | 15 | SlashCmdList["Leatrix_Plus"]("ra") 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /CHANGELOG.txt: -------------------------------------------------------------------------------- 1 | 3.0.131 - 10th May 2023 2 | - Added flight times. 3 | 4 | 3.0.130 - 3rd May 2023 5 | - For 'Enhance tooltip' ('Interface'), fixed an issue with 'Hide health bar' which caused the health bar to not be hidden. 6 | - For 'Easy item destroy' ('System'), fixed an issue which caused a Lua error when clicking outside of the destroy confirmation. 7 | 8 | 3.0.129 - 25th April 2023 9 | - Added flight times. 10 | 11 | 3.0.128 - 22nd April 2023 12 | - Added flight times. 13 | 14 | 3.0.127 - 19th April 2023 15 | - Added flight times. 16 | - Fixed /run leaplus("quest ") functionality. 17 | 18 | 3.0.126 - 15th April 2023 19 | - Added flight times. 20 | 21 | 3.0.125 - 2nd April 2023 22 | - Added flight times. 23 | 24 | 3.0.124 - 31st March 2023 25 | - Added flight times. 26 | 27 | 3.0.123 - 27th March 2023 28 | - Added flight times. 29 | 30 | 3.0.122 - 26th March 2023 31 | - Added flight times. 32 | 33 | 3.0.121 - 23rd March 2023 34 | - Added flight times. 35 | 36 | 3.0.120 - 18th March 2023 37 | - Added flight times. 38 | 39 | 3.0.118 - 13th March 2023 40 | - Added flight times. 41 | 42 | 3.0.117 - 7th March 2023 43 | - Added flight times. 44 | 45 | 3.0.116 - 5th March 2023 46 | - Added flight times. 47 | 48 | 3.0.115 - 4th March 2023 49 | - Added flight times. 50 | 51 | 3.0.114 - 3rd March 2023 52 | - Added flight times. 53 | 54 | 3.0.113 - 2nd March 2023 55 | - Added flight times. 56 | 57 | 3.0.112 - 1st March 2023 58 | - Added flight times. 59 | 60 | 3.0.111 - 28th February 2023 61 | - Added flight times. 62 | 63 | 3.0.110 - 25th February 2023 64 | - Added flight times. 65 | 66 | 3.0.109 - 22nd February 2023 67 | - For 'Mute game sounds' ('System'), added new sounds to the 'Gyrocopters' setting (including Mimiron's Head). 68 | - Added flight times. 69 | 70 | 3.0.108 - 19th February 2023 71 | - Added flight times. 72 | 73 | 3.0.107 - 12th February 2023 74 | - Added flight times. 75 | 76 | 3.0.106 - 10th February 2023 77 | - Added flight times. 78 | 79 | 3.0.105 - 8th February 2023 80 | - Added flight times. 81 | 82 | 3.0.104 - 6th February 2023 83 | - Updated friend checking code for the options in the social menu to more closely match Dragonflight code. 84 | - For 'Recent chat window' ('Chat'), fixed an issue which caused texture atlases to break dragging and selecting messages. 85 | - For 'Show durability status' ('Interface'), fixed a bug which caused ranged weapons to be excluded. 86 | - Added flight times. 87 | 88 | 3.0.103 - 5th February 2023 89 | - Added flight times. 90 | 91 | 3.0.102 - 4th February 2023 92 | - For 'Mute game sounds' ('System'), you can now mute Rhonin. 93 | - For 'Hide chat buttons' ('Chat'), the text to speech configuration button will now be hidden. 94 | - Added flight times. 95 | 96 | 3.0.101 - 2nd February 2023 97 | - Fixed a minor issue with 'Show auction controls' ('Interface') which caused the 'Find Item' button to only show one page of results. 98 | - Added flight times. There are now 7954 flight times in Leatrix Plus for Wrath of the Lich King Classic. 99 | 100 | 3.0.100 - 30th January 2023 101 | - Updated 'Recent chat window' ('Chat') code and 'Show flight times' ('Interface') code. 102 | - Added flight times. 103 | 104 | 3.0.99 - 30th January 2023 105 | - Updated LibDBIcon. 106 | - Added flight times. 107 | 108 | 3.0.98 - 29th January 2023 109 | - Added flight times. 110 | 111 | 3.0.97 - 28th January 2023 112 | - Added flight times. 113 | 114 | 3.0.96 - 27th January 2023 115 | - Added flight times. 116 | 117 | 3.0.95 - 26th January 2023 118 | - Added flight times. 119 | 120 | 3.0.94 - 25th January 2023 121 | - Added flight times. 122 | 123 | 3.0.93 - 24th January 2023 124 | - Added flight times. 125 | 126 | 3.0.92 - 23rd January 2023 127 | - Added flight times. 128 | 129 | 3.0.91 - 22nd January 2023 130 | - Added flight times. 131 | 132 | 3.0.90 - 22nd January 2023 133 | - Updated the 'Login' setting code ('Mute game sounds') so that it works the same way as Dragonflight and Classic Era. 134 | - Fixed a situational Lua error with 'Automate quests' ('Automation'). 135 | - Added flight times. 136 | 137 | 3.0.89 - 21st January 2023 138 | - Added flight times. 139 | 140 | 3.0.88 - 20th January 2023 141 | - For 'Mute game sounds' ('System'), the 'Login' setting now mutes the login screen music too. 142 | - Added flight times. 143 | 144 | 3.0.87 - 19th January 2023 145 | - Fixed an issue with 'Resize quest text' ('Text') which caused gossip greeting panel scroll lists (such as city guard directions) to be shown outside of the gossip frame. If you use ElvUI, the 'Resize quest text' option will now be disabled if you have ElvUI Skins > Blizzard > Gossip Frame checked. 146 | - Added flight times. 147 | 148 | 3.0.86 - 19th January 2023 149 | - Fixed an issue with 'Enhance trainers' ('Interface') which may have caused the trainers frame to open alongside the gossip frame. 150 | - Added flight times. 151 | 152 | 3.0.85 - 19th January 2023 153 | - For 'Mute game sounds' ('System'), you can now mute login screen sounds. If checked, login screen sounds will be muted when you logout of the game. Note that login screen sounds will not be muted when you initially launch the game. They will only be muted when you logout of the game. This includes manually logging out as well as being forcefully logged out by the game server for reasons such as being away for an extended period of time. No more dragons roaring when you fall asleep while the game is running! 154 | - Added flight times. 155 | 156 | 3.0.84 - 18th January 2023 157 | - Added flight times. 158 | 159 | 3.0.83 - 18th January 2023 160 | - Updated for game version 3.4.1. 161 | - There are a lot of code changes in 3.4.1. 162 | - Due to problems with Blizzard's slash command system in 3.4.1, the /ltp command has been replaced with /run leaplus(). If you wish to pass a parameter, enter it in quotes between the brackets. 163 | - Added flight times. 164 | 165 | 3.0.82 - 16th January 2023 166 | - Added flight times. 167 | 168 | 3.0.81 - 14th January 2023 169 | - Added flight times. 170 | 171 | 3.0.80 - 12th January 2023 172 | - Added flight times. 173 | 174 | 3.0.79 - 11th January 2023 175 | - Added flight times. 176 | 177 | 3.0.78 - 8th January 2023 178 | - Added a new option called 'Mute custom sounds' ('System'). You can enter sound file IDs (separated by comma) along with a brief note describing each ID in the configuration panel editbox. After that, click the Mute button and you will never hear the sounds again. For example, entering 'DevAura 569679, RetAura 568744' will mute both aura sounds. Read the help button tooltip for more details. 179 | - For 'Show train all button' ('Interface'), the train all button now has a global name of LeaPlusGlobalTrainAllButton. 180 | - Added flight times. 181 | - PTR (3.4.1): Fixed the Lua error when logging into the PTR. 182 | 183 | 3.0.77 - 4th January 2023 184 | - Added flight times. 185 | 186 | 3.0.76 - 2nd January 2023 187 | - For 'Filter chat messages' ('Chat'), the 'Block spell links during combat' setting now also applies to the yell channel. 188 | - Added flight times. 189 | 190 | 3.0.75 - 31st December 2022 191 | - Added flight times. 192 | 193 | 3.0.74 - 27th December 2022 194 | - Added flight times. 195 | 196 | 3.0.73 - 24th December 2022 197 | - Added flight times. 198 | 199 | 3.0.71 - 23rd December 2022 200 | - Added flight times. There are now 7393 flight times in Leatrix Plus for Wrath of the Lich King Classic. 201 | 202 | 3.0.70 - 21st December 2022 203 | - Added flight times. 204 | 205 | 3.0.69 - 19th December 2022 206 | - Added flight times. 207 | 208 | 3.0.68 - 16th December 2022 209 | - Added flight times. 210 | 211 | 3.0.67 - 13th December 2022 212 | - Added flight times. 213 | 214 | 3.0.66 - 10th December 2022 215 | - Added flight times. 216 | 217 | 3.0.65 - 8th December 2022 218 | - Added flight times. 219 | 220 | 3.0.64 - 5th December 2022 221 | - Added flight times. 222 | 223 | 3.0.63 - 2nd December 2022 224 | - Added flight times. 225 | 226 | 3.0.62 - 30th November 2022 227 | - For 'Enhance minimap' ('Interface'), the 'Combine addon buttons' setting now supports the Armory addon. 228 | - Added flight times. 229 | 230 | 3.0.61 - 27th November 2022 231 | - 3.4.1: For 'Automate gossip' ('Automation'), replaced the (now removed) NPC types with NPC IDs. 232 | - Added flight times. 233 | 234 | 3.0.60 - 23rd November 2022 235 | - Updated for game version 3.4.1 (currently on the PTR). This is a major update as there are a lot of code changes in 3.4.1. 236 | - These options have been updated for 3.4.1: Automate quests, Automate gossip, Sell junk automatically, Resize quest text, Resize mail text, Resize book text, Hide chat buttons, Restore chat messages and Show flight times. 237 | - In 3.4.1, it's no longer possible to automatically skip gossip based on NPC type (such as banker or battlemaster). 238 | - In 3.4.1, Blizzard's slash command system causes errors (just like retail) so /ltp has been replaced with /run leaplus() (just like retail). When Blizzard fixes their slash command system, the /ltp slash command will return. 239 | - Added flight times. 240 | 241 | 3.0.59 - 22nd November 2022 242 | - Updated 'Sell junk automatically' ('Automation') internal code. 243 | - Fixed a rare and situational Lua error with 'Restore chat messages' ('Chat'). 244 | 245 | 3.0.58 - 22nd November 2022 246 | - Added flight times. 247 | 248 | 3.0.57 - 18th November 2022 249 | - Added flight times. 250 | 251 | 3.0.56 - 16th November 2022 252 | - Fixed the profession frames. 253 | - Added flight times. 254 | 255 | 3.0.55 - 16th November 2022 256 | - Due to problems with Blizzard's code in Wrath of the Lich King Classic, the taller quest log setting (part of 'Enhance quest log') has been removed. 257 | - Updated LibDBIcon, LibChatAnims and LibCandyBar. 258 | - Added flight times. 259 | 260 | 3.0.54 - 14th November 2022 261 | - Added flight times. 262 | 263 | 3.0.53 - 10th November 2022 264 | - Added flight times. 265 | 266 | 3.0.52 - 9th November 2022 267 | - Added flight times. 268 | 269 | 3.0.51 - 7th November 2022 270 | - If you use the Glass addon, some chat settings will now be locked out of Leatrix Plus in order to ensure that the addon loads correctly. 271 | - Added flight times. 272 | 273 | 3.0.50 - 6th November 2022 274 | - For addon authors, the enhanced minimap combined button frame now has a global reference of LeaPlusGlobalMinimapCombinedButtonFrame. 275 | - Added flight times. 276 | 277 | 3.0.49 - 5th November 2022 278 | - Added flight times. 279 | 280 | 3.0.48 - 2nd November 2022 281 | - Added flight times. 282 | 283 | 3.0.47 - 31st October 2022 284 | - Added flight times. 285 | 286 | 3.0.46 - 29th October 2022 287 | - Added flight times. 288 | 289 | 3.0.45 - 28th October 2022 290 | - Added flight times. 291 | 292 | 3.0.44 - 27th October 2022 293 | - Added flight times. 294 | 295 | 3.0.43 - 26th October 2022 296 | - Added flight times. 297 | 298 | 3.0.42 - 25th October 2022 299 | - Added flight times. 300 | 301 | 3.0.41 - 24th October 2022 302 | - Added flight times. 303 | 304 | 3.0.40 - 23rd October 2022 305 | - Added flight times. 306 | 307 | 3.0.39 - 22nd October 2022 308 | - If you use 'Show flight times' ('Interface') with ElvUI, the flight progress bar will now use ElvUI style. 309 | - Added flight times. 310 | 311 | 3.0.38 - 21st October 2022 312 | - Having ElvUI installed will no longer uncheck conflicting option checkboxes. Conflicting option checkboxes will still be locked but they won't be unchecked. So if a conflicting option checkbox was checked before installing ElvUI or before enabling a conflicting ElvUI module, it will still be checked after disabling ElvUI or disabling the conflicting ElvUI module. 313 | - Added flight times. 314 | 315 | 3.0.37 - 20th October 2022 316 | - Added a new option 'Manage vehicle' ('Frames') which will allow you to move and scale the vehicle seat indicator frame. 317 | - For 'Mute game sounds' ('System'), you can now mute broom mount sounds. 318 | - Added flight times. 319 | 320 | 3.0.36 - 19th October 2022 321 | - Added flight times. 322 | 323 | 3.0.35 - 18th October 2022 324 | - Added flight times. 325 | 326 | 3.0.34 - 17th October 2022 327 | - For 'Show flight times' text to speech, the speech volume will now be set to the game master volume slider and the option is now disabled by default. 328 | - For 'Automate quests' ('Automation'), quests from Lillehoff (The Sons of Hodir Quartermaster, The Storm Peaks) will not be selected, accepted or turned-in automatically if you are exalted with Sons of Hodir. 329 | - Added flight times. 330 | 331 | 3.0.33 - 16th October 2022 332 | - For 'Show flight times', you can now have the remaining time spoken to you using text to speech. The time will be announced once a minute and at 30 seconds, 20 seconds and 10 seconds. This setting is enabled by default. 333 | - Fixed a minor issue with LibCandyBar. 334 | - Added flight times. 335 | 336 | 3.0.32 - 15th October 2022 337 | - Fixed 'Use class colors in chat' ('Chat') for game version 3.4.0.46158. 338 | - Added a flight time. 339 | 340 | 3.0.31 - 15th October 2022 341 | - Added flight times. 342 | 343 | 3.0.30 - 14th October 2022 344 | - Update for 'Enhance dressup' ('Interface') and ElvUI WrathArmory plugin. 345 | - Added flight times. 346 | 347 | 3.0.29 - 12th October 2022 348 | - Added flight times. 349 | 350 | 3.0.28 - 11th October 2022 351 | - For 'Mute game sounds' ('System'), you can now make Netherdrakes quieter. 352 | - Added flight times. 353 | - Removed references to instance chat. 354 | 355 | 3.0.27 - 10th October 2022 356 | - Added flight times. 357 | 358 | 3.0.26 - 9th October 2022 359 | - For 'Sell junk automatically' ('Automation'), white items entered in the exclusions editbox will be sold automatically. Junk items entered in the editbox will not be sold automatically (as before). 360 | - Added flight times. 361 | 362 | 3.0.25 - 8th October 2022 363 | - Added flight times. 364 | 365 | 3.0.24 - 7th October 2022 366 | - Fixed 'Mute travelers' so that it applies to Gnimo too. Gnimo sounds are shared with mechstrider wound sounds so now enabling either mute travelers or mute mechstriders will mute the mechstrider wound sounds. 367 | - Added flight times. 368 | 369 | 3.0.23 - 6th October 2022 370 | - For 'Mute game sounds' ('System'), you can now mute travelers, bikes and mechanical guild vaults. 371 | - For 'Show minimap icon', some of the modified clicks have changed. Read the option tooltip for more details. 372 | - The minimap button control-alt-click to toggle maximised windowed mode now runs much faster. 373 | - Added flight times. 374 | 375 | 3.0.22 - 5th October 2022 376 | - Added flight times. 377 | 378 | 3.0.21 - 4th October 2022 379 | - Added flight times. 380 | 381 | 3.0.20 - 3rd October 2022 382 | - Added flight times. 383 | 384 | 3.0.19 - 2nd October 2022 385 | - Added flight times. 386 | 387 | 3.0.18 - 2nd October 2022 388 | - Added flight times. 389 | 390 | 3.0.17 - 1st October 2022 391 | - For 'Show flight times', you can now set the flight progress bar background to fill instead of drain. 392 | - Added flight times. There are more addon releases at the moment to make sure that everyone gets the latest flight times that have been submitted by thousands of Leatrix Plus users since Wrath's release. Thank you everyone for your contributions. 393 | 394 | 3.0.16 - 1st October 2022 395 | - If 'Automate gossip' ('Automation') is enabled, the gossip from the engineer auction house robots in Dalaran will be skipped. 396 | - Added flight times. 397 | 398 | 3.0.15 - 30th September 2022 399 | - Added flight times. 400 | 401 | 3.0.14 - 30th September 2022 402 | - Changes to file structure. 403 | - Added flight times. 404 | 405 | 3.0.13 - 29th September 2022 406 | - Added lots and lots of flight times. There are now 4378 flight times stored in Leatrix Plus for Wrath Classic. 407 | 408 | 3.0.12 - 28th September 2022 409 | - Added lots and lots of flight times. There are now 4275 flight times stored in Leatrix Plus for Wrath Classic. 410 | 411 | 3.0.11 - 28th September 2022 412 | - Added lots and lots of flight times. There are now 4122 flight times stored in Leatrix Plus for Wrath Classic. 413 | 414 | 3.0.10 - 28th September 2022 415 | - For 'Automate gossip' ('Automation'), stable master gossip will now be skipped as long as there are no other gossip options. You can hold shift to prevent this. 416 | - Added Wrath of the Lich King main title music (media > various > main titles). 417 | - Added lots and lots of flight times. There are now 4003 flight times stored in Leatrix Plus for Wrath Classic. 418 | 419 | 3.0.09 - 27th September 2022 420 | - Added a new option 'Restore chat messages' ('Chat'). If enabled, you can reload your UI without losing your recent chat messages. 421 | - Added a new option 'Block shared quests' ('Social'). If enabled, shared quests will be automatically declined unless the player sharing the quest is a friend. 422 | - Added lots and lots of flight times. There are now 3845 flight times stored in Leatrix Plus for Wrath Classic. 423 | 424 | 3.0.08 - 21st September 2022 425 | - For 'Mute game sounds' ('System'), you can now mute the Arcanite Ripper guitar sound. 426 | - For 'Manage buffs' ('Frames'), fixed an issue which caused buff icons to overlap each other at higher scale values. The scale slider will now affect the consolidated buff icon too. 427 | - Added lots of flight times. There are now 3726 flight times stored in Leatrix Plus for Wrath Classic. 428 | 429 | 3.0.07 - 14th September 2022 430 | - For 'Enhance tooltip' ('Interface'), if you use the setting to hide tooltips for world units during combat, you can now specify whether holding shift should override that setting or not. Also some locale updates. 431 | - For 'Show flight times' ('Interface'), the flight progress bar will no longer show if you are in combat when you attempt to take a flight. A few seconds into the flight, there is an additional check to make sure you are actually on the taxi. If you are not, the flight progress bar will be hidden. 432 | - For 'Enhance quest log' ('Interface'), fixed a minor issue which quest list alignment. 433 | - Added lots of flight times. There are now 3657 flight times stored in Leatrix Plus for Wrath Classic. 434 | 435 | 3.0.05 - 7th September 2022 436 | - For 'Enhance questlog', there is a new setting in the configuration panel to show a toggle headers button. It's enabled by default. The toggle headers button allows you to collapse and expand all quest headers in one click. 437 | - Added lots of flight times. There are now 3590 flight times stored in Leatrix Plus for Wrath Classic. 438 | 439 | 3.0.04 - 4th September 2022 440 | - For 'Automate quests', Darkmoon Faire repeatable quests will now be automated for English game clients if you have the required materials in your bag. 441 | - For 'Enhance minimap', fix for the square minimap mail icon overlapping the tracking icon. 442 | 443 | 3.0.03 - 4th September 2022 444 | - For 'Enhance quest log', quest level and difficulty will now be shown in the quest detail pane once again for quests that are in your quest log. Added a new setting to show the quest difficulty in the quest log list. 445 | - For 'Enhance professions', fix for intermittent horizontal bar showing in the professions frame. 446 | - For 'Enhance minimap', fix for the heroic instance difficulty badge to not move with the minimap. 447 | - Added lots of flight times. There are now 3572 flight times stored in Leatrix Plus for Wrath Classic. 448 | 449 | 3.0.02 - 31st August 2022 450 | - For 'Enhance quest log' ('Interface'), there is a new setting that lets you choose whether the quest log should be taller or not. 451 | - Fix for 'Enhance minimap' calendar button #2. 452 | - Added some flight times. There are now 3541 flight times stored in Leatrix Plus for Wrath Classic. 453 | 454 | 3.0.01 - 31st August 2022 455 | - Added a new option 'Manage durability' ('Frames'). If enabled, you can move and scale the armored man durability frame. 456 | - Fixed an issue with 'Enhance minimap' missing calendar button. 457 | - Fixed an issue with 'Enhance quest log' incorrect quest title. 458 | - Added some flight times. There are now 3539 flight times stored in Leatrix Plus for Wrath Classic. 459 | 460 | 3.0.00 - 29th August 2022 461 | - Welcome to Wrath of the Lich King! 462 | - Removed BCC transitional code. 463 | - Added a new option called 'Manage timer' ('Frames'). The 'Manage frames' option no longer includes the timer bar. 464 | - For 'Enhance minimap' ('Interface'), added a new setting that will allow you to adjust the minimap cluster scale without it affecting the minimap scale. 465 | - Removed the 'Hide the clock' setting (part of 'Enhance minimap') and the 'Show free bag slots' setting as they are now both included in the default UI (interface settings display menu). 466 | - Tweaks to the ElvUI locks. 467 | - Added a few flight times. There are now 3521 flight times stored in Leatrix Plus for Wrath Classic. 468 | 469 | 2.5.120 - 24th August 2022 470 | - The 'Hide action button text' option ('Text') is now two options - 'Hide keybind text' and 'Hide macro text'. 471 | - For 'Show flight times' ('Interface'), you can now control whether flight report windows are shown using a new setting in the configuration panel. 472 | - If you use ElvUI, Leatrix Plus options which are not compatible with specific ElvUI modules will now be disabled and locked while those ElvUI modules are enabled. The option tooltip will tell you which ElvUI module is causing the Leatrix Plus option to be disabled. Disabling the relevant ElvUI module will make the Leatrix Plus setting available again. 473 | - Fixed a minor issue with 'Show Wowhead links' ('Interface') and Questie which sometimes caused the quest link to not be updated. 474 | - Wrath: For 'Enhance quest log' ('Interface'), quest levels are now shown in the quest details pane in addition to the quest list. 475 | - Added lots and lots of flight times. There are now 3515 flight times stored in Leatrix Plus for BCC and Wrath Classic. 476 | 477 | 2.5.119 - 17th August 2022 478 | - Wrath: Added a new option 'Hide alerts' ('Frames'). If checked, alert frames will not be shown. When you earn an achievement, a message will be shown in chat instead (just like retail). 479 | - Wrath: Added Northrend zone and dungeon music to the media section. Most of the dungeon tracks are sound kits. 480 | - Wrath: For 'Accept resurrection' ('Automation'), you will not accept a resurrection request automatically if you are in the Thaddius fight (Naxxramas) and someone in your group has a positive or negative charge. 481 | - For 'Show flight times' ('Interface'), the flight progress bar will now always hide when you land. The flight report window will now show if the minimum time difference between the saved flight time and the actual flight time is 15 seconds (up from 5). 482 | - Fixed a minor issue with 'Show cooldowns' ('Interface') which caused buff spell IDs to show in debuff tooltips. 483 | - Added a massive number of flight times. There are now 3476 flight times stored in Leatrix Plus for BCC and Wrath Classic. 484 | 485 | 2.5.118 - 10th August 2022 486 | - Updated for Wrath of the Lich King Beta. 487 | - Wrath: Show Wowhead links (Interface) will now show achievement links as well as quest links. 488 | - Wrath: Show druid power bar is disabled since it's now included in the default UI. 489 | - If you use 'Automate quests' ('Automation') with a Mac, you can now assign the override key to be the command key if you wish. 490 | - Added a massive number of flight times. There are now 2959 flight times stored in Leatrix Plus for BCC and Wrath Classic. 491 | - For Wrath, it's best to use alpha releases during Wrath Beta/prepatch so that you get the latest development updates. To switch to alpha releases, open CurseForge App, right-click Leatrix Plus in your Wrath addon listing and change release type to Alpha. You can change it back to Release once Wrath is live for everyone. 492 | 493 | 2.5.117 - 3rd August 2022 494 | - Added lots of flight times. There are now 2551 flight times stored in Leatrix Plus for BCC. 495 | - Leatrix Plus will be updated for Wrath Classic in August 2022. 496 | 497 | 2.5.116 - 27th July 2022 498 | - For 'Enhance minimap', added a new setting to hide the tracking button while the pointer is not over the minimap. The clock and zone text bar will now be shown on top when using square minimap. Some structural changes to the code. 499 | - Added lots of flight times. There are now 2530 flight times stored in Leatrix Plus for BCC. 500 | - Leatrix Plus will now attempt to run on Wrath Beta but note that it hasn't been tested and there are no Wrath features yet. 501 | 502 | 2.5.115 - 20th July 2022 503 | - Removed the compatibility fix for ClassicCodex addon. 504 | - Added lots of flight times. There are now 2507 flight times stored in Leatrix Plus for BCC. 505 | 506 | 2.5.114 - 13th July 2022 507 | - For 'Enhance tooltip' ('Interface'), there is a new setting to hide the health bar. It's disabled by default. 508 | - Added lots of flight times. There are now 2492 flight times stored in Leatrix Plus for BCC. 509 | 510 | 2.5.113 - 6th July 2022 511 | - Added lots of flight times. There are now 2473 flight times stored in Leatrix Plus for BCC. 512 | 513 | 2.5.112 - 29th June 2022 514 | - In the game key bindings menu, you can now set a keybind to announce rares in chat. Target a creature, press your keybind and detals of your target will be shown in the General chat channel. These details include your target's name, health percentage remaining and coordinates. 515 | - Added lots of flight times. There are now 2455 flight times stored in Leatrix Plus for BCC. 516 | 517 | 2.5.111 - 22nd June 2022 518 | - In the game key bindings menu, you can now set a keybind to show a web link for whatever your pointer is over (as long as it has a tooltip). For example, if you have an item in your bag and you don't know what it's for, hover your pointer over it so the item tooltip shows up then press your defined hotkey. A Wowhead link will show in a copy-friendly window. Press CTRL/C to copy the link then paste it into your browser. 519 | - In the game key bindings menu, you can now set a keybind to toggle Leatrix Plus. The 'Enable hotkey' command has been removed. 520 | - The '/ltp id' command now runs the web link keybind function so if you don't want to set a keybind, you can enter '/ltp id' instead. 521 | - Added lots of flight times. There are now 2431 flight times stored in Leatrix Plus for BCC. 522 | 523 | 2.5.110 - 15th June 2022 524 | - The 'Manage frames', 'Manage buffs', 'Manage widget' and 'Manage focus' settings ('Frames') now show a frame alignment grid when moving the frames (there is a button in each configuration panel to toggle the grid). You can now drag the frames with the left button to position them freely or with the right button to position them using snap-to-grid. 525 | - Added lots of flight times. There are now 2416 flight times stored in Leatrix Plus for BCC. 526 | 527 | 2.5.109 - 8th June 2022 528 | - For 'Show flight times', you can now change the position, scale and width of the flight progress bar using a new configuration panel. You can also remove the progress bar background and destination text if you wish. The flight progress bar is now noninteractive so you can click through it as if it isn't there. If you wish to manually close the flight progress bar, there is a new Close Bar button in the configuration panel. These new settings give you a lot of customisation options. For example, if you set the width to the minimum, hide the background and hide the destination, you can have a neat little flight timer in the corner of the screen. 529 | - Added lots of flight times. There are now 2402 flight times stored in Leatrix Plus for BCC. 530 | 531 | 2.5.108 - 1st June 2022 532 | - For 'Enhance trainers' ('Interface'), you can now disable the train all skills button if you wish using a new setting in the configuration panel. 533 | - For 'Mute game sounds' ('System'), the 'Mechstriders' setting will no longer mute mechanostrider footstep sounds. There is a new setting called 'Mechsteps' that will mute footstep sounds for mechanical mounts. 534 | - Added lots of flight times. There are now 2383 flight times stored in Leatrix Plus for BCC. 535 | 536 | 2.5.107 - 25th May 2022 537 | - Added a new option 'Show ready timer' ('Interface'). If checked, a timer will be shown under the PvP encounter ready frame so that you know how long you have left to click the enter button. 538 | - Added lots of flight times. There are now 2359 flight times stored in Leatrix Plus for BCC. 539 | 540 | 2.5.106 - 18th May 2022 541 | - For 'Enhance quest log' ('Interface'), the quest log is now taller. 542 | - For 'Enhance professions' ('Interface'), the professions frame is now taller. 543 | - For 'Enhance trainers' ('Interface'), the skill trainer frame is now taller. Also fixed a cosmetic bug with the position of the beast training cost column. 544 | - If you are using ElvUI, 'Show Wowhead links' ('Interface') will now place links inside the quest log frame rather than above it. For 'Enhance professions', the search box and 'Have materials' checkbox have been repositioned. 545 | - Added some flight times. There are now 2340 flight times stored in Leatrix Plus for BCC. 546 | 547 | 2.5.105 - 12th May 2022 548 | - Corrected a very popular flight route and added flight times. There are now 2329 flight times stored in Leatrix Plus for BCC. 549 | 550 | 2.5.104 - 12th May 2022 551 | - For 'Sell junk automatically' ('Automation'), you can now exclude specific junk items from being sold. There is an exclusion list in the configuration panel where you can enter your own item IDs (separated by commas). Item IDs will be shown in item tooltips while the configuration panel is showing. 552 | - If you try to use 'Enhance minimap' ('Interface') and ElvUI Minimap together, you will now be asked which one you want to use on startup. Choosing Leatrix Plus will disable ElvUI's minimap module. Choosing ElvUI will disable Leatrix Plus 'Enhance minimap' setting. 553 | - Added flight times. There are now 2326 flight times stored in Leatrix Plus for BCC. 554 | 555 | 2.5.103 - 5th May 2022 556 | - Added lots of flight times. There are now 2314 flight times stored in Leatrix Plus for BCC. 557 | 558 | 2.5.102 - 27th April 2022 559 | - Added lots of flight times. There are now 2295 flight times stored in Leatrix Plus for BCC. 560 | 561 | 2.5.101 - 20th April 2022 562 | - Added lots of flight times. There are now 2265 flight times stored in Leatrix Plus for BCC. 563 | 564 | 2.5.100 - 13th April 2022 565 | - For 'Enhance minimap' ('Interface'), if you use 'Hide addon buttons' or 'Combine addon buttons' but you want some buttons to remain visible around the minimap, you can now do so using a new 'Buttons' editor in the configuration panel. Just follow the directions in the Help button. The 'Exclude BugSack' setting has been removed since you can now add BugSack to the 'Buttons' panel to achieve the same result. 566 | - Added lots of flight times. There are now 2180 flight times stored in Leatrix Plus for BCC. 567 | 568 | 2.5.99 - 6th April 2022 569 | - Fixed an issue with 'Show bag search box' ('Interface') which caused a Lua error after opening a guild bank. 570 | - Added flight times. There are now 2105 flight times stored in Leatrix Plus for BCC. 571 | 572 | 2.5.98 - 6th April 2022 573 | - The 'Enhance dressup' option now shows a toggle stats button in the character frame. You can either click this button or middle-click the character frame to toggle stats. For new Leatrix Plus users, stats are now shown by default. 574 | - Added lots of flight times. There are now 2102 flight times stored in Leatrix Plus for BCC. 575 | 576 | 2.5.97 - 30th March 2022 577 | - If 'Enhance trainers' ('Interface') is enabled, a 'Train All' button will now be shown in the skill trainer frame allowing you to train all available skills in one click. 578 | - Added a compatibility fix for 'Enhance professions' when using the 'Classic Profession Filter' addon so that you can see the search box in the craft frame (used for enchanting). 579 | - Added lots of flight times. There are now 2075 flight times stored in Leatrix Plus for BCC. 580 | 581 | 2.5.96 - 25th March 2022 582 | - Fixed an issue with 'Enhance professions' ('Interface') which caused the new search box to be obscured. 583 | - Added lots of flight times. There are now 2051 flight times stored in Leatrix Plus for BCC. 584 | 585 | 2.5.95 - 23rd March 2022 586 | - Updated for game version 2.5.4. 587 | - Added lots of flight times. There are now 2035 flight times stored in Leatrix Plus for BCC. 588 | - Updated the '/ltp ra' rare announcement message. 589 | - For 'Enhance tooltip', removed the setting to show tooltip backdrops in faction color. 590 | 591 | 2.5.94 - 9th March 2022 592 | - Added lots of flight times. There are now 1994 flight times stored in Leatrix Plus for BCC. 593 | 594 | 2.5.93 - 2nd March 2022 595 | - Added lots of flight times. There are now 1980 flight times stored in Leatrix Plus for BCC. 596 | 597 | 2.5.92 - 23rd February 2022 598 | - Added lots of flight times. There are now 1971 flight times stored in Leatrix Plus for BCC. 599 | 600 | 2.5.91 - 16th February 2022 601 | - For 'Enhance minimap' ('Interface'), added a new setting 'Show who pinged'. It's enabled by default. Note that this does not apply to your own pings. 602 | - For 'Mute game sounds' ('System'), added 'A'dal'. This will mute A'dal in Shattrath City. 603 | - Added lots of flight times. There are now 1952 flight times stored in Leatrix Plus for BCC. 604 | 605 | 2.5.90 - 9th February 2022 606 | - Added lots of flight times. There are now 1932 flight times stored in Leatrix Plus for BCC. 607 | - Added 'Screech' to 'Mute game sounds' ('System'). This is a spell used by some flying pets. 608 | - Added 'Striders' to 'Mute game sounds' ('System'). This will mute mechanostrider mounts. 609 | 610 | 2.5.89 - 3rd February 2022 611 | - Added lots of flight times. There are now 1908 flight times stored in Leatrix Plus for BCC. 612 | 613 | 2.5.88 - 26th January 2022 614 | - If 'Automate quests' ('Automation') is enabled, you can now set the override key to be shift, alt or control. Repeatable battlemaster and cloth quartermaster quests no longer require the alt key to be held. 615 | - For 'Mute game sounds' ('System'), the 'Chimes' setting will now mute the Ironforge hourly horn sound. 616 | - Added lots of flight times. Keep reporting. Every little helps. There are now 1868 flight times stored in Leatrix Plus for BCC. 617 | - If you use ItemRack alongside 'Enhance minimap' with 'Combine addon buttons' enabled, the ItemRack minimap button flyout menu will remain visible as long as the mouse pointer is over it. 618 | 619 | 2.5.87 - 19th January 2022 620 | - Fixed the textures for 'Enhance professions' ('Interface'). 621 | 622 | 2.5.86 - 19th January 2022 623 | - Updated for game version 2.5.3. 624 | - Added lots more flight times. Keep reporting until there's none left to report. Some minor tweaks to flight point tooltips. 625 | - The 'Faster auto loot' option ('System') will now work with TSM Destroy. You no longer need to disable faster auto loot when using TSM Destroy. 626 | 627 | 2.5.85 - 13th January 2022 628 | - Added lots of flight times. Keep reporting. 629 | 630 | 2.5.84 - 9th January 2022 631 | - For 'Show flight times' ('Interface'), added support for odd flight points (such as Altar of Sha'tar). 632 | 633 | 2.5.83 - 9th January 2022 634 | - The 'Show flight times' option ('Interface') now supports multiple flight routes to the same destination. So it will work regardless of how many flight points you have unlocked. Due to the code changes to include multiple routes, some of the submitted flight times could not be added. Please report them again when you see the report window again. 635 | 636 | 2.5.82 - 5th January 2022 637 | - The 'Show flight times' option ('Interface') now works with any locale without the need for translations. Added lots of missing flight times. After landing from a flight, if the saved flight time is missing or incorrect (greater than 5 second difference), you will see a copy-friendly window with the flight details making it very easy for you to report the missing or incorrect flight time. 638 | 639 | 2.5.81 - 29th December 2021 640 | - You need to restart your game client after installing this update. 641 | - Added a new setting 'Show flight times' ('Interface'). If enabled, a flight time progress bar will be shown when you take a flight and travel times will be shown in the flight point tooltips (note: only for flight times that Leatrix Plus is aware of). For the time being, all flight times (whether known or not) will be printed in chat when you land so that you can report inaccurate or missing flight times (there are some of both). If a flight ends before or after the progress bar has reached zero, report the flight time printed in chat and the times will be updated. You can report at github.com/leatrix or you can send a message to leatrix on CurseForge. If you're using the 'Recent chat window' setting ('Chat'), you can use that to copy the text from chat for your report. For non-English locales, the progress bar and flight times will only be shown if the start and end flight point names have been translated. If you want to help with translations to solve that issue, send a message to leatrix on CurseForge. 642 | 643 | 2.5.80 - 22nd December 2021 644 | - If 'Combine addon buttons' ('Enhance minimap)' is enabled, addon button tooltips will no longer show together with game tooltips. Non-standard buttons are now always replaced with LibDBIcon buttons so the 'Replace non-standard buttons' setting has been removed. In addition, non-standard buttons will (for now) be described as such in the button tooltips. You can now set the cluster scale again (note that adjusting the cluster scale has side effects so read the setting tooltip). Method Raid Tools now has a standard LibDBIcon (though it's based on the original, custom icon). If you come across any addons that aren't given a standard icon, please let me know. 645 | 646 | 2.5.79 - 18th December 2021 647 | - If 'Combine addon buttons' ('Enhance minimap)' is enabled, addon button tooltips will now be shown under the minimap so as not to clutter the button frame. This should work with most addon buttons. Fixed a potential issue with addons using non-standard buttons that may have been caused Leatrix Plus not to load correctly. 648 | 649 | 2.5.78 - 17th December 2021 650 | - Fixed a situational issue with 'Replace non-standard buttons' for 'Enhance minimap' ('Interface') creating unintended minimap buttons. 651 | 652 | 2.5.75 - 16th December 2021 653 | - Added a new option 'Filter chat messages' ('Chat'). If enabled, you can block spell links in combat (useful for blocking spell interrupt spam), drunken spam (if it doesn't apply to your character) and duel victory and retreat spam (if you didn't take part in the duel). 654 | - Added a new slider setting to 'Enhance minimap' ('Interface') called 'Square size' which allows you to adjust the square minimap size (up to 400%). While the scale slider makes the minimap and all the elements bigger, the size slider makes the minimap bigger but keeps all the elements the same size. If you are using the square minimap, you can use either the scale slider or the size slider or a combination of the two. The configuration panel reset button will not reset settings that require a UI reload. Added a new setting called 'Replace non-standard buttons'. Most addons use the standard LibDBIcon library for their minimap buttons but a few addons use non-standard buttons instead. The new setting will replace any non-standard buttons with LibDBIcon buttons. This will solve the problems with non-standard buttons such as not hiding automatically, not following the minimap shape and not being placed in the button frame. Added a new setting called 'Exclude BugSack' which will keep the BugSack addon minimap button visible if you have BugSack installed and the minimap button enabled. 655 | - Updated the tooltips for 'Manage frames' and 'Manage focus' ('Frames'). 656 | 657 | 2.5.74 - 9th December 2021 658 | - Fixed a few default UI minimap button locations for 'Enhance minimap' ('Interface') when using the square minimap. 659 | 660 | 2.5.73 - 8th December 2021 661 | - Added some new settings to 'Enhance minimap' ('Interface'). 'Square minimap' changes the minimap shape to a square. 'Hide addon buttons' hides addon buttons automatically while the pointer is not over the minimap. 'Combine addon buttons' combines all addon buttons into a single frame which you can toggle by right-clicking the minimap (cannot be used with 'Hide addon buttons'). You can always drag the minimap now while holding the alt key so the 'Unlock map frame' setting has been removed. The maximum minimap scale is now 400% (was 200%). 662 | - If 'Automate gossip' ('Automation') is enabled, battlemaster gossip will now be automatically selected and the battleground name will be shown at the top of the battlefield instance window. 663 | - Fixed a minor issue with 'Enhance professions' ('Interface') which caused the craft frame filter dropdown menu to not be positioned correctly. Also fixed a minor issue with the default UI which caused beast training points to show in profession frames (this bug is not caused by addons). 664 | 665 | 2.5.72 - 2nd December 2021 666 | - If 'Enhance minimap' is enabled, you can toggle the zone text bar once again using a setting in the configuration panel. Added a new setting to toggle the world map button. 667 | 668 | 2.5.71 - 2nd December 2021 669 | - To address issues with minimap cluster scaling (which have been present for a long time), the 'Scale entire cluster' setting has been removed. Also fixed a minor issue causing the minimap toggle button to be visible. 670 | 671 | 2.5.70 - 1st December 2021 672 | - The 'Enhance minimap' option ('Interface') has two new settings. The first is 'Unlock minimap'. If enabled, you can hold alt and drag the minimap to move it. The second is 'Scale entire cluster'. If checked, the scale slider will apply to the entire minimap cluster. If unchecked, the scale slider will only apply to the minimap. The zone text bar is now always hidden. 673 | - The 'Show Wowhead links' option ('Interface') now has a configuration panel allowing you to choose whether links should go directly to the comments section. 674 | - The 'Recent chat window' option ('Chat') will now use the same font and size as the chat window. Fixed an issue which sometimes caused the recent chat window font size to be smaller than intended. 675 | - Fixed a minor issue with 'Automate quests' ('Automation') which caused Mark of Sargeras and Sunfury Signet reputation turn-ins to not be automated if you only had one of either item in your bags. 676 | 677 | 2.5.68 - 17th November 2021 678 | - Added an animation slider setting to 'Enhance dressup' ('Interface'). 679 | - Added a configuration panel for 'Accept resurrection' ('Automation') so you can choose whether combat resurrection should be excluded. 680 | - Added a 'Guild' setting to the 'Social' page which allows you to choose whether the 'Social' page options should apply to guild members or not (previously, 'Social' page options always applied to guild members). 681 | - Added 'Yawns' to 'Mute game sounds' ('System'). If checked, yawns from hunter pet cats will be muted. 682 | 683 | 2.5.67 - 10th November 2021 684 | - Added a new setting to 'Enhance dressup' ('Interface') which adds item buttons to the dressing room. Added a 'Show me' button and a button to toggle the new item buttons. The 'Remove tabard' button is now part of the new item buttons. 685 | - Added a new option 'Hide action button text' ('Text'). If enabled, macro and keybind text will not be shown on action buttons. 686 | 687 | 2.5.66 - 4th November 2021 688 | - Added a new option 'More font sizes' ('Chat'). If enabled, additional font sizes will be available in the chat frame font size menu. 689 | 690 | 2.5.64 - 29th October 2021 691 | - Replaced packager to fix CurseForge App issue. 692 | 693 | 2.5.62 - 28th October 2021 694 | - The 'Enhance dressup' option ('Interface') now shows a 'Show target model' button in the dressup window. Requires a player target. The nude and tabard buttons will apply whichever model is showing. Transformations such as shapeshift and appearance change will be removed. The 'Reset' button will set the model back to your character. Dressup window buttons are now much smaller and have tooltips. 695 | - The 'Enhance quest log' option now has a setting to toggle showing quest levels. 696 | - The 'Sell junk automatically' option now has a setting to toggle the vendor summary in chat. 697 | - The 'Repair automatically' option now has a setting to toggle the repair summary in chat. 698 | - Fixed a minor issue with 'Recent chat window' ('Chat') which caused the title bar text to overlap the message count for some locales. 699 | - Fixed a few locale issues with invalid translations. 700 | 701 | 2.5.61 - 21st October 2021 702 | - Added 'Chimes' to 'Mute game sounds' ('System'). If enabled, clock hourly chimes will be muted. 703 | - The 'Enhance tooltip' option ('Interface') now scales Total RP 3 tooltips. 704 | 705 | 2.5.59 - 13th October 2021 706 | - Added a new option called 'Show druid power bar' ('Interface'). If enabled, a druid power bar will be shown in the player frame while you are playing as a shapeshifted druid. 707 | - The 'Dismount me' option ('System') will now work with Shaman Ghost Wolf. Added a new setting to show an unshift buton on the flight map when playing as a shapeshifted druid or shaman. The setting to dismount when selecting a flight destination has been removed as that functionality is now built into the game. 708 | - The 'Release in PvP' option ('Automation') now has a configuration panel that lets you exclude Alterac Valley. You can also set a delay timer before you are automatically released. You can hold shift as the timer is ending to cancel automatic release. 709 | 710 | 2.5.58 - 29th September 2021 711 | - Quests from Soridormi and Arazmodu (The Scale of the Sands, Caverns of Time) will no longer be selected, accepted or turned-in automatically. 712 | 713 | 2.5.55 - 16th September 2021 714 | - Updated for World of Warcraft patch 2.5.2. 715 | - Added guild bank support for 'Repair automatically ('Automation'). 716 | 717 | 2.5.53 - 19th August 2021 718 | - Fixed issue caused by malformed translations. 719 | 720 | 2.5.48 - 5th August 2021 721 | - Added 'Gyrocopters' to 'Mute game sounds' ('System'). This includes the engineering flying machine mounts. 722 | 723 | 2.5.47 - 22nd July 2021 724 | - Improved quest automation for Aldor/Scryer repeatable reputation quests in Shattrath. 725 | 726 | 2.5.44 - 30th June 2021 727 | - Updated Classic Profession Filter addon compatibility fixes for 'Enhance professions' ('Interface') to support the latest version. If you use Classic Profession Filter addon, you need to update it. 728 | 729 | 2.5.43 - 24th June 2021 730 | - Fixed a situational issue with 'Faster auto loot' ('System') which caused the loot window to sometimes remain open if you are in a group using free for all loot with multiple group members looting the same corpse at the same time. 731 | - Updated the tooltip for 'Invite from whispers' ('Social') to highlight that an invite will not sent in response a Battle.net message if the invite recipient is showing offline. 732 | 733 | 2.5.42 - 16th June 2021 734 | - Added a new setting to 'Enhance tooltip' ('Interface') which allows you to see guild ranks for players who are not in your guild. It's disabled by default. 735 | - Fixed a compatibility issue with 'Enhance professions' and 'Classic profession filter' addon. 736 | - Removed the 'Class icon portraits' option ('Frames') due to performance issues. There are standalone addons available for this feature if you need it. 737 | 738 | 2.5.41 - 9th June 2021 739 | - Added a note about framerate to the 'Class icon portraits' ('Frames') tooltip. 740 | 741 | 2.5.39 - 6th June 2021 742 | - For 'Automate quests' ('Automation'), quests from Archmage Leryda (The Violet Eye) will no longer be selected, accepted or turned-in automatically. 743 | - Updated translations. 744 | 745 | 2.5.38 - 2nd June 2021 746 | - For 'Automate quests' ('Automation'), quests from BCC escort quest givers will not be accepted automatically. This applies to Ranger Lilatha (Escape from the Catacombs), Anchorite Truuen (Tomb of the Lightbringer), Magwin (A Cry For Help), Fhwoor (Fhwoor Smash!), Kayra Longmane (Escape from Umbrafen), Mag'har Captive (The Totem of Kar'dash, Horde), Kurenai Captive (The Totem of Kar'dash, Alliance), Isla Starmane (Escape from Firewing Point!), Maxx A. Million Mk. V (Mark V is Alive!), Cryo-Engineer Sha'heen (Someone Else's Hard Work Pays Off), Drijya (Sabotage the Warp-Gate!), Bessy (When the Cows Come Home), Image of Commander Ameer (Delivering the Message), Captured Protectorate Vanguard (Escape from the Staging Grounds), Earthmender Wilda (Escape from Coilskar Cistern), Skywing (Skywing), Chief Archaeologist Letoll (Digging Through Bones) and Skyguard Prisoner (Escape from Skettis). Many thanks to drejjmit for supplying the list. 747 | - The 'Manage widget' configuration panel will now show a warning if Titan Panel is preventing the widget frame position from saving correctly.. 748 | - The 'Dismount automatically' option ('System') is now called 'Dismount me'. It now has a configuration panel so you can set which dismount rules you want to use including a new setting that dismounts you when you instruct a flight master to open the flight map. 749 | 750 | 2.5.37 - 26th May 2021 751 | - The 'Dismount automatically' option ('System') will no longer dismount you if you are out of range of your target. 752 | 753 | 2.5.33 - 21st May 2021 754 | - The 'Stand and dismount' option is now called 'Dismount automatically'. Most of what it did before is now included in the game. So now, the option will dismount you when you select a flight location or when you attempt to cast a spell regardless of whether you have enough resource to cast or whether the target is in range. 755 | - Fixed an issue with 'Recent chat window' which caused a Lua error when attempting to show Battle.net messages. 756 | - The 'Remove raid restrictions' option has been removed since it's not needed for Burning Crusade Classic. 757 | 758 | 2.5.32 - 17th May 2021 759 | - Welcome to Burning Crusade Classic. 760 | - Leatrix Plus for Burning Crusade Classic is based on Leatrix Plus for World of Warcraft Classic with the changes listed below. 761 | - Added 'Manage focus' ('Frames'), 'Mute game sounds' ('System') and 'Remove raid restrictions' ('System'). 762 | - Added Burning Crusade zones, dungeons, titles, credits, narration tracks and movies to 'Media'. 763 | - The 'Enhance dressup' option ('Interface') now adds pan (right-button), zoom (mousewheel) and toggle attributes (middle-click) functionality to the character frame, dressup frame and inspect frame. 764 | - The 'Class colored frames' option ('Frames') now colors the focus frame too. 765 | - Thanks to Blizzard for the day one beta access allowing me to bring Leatrix addons to the BCC community. 766 | -------------------------------------------------------------------------------- /Changelog and Notes.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- 4 | -- What needs to be tested: 5 | -------------------------------------------------------------------------------- 6 | 7 | Manage Debuffs - if debuff button reset working fine. 8 | 9 | ElvUI - Need to see what disabled for when ElvUI is loaded. May be something is not made in 3.3.5 ElvUI backport, but still disabled. 10 | 11 | Auto-Ress in BG - With option "Exclude Alterac" will it not auto-res in Alterac BG ? 12 | 13 | Accept Ress - Will it ever accept ressurection if ressurecter in combat ? 14 | 15 | QueueTimer - Need to test if timer .After 0.1 is fine in SetupBar func (was 1 second before) 16 | 17 | LibCandyBar - Will it be conflicting with other addons that use 3.3.5 version of CandyBar lib? Like with BigWigs? 18 | 19 | ShowFlightPaths - Will StopLandingEvent work correctly on summon, BG/arena accept 20 | 21 | Manage Debuffs - Test IT in fight. 22 | 23 | -------------------------------------------------------------------------------- 24 | -- What i plan to do in near future list from easy to hard 25 | -------------------------------------------------------------------------------- 26 | 27 | Auto-Spirit Res. - Add function to auto ressurect once interracted with Spirit Healer 28 | 29 | ManageBuff - Fix the weapon enhancements not scale correct! 30 | 31 | Faster Loot - Make the config option to change size of error frame with test messages 32 | 33 | World Map - Reveal Map 34 | 35 | Ready Timer - for RDF/BG/ Arena 36 | 37 | Action Bar - Make buttons full red if out of range (instead of blizzard red text only) 38 | 39 | MinimapEnhance - Replace non-standard buttons option! Aka those that don't use LibDBIcon, or may be just set size of them ? 40 | 41 | -------------------------------------------------------------------------------- 42 | -- Stuff to-do: 43 | -------------------------------------------------------------------------------- 44 | 45 | 46 | Manage Debuffs - make it somehow to be movable even if there are no debuffs shown. 47 | 48 | Media - Need to fix Movies, to be playable. 49 | 50 | Chat History - (needs fixing) make sure it can be working with more than 128 lines correctly. 51 | 52 | CombineAddonButtons - Make the toggle-mode button, that appears on frame TOPRIGHT hover to change the mode of frame 53 | (Modes: 1 - Always Shown, 2 - Shown only on Minimap or this frame HOVER) 54 | 55 | MinimapEnhance - MinimapNoScale and MinimapSize options needs fixing. For now moved them 10000px out of the GUI. 56 | 57 | HideErrorMessages - Add locales for "Requires", for herbalism,mining,lockpicking skill requirements. 58 | 59 | RestoreChatHistory - Fix Channel colors. 60 | 61 | RecentChatWindow - Need to fix channel colors. 62 | 63 | AutomateQuests - Improve Quest Accept conditions (aka skip welcome window and block shared aka escort quests) 64 | 65 | Chat - Copy chat links 66 | 67 | NPCLink - need to retrieve mob id by mouseover tooltip 68 | 69 | AutoGossip - Add https://wowhead.com/wotlk/search?q=Surristrasz to ignore the dialog auto-confirm. 70 | 71 | 72 | -------------------------------------------------------------------------------- 73 | -- Not sure if need to do yet: 74 | -------------------------------------------------------------------------------- 75 | 76 | HideMiniButtons - Make a copy edit box with a link to "guide" for Frame Stack 77 | 78 | AutoGossip - Add user defined NPCID to automate gossipX (any option) 79 | 80 | AutoGossip - Add ability to automate gossip cycles. (if after first gossip need to select more gossips) 81 | 82 | AutoGossip - Need to make user option to automate inn / trainer . 83 | 84 | Minimap enhance - Add NPC specific tracking icons on minimap. 85 | 86 | Automation - Remove transforms ( Jack-o'-Lantern, Hallowed Wand, Witch, Turkey and Spraybot transformations? etc. ) 87 | 88 | Interraction bindings - Add Quest / Vendor Bindings ( e.g. keyboard keys for Inkeepeer: 1 - Set Home, 2 - Vendor; ) 89 | 90 | Tooltip - If player has tooltip hidden in combat, make an option to toggle tooltip if "Alt" key is hold. 91 | 92 | HideChatButtons - Add Configuration to enable certain chat buttons. 93 | 94 | GUI - FIX the width for long strings https://cdn.discordapp.com/attachments/766767499987386402/1119067878885437531/wow_otLn4jPKyo.jpg 95 | 96 | Tooltip - Add a number of skill requirement to the tooltip to gather herb,mine node, when mouseovering it. 97 | 98 | Minimap - Zone Text Bar should toggle the minimap. 99 | 100 | Minimap - Tracking button animation fade-in-out. 101 | 102 | Minimap - distance of buttons OnEnter alpha trigger user option? 103 | 104 | 105 | 106 | Minimap - add alt+shift click to reset position of minimap. 107 | 108 | EnhanceDressup - Make clicks, wheel, to rotate, pan, zoom. 109 | 110 | AutomateGossip - Give options to enable hearthstone/ trainer automation 111 | 112 | DurabilityStatus - change color of button based on total durability status. 113 | 114 | CopyChat - Clear Chat Button. 115 | 116 | BagSearch - add highlight item. 117 | 118 | BagSearch - improve look of close button. 119 | 120 | BagSearch - add bank frame. 121 | 122 | BagSearch - position tooltip nicely. 123 | 124 | BagSearch - add button with menu to highlight certain item categories: herb, quest items, grey items etc... 125 | 126 | BagSearch - add slash commands. 127 | 128 | QueueTimer - add user option to disable sound. 129 | 130 | Core - Fix ToggleZygor function 131 | 132 | BagSearch - if item is clicked then remove focus from search 133 | 134 | FasterLoot - add "lightweight" version of faster loot, in case someone doesn't want fastest version or it doesnt work properly on his server. 135 | 136 | 137 | 138 | A feature that would automatically show you the location of the nearest flight master. 139 | A feature that would automatically show you the location of the nearest mailbox. 140 | 141 | Right Click totems to destroy them 142 | 143 | Show best gold value for quest reward. 144 | 145 | Open all bag user config option at merchant. 146 | 147 | 148 | UnitFrames - make them movable with Shift+Ctrl held. 149 | 150 | UnitFrames - make them auto-hidden while not in combat (but full mana or health, conditions) 151 | 152 | Chat - Clear Chat button / dropdown. 153 | 154 | Hide Error text, permit user to enter partial to not un-hide some error text. 155 | -(For example arena ready crystal red error shows how many players ready.) 156 | - You are in shapeshift, 157 | 158 | 159 | AutoSellJunk - Make user able to shift click the item to add to "keep list" 160 | 161 | AutoSellJunk - Make user be able to alt-ctrl (or other bind) click on an item in bag to sell the item on next vendor visit. 162 | 163 | AutoSellJunk - The editbox must be scrollable. 164 | 165 | MinimapEnhance - Add Timer module, just like ShaguTweaks. 166 | -------------------------------------------------------------------------------- /Leatrix_InputScrollFrameTemplate.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Leatrix_Plus.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sattva-108/Leatrix_Plus/225cdf45940381c43ac31f348f1600c56eca8fc2/Leatrix_Plus.blp -------------------------------------------------------------------------------- /Leatrix_Plus.toc: -------------------------------------------------------------------------------- 1 | ## Interface: 30300 2 | 3 | ## Title: |cff33ffccLeatrix |cffffffffPlus |cffff5555[ALPHA] 4 | ## Title-zhCN: Leatrix Plus [|cffeda55f功能百宝箱|r] 5 | ## Title-zhTW: Leatrix Plus [|cffeda55f功能百寶箱|r] 6 | 7 | ## Notes: Quality of life addon. 8 | ## Notes-zhCN: 哆啦A梦的百宝袋 9 | ## Notes-zhTW: 哆啦A夢的百寶袋 10 | 11 | ## Version: 3.3.5 (3.0.131) 12 | ## Author: Leatrix 13 | ## SavedVariables: LeaPlusDB 14 | 15 | ## OptionalDeps: Leatrix_enUS, ElvUI, Glass 16 | 17 | ## X-Curse-Project-ID: 463863 18 | 19 | Leatrix_InputScrollFrameTemplate.xml 20 | 21 | # Leatrix_Plus_Library.lua 22 | libs\LibStub\LibStub.lua 23 | libs\LibCompat-1.0\lib.xml 24 | Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml 25 | Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua 26 | Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua 27 | 28 | 29 | Leatrix_Plus_Library.lua 30 | Leatrix_Plus_Locale.lua 31 | Leatrix_Plus_Media.lua 32 | Leatrix_Plus_Flight_Alliance.lua 33 | Leatrix_Plus_Flight_Horde.lua 34 | Leatrix_Plus.lua 35 | -------------------------------------------------------------------------------- /Leatrix_Plus_Wrath.toc: -------------------------------------------------------------------------------- 1 | ## Interface: 30300 2 | 3 | ## Title: |cff33ffccLeatrix |cffffffffPlus |cffff5555[ALPHA] 4 | --## Title-zhCN: Leatrix Plus [|cffeda55f功能百宝箱|r] 5 | --## Title-zhTW: Leatrix Plus [|cffeda55f功能百寶箱|r] 6 | 7 | ## Notes: Quality of life addon. 8 | --## Notes-zhCN: 哆啦A梦的百宝袋 9 | --## Notes-zhTW: 哆啦A夢的百寶袋 10 | 11 | ## Version: 3.0.131 12 | ## Author: Leatrix 13 | ## SavedVariables: LeaPlusDB 14 | 15 | ## OptionalDeps: Leatrix_enUS, ElvUI, Glass 16 | 17 | ## X-Curse-Project-ID: 463863 18 | 19 | libs\LibStub\LibStub.lua 20 | libs\LibCompat-1.0\lib.xml 21 | Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua 22 | Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua 23 | Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua 24 | 25 | 26 | Leatrix_Plus_Library.lua 27 | Leatrix_Plus_Locale.lua 28 | Leatrix_Plus_Media.lua 29 | Leatrix_Plus_Flight_Alliance.lua 30 | Leatrix_Plus_Flight_Horde.lua 31 | Leatrix_Plus.lua -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LeatrixPlus 3.3.5 WoTLK 2 | **Leatrix Plus** includes a ton of features and QoL stuff. 3 | 4 | ![wow_JKqoyeYX2H](https://github.com/user-attachments/assets/84067d46-3ece-4f9e-a5fa-001961310a23) 5 | 6 | ## Credit 7 | - Credit to **[Leatrix](https://github.com/leatrix/leatrix)** 8 | - Code from **[LeatrixPlusWoTLK](https://www.curseforge.com/wow/addons/leatrix-plus-cata)** 9 | 10 | 11 | ## Download & Installation 12 | 13 | 1. **[Download](https://github.com/Sattva-108/Leatrix_Plus/releases/latest)** Leatrix_Plus.rar from latest release. 14 | 2. Copy the `"Leatrix_Plus"` folder inside the .zip to `"\Interface\AddOns\"`. 15 | 3. Replace/overwrite any existing files when copying. 16 | 17 | 18 | ## Usage 19 | `/ltp` - chat command to open configure menu for Leatrix Plus. 20 | 1. Enable the mod(s) by selecting them in the Leatrix Plus menu (`/ltp` command). 21 | 2. Note that some options will require a reload to take effect. You will see the `"Reload"` button glowing if you need to reload, simply click it. 22 | 3. Minimap Button `Click` to open configuration menu 23 | 4. Minimap Button `Shift-Click` to reload user interface 24 | 5. Minimap Button `Alt-Click` to toggle error messages visibility 25 | -------------------------------------------------------------------------------- /assets/ROTATING-MINIMAPARROW.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sattva-108/Leatrix_Plus/225cdf45940381c43ac31f348f1600c56eca8fc2/assets/ROTATING-MINIMAPARROW.blp -------------------------------------------------------------------------------- /assets/minimapicon.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sattva-108/Leatrix_Plus/225cdf45940381c43ac31f348f1600c56eca8fc2/assets/minimapicon.tga -------------------------------------------------------------------------------- /assets/ui-guildachievement-parchment-horizontal-desaturated.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sattva-108/Leatrix_Plus/225cdf45940381c43ac31f348f1600c56eca8fc2/assets/ui-guildachievement-parchment-horizontal-desaturated.blp -------------------------------------------------------------------------------- /libs/CallbackHandler-1.0/CallbackHandler-1.0.lua: -------------------------------------------------------------------------------- 1 | --[[ $Id: CallbackHandler-1.0.lua 895 2009-12-06 16:28:55Z nevcairiel $ ]] 2 | local MAJOR, MINOR = "CallbackHandler-1.0", 5 3 | local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) 4 | 5 | if not CallbackHandler then return end -- No upgrade needed 6 | 7 | local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} 8 | 9 | -- Lua APIs 10 | local tconcat = table.concat 11 | local assert, error, loadstring = assert, error, loadstring 12 | local setmetatable, rawset, rawget = setmetatable, rawset, rawget 13 | local next, select, pairs, type, tostring = next, select, pairs, type, tostring 14 | 15 | -- Global vars/functions that we don't upvalue since they might get hooked, or upgraded 16 | -- List them here for Mikk's FindGlobals script 17 | -- GLOBALS: geterrorhandler 18 | 19 | local xpcall = xpcall 20 | 21 | local function errorhandler(err) 22 | return geterrorhandler()(err) 23 | end 24 | 25 | local function CreateDispatcher(argCount) 26 | local code = [[ 27 | local next, xpcall, eh = ... 28 | 29 | local method, ARGS 30 | local function call() method(ARGS) end 31 | 32 | local function dispatch(handlers, ...) 33 | local index 34 | index, method = next(handlers) 35 | if not method then return end 36 | local OLD_ARGS = ARGS 37 | ARGS = ... 38 | repeat 39 | xpcall(call, eh) 40 | index, method = next(handlers, index) 41 | until not method 42 | ARGS = OLD_ARGS 43 | end 44 | 45 | return dispatch 46 | ]] 47 | 48 | local ARGS, OLD_ARGS = {}, {} 49 | for i = 1, argCount do ARGS[i], OLD_ARGS[i] = "arg"..i, "old_arg"..i end 50 | code = code:gsub("OLD_ARGS", tconcat(OLD_ARGS, ", ")):gsub("ARGS", tconcat(ARGS, ", ")) 51 | return assert(loadstring(code, "safecall Dispatcher["..argCount.."]"))(next, xpcall, errorhandler) 52 | end 53 | 54 | local Dispatchers = setmetatable({}, {__index=function(self, argCount) 55 | local dispatcher = CreateDispatcher(argCount) 56 | rawset(self, argCount, dispatcher) 57 | return dispatcher 58 | end}) 59 | 60 | -------------------------------------------------------------------------- 61 | -- CallbackHandler:New 62 | -- 63 | -- target - target object to embed public APIs in 64 | -- RegisterName - name of the callback registration API, default "RegisterCallback" 65 | -- UnregisterName - name of the callback unregistration API, default "UnregisterCallback" 66 | -- UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API. 67 | 68 | function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName, OnUsed, OnUnused) 69 | -- TODO: Remove this after beta has gone out 70 | assert(not OnUsed and not OnUnused, "ACE-80: OnUsed/OnUnused are deprecated. Callbacks are now done to registry.OnUsed and registry.OnUnused") 71 | 72 | RegisterName = RegisterName or "RegisterCallback" 73 | UnregisterName = UnregisterName or "UnregisterCallback" 74 | if UnregisterAllName==nil then -- false is used to indicate "don't want this method" 75 | UnregisterAllName = "UnregisterAllCallbacks" 76 | end 77 | 78 | -- we declare all objects and exported APIs inside this closure to quickly gain access 79 | -- to e.g. function names, the "target" parameter, etc 80 | 81 | 82 | -- Create the registry object 83 | local events = setmetatable({}, meta) 84 | local registry = { recurse=0, events=events } 85 | 86 | -- registry:Fire() - fires the given event/message into the registry 87 | function registry:Fire(eventname, ...) 88 | if not rawget(events, eventname) or not next(events[eventname]) then return end 89 | local oldrecurse = registry.recurse 90 | registry.recurse = oldrecurse + 1 91 | 92 | Dispatchers[select('#', ...) + 1](events[eventname], eventname, ...) 93 | 94 | registry.recurse = oldrecurse 95 | 96 | if registry.insertQueue and oldrecurse==0 then 97 | -- Something in one of our callbacks wanted to register more callbacks; they got queued 98 | for eventname,callbacks in pairs(registry.insertQueue) do 99 | local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. 100 | for self,func in pairs(callbacks) do 101 | events[eventname][self] = func 102 | -- fire OnUsed callback? 103 | if first and registry.OnUsed then 104 | registry.OnUsed(registry, target, eventname) 105 | first = nil 106 | end 107 | end 108 | end 109 | registry.insertQueue = nil 110 | end 111 | end 112 | 113 | -- Registration of a callback, handles: 114 | -- self["method"], leads to self["method"](self, ...) 115 | -- self with function ref, leads to functionref(...) 116 | -- "addonId" (instead of self) with function ref, leads to functionref(...) 117 | -- all with an optional arg, which, if present, gets passed as first argument (after self if present) 118 | target[RegisterName] = function(self, eventname, method, ... --[[actually just a single arg]]) 119 | if type(eventname) ~= "string" then 120 | error("Usage: "..RegisterName.."(eventname, method[, arg]): 'eventname' - string expected.", 2) 121 | end 122 | 123 | method = method or eventname 124 | 125 | local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. 126 | 127 | if type(method) ~= "string" and type(method) ~= "function" then 128 | error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - string or function expected.", 2) 129 | end 130 | 131 | local regfunc 132 | 133 | if type(method) == "string" then 134 | -- self["method"] calling style 135 | if type(self) ~= "table" then 136 | error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): self was not a table?", 2) 137 | elseif self==target then 138 | error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): do not use Library:"..RegisterName.."(), use your own 'self'", 2) 139 | elseif type(self[method]) ~= "function" then 140 | error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - method '"..tostring(method).."' not found on self.", 2) 141 | end 142 | 143 | if select("#",...)>=1 then -- this is not the same as testing for arg==nil! 144 | local arg=select(1,...) 145 | regfunc = function(...) self[method](self,arg,...) end 146 | else 147 | regfunc = function(...) self[method](self,...) end 148 | end 149 | else 150 | -- function ref with self=object or self="addonId" 151 | if type(self)~="table" and type(self)~="string" then 152 | error("Usage: "..RegisterName.."(self or \"addonId\", eventname, method): 'self or addonId': table or string expected.", 2) 153 | end 154 | 155 | if select("#",...)>=1 then -- this is not the same as testing for arg==nil! 156 | local arg=select(1,...) 157 | regfunc = function(...) method(arg,...) end 158 | else 159 | regfunc = method 160 | end 161 | end 162 | 163 | 164 | if events[eventname][self] or registry.recurse<1 then 165 | -- if registry.recurse<1 then 166 | -- we're overwriting an existing entry, or not currently recursing. just set it. 167 | events[eventname][self] = regfunc 168 | -- fire OnUsed callback? 169 | if registry.OnUsed and first then 170 | registry.OnUsed(registry, target, eventname) 171 | end 172 | else 173 | -- we're currently processing a callback in this registry, so delay the registration of this new entry! 174 | -- yes, we're a bit wasteful on garbage, but this is a fringe case, so we're picking low implementation overhead over garbage efficiency 175 | registry.insertQueue = registry.insertQueue or setmetatable({},meta) 176 | registry.insertQueue[eventname][self] = regfunc 177 | end 178 | end 179 | 180 | -- Unregister a callback 181 | target[UnregisterName] = function(self, eventname) 182 | if not self or self==target then 183 | error("Usage: "..UnregisterName.."(eventname): bad 'self'", 2) 184 | end 185 | if type(eventname) ~= "string" then 186 | error("Usage: "..UnregisterName.."(eventname): 'eventname' - string expected.", 2) 187 | end 188 | if rawget(events, eventname) and events[eventname][self] then 189 | events[eventname][self] = nil 190 | -- Fire OnUnused callback? 191 | if registry.OnUnused and not next(events[eventname]) then 192 | registry.OnUnused(registry, target, eventname) 193 | end 194 | end 195 | if registry.insertQueue and rawget(registry.insertQueue, eventname) and registry.insertQueue[eventname][self] then 196 | registry.insertQueue[eventname][self] = nil 197 | end 198 | end 199 | 200 | -- OPTIONAL: Unregister all callbacks for given selfs/addonIds 201 | if UnregisterAllName then 202 | target[UnregisterAllName] = function(...) 203 | if select("#",...)<1 then 204 | error("Usage: "..UnregisterAllName.."([whatFor]): missing 'self' or \"addonId\" to unregister events for.", 2) 205 | end 206 | if select("#",...)==1 and ...==target then 207 | error("Usage: "..UnregisterAllName.."([whatFor]): supply a meaningful 'self' or \"addonId\"", 2) 208 | end 209 | 210 | 211 | for i=1,select("#",...) do 212 | local self = select(i,...) 213 | if registry.insertQueue then 214 | for eventname, callbacks in pairs(registry.insertQueue) do 215 | if callbacks[self] then 216 | callbacks[self] = nil 217 | end 218 | end 219 | end 220 | for eventname, callbacks in pairs(events) do 221 | if callbacks[self] then 222 | callbacks[self] = nil 223 | -- Fire OnUnused callback? 224 | if registry.OnUnused and not next(callbacks) then 225 | registry.OnUnused(registry, target, eventname) 226 | end 227 | end 228 | end 229 | end 230 | end 231 | end 232 | 233 | return registry 234 | end 235 | 236 | 237 | -- CallbackHandler purposefully does NOT do explicit embedding. Nor does it 238 | -- try to upgrade old implicit embeds since the system is selfcontained and 239 | -- relies on closures to work. 240 | 241 | -------------------------------------------------------------------------------- /libs/CallbackHandler-1.0/CallbackHandler-1.0.xml: -------------------------------------------------------------------------------- 1 | 3 |