Thumbnail

Skag's Toolkit

A library of functions common to my addons.

This library is meant to be used as a dependency for my other addons, and as such it may or may not be directly useful to anyone else.

 

That said, I will document it anyway in case someone finds value in it for their own addons.

To import the library, make sure that it is set as a dependency in your addon's .toc file

Dependencies: stk

 

In your addon's main LUA file you will import it via:

 

-- Skag's Toolkit import local stk = _G["STKLIB"] or error("Cannot find an instance of STKLIB, please download from: https://www.curseforge.com/wow/addons/stk"); local reqSTKLIBmajor = 02; local reqSTKLIBminor = 00; if not stk:stkVersionCheck(reqSTKLIBmajor,reqSTKLIBminor) then    error("STKLIB is out of date, please download from: https://www.curseforge.com/wow/addons/stk"); end

 

Change the reqSTKLIB var values according to which major/minor version of the library you require at a minimum for your addon

 

In your addon's primary lua file you can include any or all of these variables which you may have use of.

 

-- Character Vars local charClass = stk:charClass(); local charGUID = stk:charGUID(); local charLevel = stk:charLevel(); local charMaxLevel = stk:charMaxLevel(); local charName = stk:charName(); local charRace = stk:charRace(); -- Region & Server Vars local currentRegion = stk:currentRegion(); local currentServer = stk:currentServer();

 

It will be expected that you version your addon with the following variables

 

local majorVERSION = 02; local minorVERSION = 00; local patchVERSION = 00; local releaseType = "r"; -- a = Alpha, b = Beta, = r = Release

 

In your addon's primary lua file during the PLAYER_LOGIN or PLAYER_ENTERING_WORLD event you should version check addon against what version (if anything) the user has saved settings from.

 

if (not SavedVarDB) or    (SavedVarDB.version == nil) or    (SavedVarDB.version.major == nil) or    (SavedVarDB.version.major ~= majorVERSION) then    SavedVarDB = stk:dbInit(majorVERSION,minorVERSION,patchVERSION,releaseType); end

 

If this version check fails then stk:dbInit(majorVERSION,minorVERSION,patchVERSION,releaseType) will wipe the Saved Variables and provide you with this basic structure:

 

SavedVarDB = {

   ["options"] = {},    ["version"] = {       ["major"] = ma,       ["minor"] = mi,       ["patch"] = pa,       ["release"] = rel,    },    ["characterData"] = {} }

 

You can call stk:firstUpper("string of text"); to capitalize the first letter of a string, and force all other letters to lowercase. Particularly useful for some instances where Blizzard puts class names or character names in all caps.

 

local foo = stk:firstUpper(bar); or

local foo = stk:firstUpper("HEY GUYS!"); results in: Hey guys!

 

If your addon has a UI then you can call stk:savePosition(SavedVarDB,frame); to save the position the user dragged your window to, and you can restore the position of the frame when showing it with stk:setPosition(SavedVarDB,frame);

Addons which use this library include:

Warband Wallet