You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.6 KiB
138 lines
3.6 KiB
|
3 years ago
|
|
||
|
|
-- some usefull namespace to locals
|
||
|
|
local addon, ns = ...
|
||
|
|
local C, L = ns.LC.color, ns.L
|
||
|
|
local ACD = LibStub("AceConfigDialog-3.0");
|
||
|
|
|
||
|
|
--
|
||
|
|
-- Chat command handler
|
||
|
|
--
|
||
|
|
local spacer = "||"
|
||
|
|
|
||
|
|
local commands = {
|
||
|
|
options = {
|
||
|
|
desc = L["Option panel"],
|
||
|
|
func = ns.ToggleBlizzOptionPanel
|
||
|
|
},
|
||
|
|
broker = "options",
|
||
|
|
config = "options",
|
||
|
|
reset = {
|
||
|
|
desc = L["CmdResetInfo"],
|
||
|
|
func = ns.resetConfigs
|
||
|
|
},
|
||
|
|
list = {
|
||
|
|
desc = L["CmdStatusInfo"],
|
||
|
|
func = function()
|
||
|
|
ns:print(spacer, L["Modules"])
|
||
|
|
for k, v in ns.pairsByKeys(ns.modules) do
|
||
|
|
if v and ns.profile[k] then
|
||
|
|
local c,s = "red",OFF;
|
||
|
|
if ns.profile[k].enabled==true then
|
||
|
|
c,s = "green",L["On"];
|
||
|
|
end
|
||
|
|
ns:print(spacer, (k==L[k] and "%s | %s" or "%s | %s - ( %s )"):format(C(c,s),C("ltyellow",k),L[k]))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
},
|
||
|
|
toggle = {
|
||
|
|
desc = L["CmdToggleInfo"],
|
||
|
|
func = function(arg)
|
||
|
|
--cmd = cmd:gsub("^%l", string.upper);
|
||
|
|
if not ns.modules[arg] then
|
||
|
|
local lArg = arg:lower();
|
||
|
|
for k in pairs(ns.modules)do
|
||
|
|
if k:lower() == lArg then
|
||
|
|
arg = k;
|
||
|
|
break;
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
if ns.modules[arg] then
|
||
|
|
ns.profile[arg].enabled = not ns.profile[arg].enabled;
|
||
|
|
if ns.profile[arg].enabled then
|
||
|
|
ns.moduleInit(arg);
|
||
|
|
ns:print(spacer,arg,ADDON_ENABLED);
|
||
|
|
else
|
||
|
|
ns:print(spacer,arg,ADDON_DISABLED,L["CmdNeedReload"]);
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
},
|
||
|
|
equip = {
|
||
|
|
desc = L["CmdEquipInfo"],
|
||
|
|
func = function(cmd)
|
||
|
|
local num = C_EquipmentSet.GetNumEquipmentSets()
|
||
|
|
if cmd == nil then
|
||
|
|
ns:print(spacer,L["CmdEquipUsage"]);
|
||
|
|
ns:print(spacer,L["CmdEquipSets"]);
|
||
|
|
if num>0 then
|
||
|
|
for i=0, num-1 do -- very rare in wow... equipment set index starts with 0 instead of 1
|
||
|
|
local eName, _, _, isEquipped, _, _, _, missingItems = C_EquipmentSet.GetEquipmentSetInfo(i);
|
||
|
|
ns:print(spacer,C((isEquipped and "yellow") or (missingItems>0 and "red") or "ltblue",eName),missingItems>0 and " - "..C("ltyellow",L["CmdEquipMiss"]:format(missingItems)) or nil);
|
||
|
|
end
|
||
|
|
else
|
||
|
|
ns:print(spacer,L["No sets found"]);
|
||
|
|
end
|
||
|
|
else
|
||
|
|
local validEquipment
|
||
|
|
for i=1, C_EquipmentSet.GetNumEquipmentSets() do
|
||
|
|
local eName, _, _, _, _, _, _, _ = C_EquipmentSet.GetEquipmentSetInfo(i)
|
||
|
|
if cmd==eName then validEquipment = true end
|
||
|
|
end
|
||
|
|
if (not validEquipment) then
|
||
|
|
ns:print(spacer,L["CmdEquipInvalid"])
|
||
|
|
else
|
||
|
|
ns.toggleEquipment(cmd)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
},
|
||
|
|
version = {
|
||
|
|
desc = L["CmdVersion"],
|
||
|
|
func = function()
|
||
|
|
ns:print(GAME_VERSION_LABEL,"4.5.10-release");
|
||
|
|
end
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function ns.AddChatCommand(key,data)
|
||
|
|
if not commands[key] then
|
||
|
|
commands[key] = data;
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function ns.RegisterSlashCommand()
|
||
|
|
SlashCmdList["BROKER_EVERYTHING"] = function(cmd)
|
||
|
|
local cmd, arg = strsplit(" ", cmd, 2)
|
||
|
|
cmd = cmd:lower()
|
||
|
|
|
||
|
|
if cmd=="" then
|
||
|
|
ns:print(spacer, L["CmdUsage"])
|
||
|
|
for name,obj in ns.pairsByKeys(commands) do
|
||
|
|
if type(obj)=="string" and commands[obj] and commands[obj].desc then
|
||
|
|
obj = commands[obj];
|
||
|
|
end
|
||
|
|
if obj.desc then
|
||
|
|
ns:print(spacer, ("%s - %s"):format(C("yellow",name),obj.desc))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
ns:print(C("orange",L["CmdInfoOptional"]));
|
||
|
|
return;
|
||
|
|
end
|
||
|
|
|
||
|
|
if commands[cmd]~=nil and type(commands[cmd])=="string" then
|
||
|
|
cmd = commands[cmd];
|
||
|
|
end
|
||
|
|
|
||
|
|
if commands[cmd]~=nil and type(commands[cmd].func)=="function" then
|
||
|
|
commands[cmd].func(arg);
|
||
|
|
ns:print(C("orange",L["CmdInfoOptional"]));
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
|
||
|
|
SLASH_BROKER_EVERYTHING1 = "/broker_everything"
|
||
|
|
SLASH_BROKER_EVERYTHING2 = "/be"
|
||
|
|
end
|