+ Reply to Thread
Results 1 to 4 of 4

Thread: WARNING: Regarding BuffInfo

  1. #1
    Sword of Telara Semele's Avatar
    Join Date
    Mar 2011
    Posts
    872

    Default WARNING: Regarding BuffInfo

    Hi fellow Authors and Addon users,

    I urge everyone to check their Addon folder for a directory named BuffInfo. This addon does something no addon should ever do... it overrides Inspect.Buff.Detail, which is an API command reserved by Trion.

    Unfortunately (this would not have come to light before), this Addon is broken. I also cannot confirm that the addon is optimized, and therefor may explain any Buff related Watchdog warnings.

    I urge RiftUI.com (if it's on there) and Curse.com to remove this Addon from their lists, so that unsuspecting Addon users do not download it by mistake.

    All in all, this could be messing with a lot of Addons and needs to be addressed quickly.

    Regards,
    Paul
    Rank 76 Guardian Mage

  2. #2
    Sword of Telara Semele's Avatar
    Join Date
    Mar 2011
    Posts
    872

    Default

    Tip for Addon authors who wish to maintain their own Addon integrity and stability against addons such as BuffInfo.

    1) In your toc file, place the offending Addon(s) as an optional dependency. And that it should load After yours.

    2) At the begin of your code, add a local variable for each of Trion's commands you wish to ensure stay intact. For example: local IBDReserved = Inspect.Buff.Detail

    3) Handle the Addon.Load.End event. For each Mod passed, check that Inspect.Buff.Detail == IBDReserved. If it doesn't match, assign it back to the Trion API command.

    Although you'll need to know the Mods ID to ensure this works most of the time (Authors may get pissed and decide to ensure their addon loads before yours), you'll at least slowly rule out disrespectful addons. KBM will be doing this from this point forward. Any addon found changing API commands will be added to the list and I will attempt to rectify anything they do.

    I know, extra work. But I prefer not have addons injecting their own overheads in to my work. If addons then insist to work around this, I will add further measures to ensure my addons are not interfered with.
    Rank 76 Guardian Mage

  3. #3
    Plane Touched
    Join Date
    Feb 2012
    Posts
    228

    Default

    I don't think what you pretend to do is a good idea. It seems legit to undo API changes made by other addons that are preventing yours to work correctly, but by undoing all changes you find you may break other addons that are working fine and not messing with yours, as, for example, UI libraries.

    Instead, you should aim to educate addon authors on why they shouldn't modify the API, which are the exceptions when modifying the API could be acceptable, and how to accomplish whatever they want to do without modifying the API.
    Last edited by Baanano; 07-30-2012 at 12:34 AM.

  4. #4
    Sword of Telara Semele's Avatar
    Join Date
    Mar 2011
    Posts
    872

    Default

    Modifying the API base commands and events is not acceptable period. If I wanted to use any sort of Lib then I would call those Libs commands explicitly. Not have some other addon use that Lib which then hacks the API and therefor hacks my code and hacks the code of any other addon which has not explicitly called to use those "new" functions.

    If I break an addon that is interfering with my code, adding overhead to commands I'm calling then that is not my issue.

    Overuse of the global namespace is bad enough, but when that global namespace changes internal API commands that is just plain disrespectful of other authors.

    There is no way to sugar coat it. It's wrong. I'm not forcing my changes on anyone, I'm reverting things to how they are supposed to be BEFORE someone FORCED changes to my code.
    Rank 76 Guardian Mage

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts