I really fail to see what problem you have with unregistering a event on a frame. And I beg to differ on the idea that it's more likely to fail than the idea I have seen around here, which either rely on undocumented assertions (that frame receive an event in a particular order that is not random) or that present the user with a confusing interface that make him think that he has a choice where he doesn't.
If you want to notify the user that he has entered a group, then you can do that.
No need to defend your solution, it's perfectly valid and I wasn't intending my comment as an attack. I just prefer checking on the PARTY_MEMBERS_CHANGED event, that's it.
I'm not comfortable with jerry's solution for that reason. It seems more likely to break down the line, should Blizzard decide to add something else to that event later.
Here's the solution I'm using:
if accept then
The only downside with this method might be that the window does actually get displayed for a second or two, depending how long it takes for your AcceptGroup() to go through. Personally, I prefer it this way, since it calls a little more attention to itself. I used to frequently not even notice I had joined a group.