Initially, it was hoped that GreenWall could be extended to bridge
standard add-on messages. However, the WoW API doesn't have a function
similar to ChatFrame_MessageEventHandler
that could be used
for add-on messages.
So this simple messaging API is provided for third-party add-on developers
who would like to be able to use the bridged communication on a guild
confederation.
A simple example, which demonstrates the use of the API, is GWSonar.
Before any API functions are called, there are tests that should be
run to verify the environment.
if IsAddOnLoaded('GreenWall') then
...
end
if GreenWallAPI ~= nil then
...
end
if GreenWallAPI >= 1 then
...
end
This combines all of the tests into one function.
function apiAvailable()
function testAPI()
-- Raises and exception of GreenWall is loaded or is pre-1.7.
assert(IsAddOnLoaded('GreenWall'))
return GreenWallAPI.version
end
-- Catch any exceptions
local found, version = pcall(testAPI)
return found and version >= 1
end
To send a message to other instances of the add-on, use the following function.
GreenWallAPI.SendMessage(addon, message)
Arguments:
The receiving of messages is handled with callbacks.
local function handler(addon, sender, message, echo, guild)
Arguments:
local id = GreenWallAPI.AddMessageHandler(handler, addon, priority)
Arguments:
Returns:
In addition to the GreenWallAPI.AddMessageHandler
function to add a handler,
the following functions are available to manage the dispatch table.
local found = GreenWallAPI.RemoveMessageHandler(id)
Arguments:
GreenWallAPI.ClearMessageHandlers(addon)
Arguments:
*
character can be used to match all add-ons. If thisnil
, all entries will be cleared.Note: A
*
value passed as add-on is not a wildcard in this context, it will only matched instances where the handler was installed with*
as the add-on.