Dongle/AddonTemplate

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