Dongle/AddonTemplate
Talk0
98,566pages on
this wiki
this wiki
< Dongle
This is an example template for a setup for an addon that uses Dongle. It shows how to use the various API's that dongle offers such as the slash commands and the database.
-- This instantiates the Dongle object. From here you will be able to access
-- the Dongle API.
local addon = DongleStub('Dongle-1.1'):New('DongleAddonTemplate')
-- This is the table containing the default entries for the database. if
-- something cant be found in the database, this will automatically be
-- checked. This will not get saved in the database table.
local databasedefaults = {
profile = {
message = 'This is the default message!'
}
}
--- PrintAbout: Print some text explaining the purpose of this addon.
-- This is for the slash command handler 'about'.
function addon:PrintAbout ()
self:Print([[This addon is for developers to act as a template for
a setup for an addon that uses dongle. It shows how to use the various API's
that dongle offers such as the slash commands and the database.]])
end
--- PrintMessage: Print the message that is in the database.
-- This is for the slash command handler 'print-message'. It prints the
-- default message that is in the database or your own if you have saved your
-- own with the 'change-message' slash command.
function addon:PrintMessage ()
-- Get the message from the database.
local message = self.db.profile.message
-- Check if the message exists and print it, if not; do nothing.
if message then
self:Print(message)
end
end
--- ChangeMessage: Change the default message that the slash command
-- 'print-message' uses to something else.
-- @param message The message to change the default message to.
function addon:ChangeMessage (message)
-- Check if there is a message, if not; do nothing.
if message then
self.db.profile.message = message
end
end
--- Initialize: Initialize the addon.
-- This will be executed at ADDON_LOADED after all the files of the addon have
-- been loaded.
-- Things like initializing the slash commands and database api as well as
-- other things your addon needs defined go here.
function addon:Initialize ()
-- Initialize the database with the local defaults table.
self.db = self:InitializeDB('DongleAddonTemplateDB', databasedefaults)
-- Initialize the slash command.
self.slashcmd = self:InitializeSlashCommand('DongleAddonTemplate Slash Command',
'DONGLEADDONTEMPLATE', 'dat', 'dongleaddontemplate')
end
--- Enable: Enable the addon.
-- This will be executed at PLAYER_LOGIN, after all addons have initialized.
-- The rest of the things that need to happen go in here, such as positioning
-- frames, enabling hooks and registering for events.
function addon:Enable ()
-- Add a slash command handler called about that matches the lua pattern
-- '^about$' to the function 'PrintAbout'.
self.slashcmd:RegisterSlashHandler(
'about: Print some text explaining the purpose of this addon.', '^about$',
'PrintAbout')
-- Add another slash command for printing a message. The pattern
-- '^print-message (.+)$' will pass anything after 'print-message' to the
-- handler function. The handler function fetches this in an argument.
self.slashcmd:RegisterSlashHandler(
'print-message: Print the message from the database', '^print-message (.+)$',
'PrintMessage')
end
-- Disable: Disable the addon.
-- This will be executed at PLAYER_LOGOUT.
-- Here you can unhook, unregister your events and clean up/reset things you
-- have changed.
function addon:Disable ()
end