What does the provided patch do?
- Copies Mop Compatibility layer from QuestAgent.lua to QuestFrame.lua (fixes 1 of 2 problems with quest sharing)
- Copies commPrefix from QuestAgent.lua to QuestFrame.lua (fixes the other problem with quest sharing)
- Adds better support for cross-realm players. (fixes some display issues in the tooltip)
- Updates TOC for 5.2
Please provide any additional information below.
Sadly cross-realm whispers are not easily possible as it is a limitation of the WoW API provided by Blizzard. SendAddonMessage will silently fail to send messages to players on other realms even if you are RealID friends with each other or they are in your party/raid. QuestAgent uses the AceComm-3.0 library as a very nice wrapper around SendAddonMessage.
There are two ways around this limitation. One being to rewrite the portions of the addon that relies on whispers to instead use party chat. This may require rewriting other portions of the addon as well to cut down the amount of unneeded messages caused by moving from a mix of broadcast and personal whispers to all broadcast.
The other way is to write a wrapper that detects if the destination whisper is to a cross-realm player or not. If they are not a cross-realm player proceed the same as always. If they are a cross-realm player then use SendChatMessage() to send the whisper as it is capable of send cross-realm messages when you are RealID or in the same party/raid with the receiver. That however opens up another bag of worms with both sending and receiving the messages. On the sending side I have to follow strict rules: max length 255 characters and not all characters are allowed. On the receiving side I have to register an eventfilter for whispers and hide them whenever a whisper comes from QuestAgent.
Honestly both ways would not be fun at all and a real pain. It would probably be easiest to get Blizzard to update SendAddonMessage to work as expected. I say if SendChatMessage("AQGNT-Hello Bob!", "WHISPER", "Common", "Bob-Archimonde") would succeed then SendAddonMessage("QAGNT", "Hello Bob!", "WHISPER", "Bob-Archimonde") should too!
- 5 comments