AddOn Spotlight: ThatJustHappened

AddOn Spotlight takes a look at the little bits of Lua and XML that make our interfaces special. From bar mods to unit frames and beyond, if it goes in your AddOns folder, we'll cover it here.
For those of you who have ever tried to macro together a message with a skill, you know that it can sometimes be awkward. The skill might still be on cooldown and the macro sends the message anyways. Other times, you decide mid-cast to change your mind, but the message already went off. If you're raiding, this can cause a lot of problems as the macro might announce you're putting up your shield wall, but you really didn't. Some class or role specific addons exist out there for helping out with this purpose, but the free form ones are few and far between.
For those of you who have ever tried to macro together a message with a skill, you know that it can sometimes be awkward. The skill might still be on cooldown and the macro sends the message anyways. Other times, you decide mid-cast to change your mind, but the message already went off. If you're raiding, this can cause a lot of problems as the macro might announce you're putting up your shield wall, but you really didn't. Some class or role specific addons exist out there for helping out with this purpose, but the free form ones are few and far between.
ThatJustHappened (sorry, WoWInterface doesn't have a copy of it) by belleboom is an addon that can help with this type of thing. Much like Power Auras, it allows you to setup custom warnings and messages when conditions are met. The main thing is its ability to 'spam' messages across party, raid, custom channels, or even in whispers about what's going on. These can be warnings that you've been hit with a very evil debuff that must be healed through or just letting the raid know that you're rezzing Bob. It could even just be a cool quote to add flavor when using Army of the Dead like I had pictured in the opening.
What it does right...
The addon provides several dynamic variables for use in your rules and messages. While these don't always work due to limitations of the spell or the information the addon has access to, they are able to make things much easier. These variables are *source, *target, *spell, and *event. The *target variable is the one I end up using the most as I can announce that I put a particular buff on someone or put them as my selected channel and it will send them a tell directly (see the Innervate example below). I also use *spell a lot because when making the rules, you might not feel like typing out "Hand of Protection" or "Ritual of Refreshment" when it comes to setting up the message. It is also handy in that it keeps the messages shorter for the most part. While I don't use *event all that often, I do find use in *source. This one is especially handy when tracking things like Divine Intervention as you'll want to know both who cast it and whom it was cast on.
Where it needs some work...
While the features this addon offers are handy, the interface and rule editing leaves much to be desired. First off, when you install the addon and it defaults to off within its own settings. This can cause a lot headache when testing a batch of rules on a new character as you'll inevitably forget to either hit the enable button or just type /tjh on to start it up. This is bad design as you want your users to be able to use your product right out of the box.My primary gripe is that there is no way to edit your existing rules. In order to make a change to an existing rule, you load the existing rule into the interface, create your altered rule, and then delete the original rule. Also, the only way to list your existing rules is to have it send them to your chat window. If you have a sizeable number of rules, this can cause a lot of issues. Also, there is no way to disable a rule or set of rules without either deleting them or disabling the addon from processing. Because of these limitations, swapping in and out rules for battlegrounds, raids, or just soloing can be a real pain as there is no access to any sort of profile system with it. One way to get around this is to create macros to load the rules back into ThatJustHappened and just clear it each time you need to swap.
It's complex, but it kind of has to be...
Like Power Auras, creating new rules is not for the faint of heart. While it does provide an interface to input the conditions, sometimes you've got to do a bit of tweaking for it to work correctly. The addon goes through and looks at the combat log to see which events happened, to who, from whom, and what their relation to you is in order to trigger these messages. It's not the most intuitive interface due to this fact, but trial and error will usually win out. While I could show how to create the rules here, it would be a very long and involved process that would deserve a post of its own just on that topic (that's not to say I won't do one in the future if there is interest. However, there is a very long description on how to create the rules for this addon as well as a lot of examples available on the Maintankadin forums. Most of these are aimed at tanking and raiding, but being able to sort through the large number of examples might help you create your own.

Examples...
To use these rules, just copy each line from here and paste it into your chat window one at a time.
Death Knight:
/tjh rule SPELL_CAST_SUCCESS;;;Army of the Dead;self;YELL;Rise, my soldiers! Rise and fight once more!;
/tjh rule SPELL_AURA_APPLIED;;;Icebound Fortitude;self;AUTO;*** Shield Wall! ***;
/tjh rule SPELL_AURA_APPLIED;;;Unbreakable Armor;self;AUTO;*spell up!;
/tjh rule SPELL_AURA_APPLIED;;;Vampiric Blood;self;AUTO;*** Last Stand! ***;
Druid:
/tjh rule SPELL_CAST_START;;;Rebirth;self;AUTO;Battle-Rezzing %t.;
/tjh rule SPELL_CAST_START;;;Revive;self;AUTO;Rezzing %t;
/tjh rule SPELL_AURA_APPLIED;;;Survival Instincts;self;AUTO;*** Last Stand! ***;
/tjh rule SPELL_AURA_APPLIED;;;Barkskin;self;AUTO;*** Shield Wall! ***;
/tjh rule SPELL_AURA_APPLIED;;;Hibernate;target;say;*target is going to be taking a little nap. Do not disturb!;
/tjh rule SPELL_CAST_SUCCESS;;;Innervate;self;*target;Enjoy the Innervate.;
/tjh rule SPELL_AURA_APPLIED;;;Cyclone;target;SAY;*target distracted with a Cyclone for a moment.;
Hunter:
/tjh rule SPELL_CAST_SUCCESS;;;Misdirection;self;AUTO;Misdirecting to *target!;
/tjh rule SPELL_AURA_APPLIED;;;Deterrence;self;AUTO;*spell active!;
Mage (I found these, but we unable to test them myself):
/tjh rule SPELL_CAST_SUCCESS;;;Ritual of Refreshment;self;say;Click here to summon a magical vending machine!;1
/tjh rule SPELL_AURA_APPLIED;;;Mirror Image;self;AUTO;Don't mind me and my three identical siblings...
/tjh rule SPELL_CAST_SUCCESS;;;Sheep;self;say;Sheeped *target! No touchy!;
Paladin:
/tjh rule SPELL_AURA_APPLIED;;;Ardent Defender;self;AUTO;Ardent Defender is gone. I'm mortal for 2 minutes!;
/tjh rule SPELL_CAST_SUCCESS;;;Divine Intervention;raid;SELF;*source has cast *spell on *target!;
/tjh rule SPELL_CAST_SUCCESS;;;Divine Intervention;self;AUTO;*spell cast on *target!;
/tjh rule SPELL_CAST_START;;;Redemption;self;AUTO;Rezzing %t;
/tjh rule SPELL_AURA_APPLIED;;;Divine Protection;self;AUTO;*** Shield Wall Up ***;
/tjh rule SPELL_CAST_SUCCESS;;;Divine Sacrifice;self;AUTO;Raid Wall: Divine Sacrifice active!;
/tjh rule SPELL_CAST_SUCCESS;;;Hand of Salvation;self;*target;I just cast *spell on you to lower your threat.;
/tjh rule SPELL_CAST_SUCCESS;;;Hand of Sacrifice;self;AUTO;Hand of Sacrifice on *target! Don't be shocked when I start taking damage.;
/tjh rule SPELL_AURA_APPLIED;;;Repentance;target;say;Repent, *target! For your end is near.;
Priest:
/tjh rule SPELL_CAST_START;;;Resurrection;self;AUTO;Rezzing %t.;
/tjh rule SPELL_CAST_SUCCESS;;;Guardian Spirit;self;AUTO;*spell cast on *target!;
/tjh rule SPELL_CAST_SUCCESS;;;Pain Suppression;self;AUTO;*spell cast on *target!;
/tjh rule SPELL_CAST_SUCCESS;;;Hymn of Hope;self;AUTO;Casting *spell! Cover me on heals!;
/tjh rule SPELL_CAST_SUCCESS;;;Divine Hymn;self;AUTO;Casting *spell!;
/tjh rule SPELL_AURA_APPLIED;;;Shackle;target;say;Shackled *target! No touchy!;
Rogue (I found this, but we unable to test it myself):
/tjh rule SPELL_CAST_SUCCESS;;;Tricks of the Trade;self;AUTO;Tricking to *target!
Shaman:
/tjh rule SPELL_CAST_START;;;Ancestral Spirit;self;AUTO;Rezzing %t.;
/tjh rule SPELL_CAST_SUCCESS;;;Bloodlust;self;AUTO;>>> BLOODLUST! <<<;
/tjh rule SPELL_CAST_SUCCESS;;;Heroism;self;AUTO;>>> HEROISM! <<<;
/tjh rule SPELL_AURA_APPLIED;;;Hex;target;SAY;Hexed *target! Aren't you such a cute critter?;
Warlock (I found these, but we unable to test them myself):
/tjh rule SPELL_CAST_SUCCESS;;;Ritual of Souls;self;AUTO;Click here to summon a bucket of demonic candy!;1
/tjh rule SPELL_CAST_SUCCESS;;;Ritual of Summoning;self;AUTO;Click here to summon the demonic wardrobe!;1
/tjh rule SPELL_CAST_SUCCESS;;;Soulstone Resurrection;friend;AUTO;*target is now stoned.;1
Warrior:
/tjh rule SPELL_AURA_APPLIED;;;Shield Wall;self;AUTO;*** Shield Wall Up ***;
/tjh rule SPELL_AURA_APPLIED;;;Last Stand;self;AUTO;*** Last Stand! ***;
Filed under: Analysis / Opinion, Add-Ons, AddOn Spotlight






Reader Comments (Page 1 of 3)
Molly Oct 18th 2009 6:10PM
All is good and well with these sort of things when they aren't set to YELLS. I've ignored so many people for yelling out about how they're casting army of the dead too many times.
tatsumasa Oct 19th 2009 2:20AM
could not agree more. how annoying it is to see the idiots in dalaran YELLING that they are summoning a steed from a nightmare. seriously - you're level 80. do you really need to be told that YELLING IS RUDE!? not everyone in the city wants to know that you're getting on your mount to ride to the mailbox. keep a journal if you think it's that important.
catharsis80 Oct 19th 2009 12:17PM
If someone must do this, it's better to just use /s. I have that on my out-of-combat rez'ing, simply because it helps other resurrecters in the area know not to waste time rez'ing that person, and to move on to someone else. Not everyone in the entire zone needs to know that, so no /y is needed (ever, really).
Gregg Reece Oct 19th 2009 12:17PM
@catharsis80 - Actually, all of the rezzes are set to AUTO which means they'll just show only to you when solo, the party in a group, and the raid when in a raid.
Kung Fu Hamster Oct 18th 2009 6:18PM
SHAKE & BAKE!
(I know I wasn't the only one who thought of that when first reading the title)
Jonner4now Oct 18th 2009 6:20PM
bringing stuff like that too our raid = instance gkick..
Falcon6 Oct 18th 2009 6:27PM
Eh, sure, it's a bit loud, but it also has some benefits. The Last Stand and Shield Wall deal for Warriors would be beneficial to healers when they need to know that the tank isn't going to be hurting as much as usual.
And ooc stuff like the Warlock portal and such? That's just fun flavor.
Even as a Hunter, I doubt I'd use the MD spell. Simply because I doubt it needs to really be said in the raid. But as a Warrior tank, I'm definitely considering it.
Mihn Oct 18th 2009 6:28PM
So, that peice of coal up there turn into a diamond yet, or does it need a few more days?
Tekkub Oct 18th 2009 10:41PM
Agreed, auto-announce addons suck. Don't bother people with your spam, they don't care. If, for example, a healer cared when you used Shield Wall, they will run their own addon to tell them when you have.
Treason Oct 19th 2009 5:03AM
If you don't want your tanks doing that, talk to your healers a little more. Tank warnings are fantastic, and they usually *rave* that the tanks have warnings when they've gone on (especially dk ones, like vampiric blood)
Killchrono Oct 19th 2009 3:08AM
"If, for example, a healer cared when you used Shield Wall, they will run their own addon to tell them when you have."
Sure, because it's the healers should have the choice to care when you I Shield Wall. Or when I pop last Stand, or when my Ardent Defender falls. They don't need to know any of that stuff if they don't want too.
Ammirite?
Killchrono Oct 19th 2009 3:09AM
^Apologies for bad grammar, I aren't so speaking good today.
Gothia Oct 19th 2009 7:31AM
This is reminiscent of the “Heal Me” spam that I really hated. I can’t say that this is not important depending on the situation, but something like a raid announcement should be very important to everyone.
Trust me, your healers know when your shield wall is up because you are taking less damage, but we will still spam heal the tank because we know that a 12K hit is right around the corner.
Eli Oct 18th 2009 6:25PM
awesomeawesomeawesome.
I know I will definitely be using the hunter Misdirect. This addon doesn't use too much memory does it?
Zhiva Oct 18th 2009 6:23PM
I use Chatterbox. It allows to set frequency as condition, so you can have, for example, 1% of your successful Death Grips followed by "Get over here!" message in specified channel. It also allows set several messages for an event, and set weights for them.
Eli Oct 18th 2009 8:39PM
:( I can't find this on wowmatrix.
Alanid Oct 18th 2009 7:11PM
Know how you feel, I prefer WoWMatrix, but even some of the addons that you can get from there are outdated. Sometimes it's easier (not that it isn't easy anyway if you use XP) to install them manually.
Amaxe Oct 18th 2009 8:02PM
Yeah WM is losing effectiveness sad to say. I understand the legit reasons against it of course. I just wish there could be a well designed updater which worked as good as WM (from the player POV) and was acceptable to the hosting sites of addons
Koskun Oct 18th 2009 9:45PM
Just use the Curse Client. Version 3 is stable as all get out, the only downside is that you can only update one mod at a time (unless you go premium). The makers of the old WoWAceUpdater are the ones that are in charge of the Curse one.
Of the many mods that I run (50+), Curse doesn't find updates for 4 of them, and two of those are so old (yet still work just fine) that I don't care.
Version 4 of the Curse Client is coming along quite well too if you want to see the new one (bit quicker too).
WoWMatrix had it's time, but they pissed off too many of the hosting sites. Was it fair, probably not, but they did grab without permission. Not to mention it gives too many false negatives when updating mods, plus it has issue with library's.
epic Oct 18th 2009 10:01PM
v4 beta Curse Client wroks great...updates alot...but thats good