NEW FEATURES:
* Many enduser experience improvements!
* We've added an Addon Error dialog that will display a user-friendly warning about addon errors. This provides an easy way to ignore errors, an easy way to disable broken addons, and an easy way to copy entire error messages to your clipboard. This also makes broken addons a bit noisier and more irritating. If your addon is broken, we recommend making it un-broken. This dialog can be disabled in Settings, under the Misc section.
* We've changed the standard addon error spam to give a user-friendly single line, with a link that can be clicked for more details. This behavior can be overridden in Settings, under the Misc section.
* Implemented the Addon Performance Watchdog. The Watchdog will monitor Lua execution performance. If a single Lua environment call (generally defined as "all the handlers of an event") takes more than a predefined amount of time (currently 0.1s), it will print out a performance warning once the execution is done. If it takes more than a much longer amount of time it will begin rapidly injecting errors into that execution, in the hopes to return control to the user. Note that this isn't intended to be a clean exit or a clean recovery - this is a hack attempt to forcibly keep the game playable. We've also introduced Inspect.System.Watchdog() that tells you how much time you have remaining until warnings are generated, but we strongly don't recommend using this for performance-sensitive things - it is not 100% accurate.
* Reworked the unit availability system. The original intention was that units would be either "available" or "unavailable". It turns out reality is more complicated than that - many units also have a partial availability, such as partymembers in a different map, or the player themselves before login. Added Event.Unit.Availability.* to notify you on availability changes. Added .availability member to Inspect.Unit.Detail() to monitor current availability. Added Utility.Unit.Availability() which outputs the members you can expect to see in various availability levels. This should make it possible to accurately track buff changes on partymembers.
* Added the ability to handle limited HTML in Text elements. Right now, this is limited to <b>, <i>, <u>, <font color="#rrggbb">, and <a lua="scriptToBeRunOnClick()">. Support for more tags may be added later. See documentation for Text:SetText() for details.
* Added Inspect.Setting.*, which can be used to inspect the user's game settings.
* Added Inspect.Console.*, which can be used to inspect information about the user's open console windows.
* Added Command.UI.Error(), which can be used to bring up the error window based on an error ID.
* Added Command.Console.Display(), which can be used to display plaintext or HTML text in any console window.
* Added clientside storage of recent addon errors. The ID is provided in Event.System.Error(), and Inspect.System.Error.Detail() can be used to inspect them. Note that there is an upper limit on how many will be stored, and old ones will be thrown away gradually.
* Added Inspect.Time.Server().
* Inspect.Addon.Detail() now includes name, nameShort, and description fields, to aid in displaying information for internationalized addons.
* Added UI.Native.Conquest, UI.Native.Streaming, and UI.Native.TraySocial.
* RiftScrollbar and RiftSlider now support ranges where the min is equal to the max.
BREAKING CHANGES:
* Event.Cursor(), Inspect.Cursor(), Event.Tooltip(), and Inspect.Tooltip() will immediately use the new style of Ability ID. Look at the lower "Upcoming Breaking Changes" section for more detail.
UPCOMING BREAKING CHANGES:
* The old 'a' style of ability ID is going away! Ability IDs are taking on a new format. If the old ability was a0000000012345678, the new ability ID will be A12345678xxxxxxxx, where the x's will be some hex value. This is going to be a gradual changeover.
First, all existing *.Ability.* functionality has been duplicated into *.Ability.New.* functionality, and "ability" return members will be supplemented by "abilityNew" members.
In a future patch, the old *.Ability.* functionality, and "ability" members, will be removed.
We'll then wait for another patch, then re-introduce the *.Ability.* functions with new behavior.
Finally, we'll remove the now-redundant *.Ability.New.* functions. Note that the *.Cursor.* and *.Tooltip.* APIs will be changed immediately, as per the above "Breaking Changes" section.
"So, what should I do about this?"
* If your addon does not deal with abilities in any way, you don't need to worry about this.
* If your addon deals with abilities, but does not store ability IDs either in an internal database or in SavedVariables, then you'll need to replace any *.Ability.* API calls or event hooks with *.Ability.New.* API calls and event hooks. Later, you'll need to change that back. This should be all the changes required.
* If your addon uses an internal ability database for player abilities, you'll also need to convert your database over. This can be done by calling Inspect.Ability.New.Detail() for each item in your database and replacing the old-style key with the idNew member of Inspect.Ability.Detail().
* If your addon stores player ability IDs in SavedVariables, you'll need to convert your database over on each user's computer. This can, again, be done via Inspect.Ability.New.Detail(). Note that the ability to read old-style ability IDs will be going away eventually - if you wait until the last minute to implement this, any user who doesn't get your update may end up unable to convert their old settings.
* If your addon stores non-player ability IDs, either as a database or as SavedVariables, and you don't have an easy way to get new ability IDs, then you may want to implement your own matching function. As mentioned, an ability of format a0000000012345678 will now show up as A12345678xxxxxxxx. You can therefore convert new-style ability IDs to old-style ability IDs easily, although the reverse conversion is not possible.
* The old functions will remain fully functional until 1.10. They may generate warnings or require user intervention to work after that. Fix your code sooner, rather than later!
* Event.Unit.Available and Event.Unit.Unavailable are going away, and being replaced by the new Event.Unit.Availability.* hierarchy. See New Features for details.
* print_raw is now deprecated and will be removed. Use Command.Console.Display() instead.
NONBREAKING CHANGES:
* Added a valid Addon directory under My Documents. Rift will use this new directory if it has things in it. If not, it will check the old directory under the Rift install location. If neither location has addons installed, it will use the new location. This shouldn't break any existing installations, although new addon users will have their addons stored in a new place. Addon updater authors should be aware of this change!
* Updated Luajit to 2.0b9p1 (plus one cherrypicked patch from 2.0b10 that you don't have to worry about.)
BUGFIXES:
* Fix a glitch preventing the "stack" and "stackMax" members from being included in Inspect.Item.Detail() calls when querying a guild bank item.
* The persistance library, including Utility.Serialize.* and SavedVariables, will now properly deal with tables that contain more than 65,535 items. Note that this will result in extraordinarily ugly and non-human-readable output for large tables.
* "@mouseoverui" targeting will now properly understand the addon system.
DIFF:
Code:Inspectors: Inspect.Ability.New.Detail Inspect.Ability.New.List Inspect.Console.Detail Inspect.Console.List Inspect.Setting.Detail Inspect.Setting.List Inspect.System.Error.Detail Inspect.System.Watchdog Inspect.Time.Server Commands: Command.Console.Display Command.UI.Error Utilities: Utility.Unit.Availability Native frames: UI.Native.Conquest UI.Native.Streaming UI.Native.TraySocial Events: Event.Ability.New.Add Event.Ability.New.Cooldown.Begin Event.Ability.New.Cooldown.End Event.Ability.New.Range.False Event.Ability.New.Range.True Event.Ability.New.Remove Event.Ability.New.Target Event.Ability.New.Usable.False Event.Ability.New.Usable.True Event.Unit.Availability.Full Event.Unit.Availability.None Event.Unit.Availability.Partial Parameter types: console error


9Likes


Bookmarks