--[[ slash Slash command handler for Bongos All commands start with /bg or /bongos Valid strings for : - an action bar bags - bag bar menu - menu bar pet - pet bar class - class bar stats - stat bar all - all bars --]] local function GetRestofMessage(args) if args[2] then local name = args[2]; for i = 3, table.getn(args) do name = name .. " " .. args[i]; end return name; end end local function printMsg(msg) DEFAULT_CHAT_FRAME:AddMessage(msg or "error", 0, 1, 0.4); end --Display commands local function ShowCommands() printMsg("Bongos Commands:"); printMsg("/bob - Shows the options menu, if present."); printMsg("/bob help or /bob ? - Displays list of commands"); --bar commands printMsg("/bob lock - Locks the position all bars"); printMsg("/bob unlock - Unlocks the positions all bars"); printMsg("/bob show - Shows the given bar"); printMsg("/bob hide - Hides the given bar"); printMsg("/bob toggle - Toggles the given bar"); printMsg("/bob scale - Set the scale of the given bar. 1 is normal size."); printMsg("/bob setalpha - Set the opacity of a bar to . 0 is translucent, 1 is opaque."); printMsg("/bob stickybars - Enable/disable bars automatically \"sticking\" to each other when positioning them"); --Profile commands printMsg("/bob load - Loads the given layout."); printMsg("/bob save - Saves the current setup as ."); printMsg("/bob delete - Deletes the given saved layout."); printMsg("/bob setdefault - Sets a given saved profile as the default settings for new characters."); end --Slash handler SlashCmdList["BongosCOMMAND"] = function(msg) if msg == "" then if BOptions then BOptions:Show(); else local _, _, _, enabled = GetAddOnInfo("Bongos_Options"); if enabled then LoadAddOn("Bongos_Options"); else ShowCommands(); end end else local args = {}; for word in string.gfind(msg, "[^%s]+") do table.insert(args, word); end local cmd = string.lower(args[1]); if cmd == "help" or cmd == "?" then ShowCommands(); elseif cmd == "lock" then Bongos_SetLock(true); elseif cmd == "unlock" then Bongos_SetLock(nil); elseif cmd == "stickybars" then Bongos_SetStickyBars(string.lower(args[2]) == "on"); elseif cmd == "show" then for i = 2, table.getn(args) do Bongos_ForBar(string.lower(args[i]), BBar.Show, 1); end elseif cmd == "hide" then for i = 2, table.getn(args) do Bongos_ForBar(string.lower(args[i]), BBar.Hide, 1); end elseif cmd == "toggle" then for i = 2, table.getn(args) do Bongos_ForBar(string.lower(args[i]), BBar.Toggle, 1); end elseif cmd == "scale" then local size = table.getn(args); local scale = tonumber(args[size]); for i = 2, size - 1 do Bongos_ForBar(string.lower(args[i]), BBar.SetScale, scale, 1); end elseif cmd == "setalpha" then local size = table.getn(args); local alpha = tonumber(args[size]); for i = 2, size - 1 do Bongos_ForBar(string.lower(args[i]), BBar.SetAlpha, alpha, 1); end elseif cmd == "reset" then BBar.ForAllIDs(BBar.Delete); BScript.CallStartup(); elseif cmd == "load" then BProfile.Load(GetRestofMessage(args)); elseif cmd == "save" then BProfile.Save(GetRestofMessage(args)); elseif cmd == "delete" then BProfile.Delete(GetRestofMessage(args)); elseif cmd == "setdefault" then BProfile.SetDefault(GetRestofMessage(args)); elseif cmd == "reuse" then if BongosSets.dontReuse then BongosSets.dontReuse = nil; else BongosSets.dontReuse = 1; end ReloadUI() else BMsg("'" .. (cmd or "error") .."' is an unknown command."); end end end SLASH_BongosCOMMAND1 = "/bongos"; SLASH_BongosCOMMAND2 = "/bob";