Dongle/Core API

To develop an addon using the Dongle framework you must first ensure Dongle is loaded as part of your addon, or as a dependency, see Dongle/Embedding. You should also know what version of Dongle you are using within your own addon.

Obtain a local reference to Dongle
The following code queries DongleStub for the most recent library named "Dongle-Major-Version". You will need to change this name to whichever major version of the framework you are using. This step can be skipped, but I'm including it for clarity. local Dongle = DongleStub("Dongle-Major-Version")

Dongle:New(name[, obj])
Creates a new dongle object.

Arguments

 * name (string) - The name of your dongle. This name must be unique in the global dongle registry.
 * obj (table) - An optional table to use as the basis for the dongle object. If not provided,  a new blank table is created and returned.

Returns

 * obj (table) - The created (or passed) dongle object with all injected functions
 * name (string) - The name of the dongle

Behavior

 * Initialize - When the first ADDON_LOADED event fires following your creation of the dongle object, your object's :Initialize method is called if it exists.
 * It is possible to fire off an early ADDON_LOADED by loading another mod. To prevent this, you should only call LoadAddOn in (or after) your Initialize method.
 * Enable - At PLAYER_LOGIN, the :Enable method of your object is called if it exists.
 * Disable - At PLAYER_LOGOUT, the :Disable method of your object is called if it exists.

Injected functions
The following sets of functions are injected into any Dongle object:
 * Dongle/Module_API - Creating and maintaining modules
 * Dongle/Events_API - Easy event registration and callback
 * Dongle/Message_API - Custom event registration and callback system
 * Dongle/DebugPrint_API - Debug and Print functionality
 * Dongle/Database_API - Database system for saved variables
 * Dongle/Slash_API - Slash command registration system