vanilla-wow-addons – Rev 1
?pathlinks?
-- registers the mod with Cosmos
function CooldownCount_Register_Cosmos()
if ( ( Cosmos_UpdateValue ) and ( Cosmos_RegisterConfiguration ) and ( CooldownCount_Cosmos_Registered == 0 ) ) then
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT",
"SECTION",
TEXT(COOLDOWNCOUNT_CONFIG_HEADER),
TEXT(COOLDOWNCOUNT_CONFIG_HEADER_INFO)
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_HEADER",
"SEPARATOR",
TEXT(COOLDOWNCOUNT_CONFIG_HEADER),
TEXT(COOLDOWNCOUNT_CONFIG_HEADER_INFO)
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_ENABLED",
"CHECKBOX",
TEXT(COOLDOWNCOUNT_ENABLED),
TEXT(COOLDOWNCOUNT_ENABLED_INFO),
CooldownCount_Toggle_Enabled,
CooldownCount_Enabled
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_ROGUE_STEALTH",
"CHECKBOX",
TEXT(COOLDOWNCOUNT_ROGUE_STEALTH),
TEXT(COOLDOWNCOUNT_ROGUE_STEALTH_INFO),
CooldownCount_Toggle_RogueStealth,
CooldownCount_RogueStealth
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_NOSPACES",
"CHECKBOX",
TEXT(COOLDOWNCOUNT_NOSPACES),
TEXT(COOLDOWNCOUNT_NOSPACES_INFO),
CooldownCount_Toggle_NoSpaces,
CooldownCount_NoSpaces
);
CooldownCount_UseLongTimerDescriptions = 0;
--[[
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_USELONGTIMERS",
"CHECKBOX",
TEXT(COOLDOWNCOUNT_USELONGTIMERS),
TEXT(COOLDOWNCOUNT_USELONGTIMERS_INFO),
CooldownCount_Toggle_UseLongTimers,
CooldownCount_UseLongTimerDescriptions
);
]]--
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_FLASHSPEED",
"SLIDER",
TEXT(COOLDOWNCOUNT_FLASHSPEED),
TEXT(COOLDOWNCOUNT_FLASHSPEED_INFO),
function (checked, value) CooldownCount_SetFlashSpeed(value, true); end,
1,
CooldownCount_TimeBetweenFlashes,
0.1,
1,
COOLDOWNCOUNT_FLASHSPEED_SLIDER_DESCRIPTION,
0.1,
1,
COOLDOWNCOUNT_FLASHSPEED_SLIDER_APPEND,
1
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_USERSCALE",
"SLIDER",
TEXT(COOLDOWNCOUNT_USERSCALE),
TEXT(COOLDOWNCOUNT_USERSCALE_INFO),
function (checked, value) CooldownCount_SetUserScale(value, true); end,
1,
CooldownCount_UserScale,
0.1,
5,
COOLDOWNCOUNT_USERSCALE_SLIDER_DESCRIPTION,
0.1,
1,
COOLDOWNCOUNT_USERSCALE_SLIDER_APPEND,
100
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_ALPHA",
"SLIDER",
TEXT(COOLDOWNCOUNT_ALPHA),
TEXT(COOLDOWNCOUNT_ALPHA_INFO),
function (checked, value) CooldownCount_Set_Alpha(value, true); end,
1,
CooldownCountOptions.alpha,
0.01,
1,
COOLDOWNCOUNT_ALPHA_SLIDER_DESCRIPTION,
0.01,
1,
COOLDOWNCOUNT_ALPHA_SLIDER_APPEND,
100
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_HIDEUNTILTIMELEFT",
"SLIDER",
TEXT(COOLDOWNCOUNT_HIDEUNTILTIMELEFT),
TEXT(COOLDOWNCOUNT_HIDEUNTILTIMELEFT_INFO),
function (checked, value) CooldownCount_SetHideUntilTimeLeft(value, true); end,
1,
CooldownCount_HideUntilTimeLeft,
0,
60,
COOLDOWNCOUNT_FLASHSPEED_SLIDER_DESCRIPTION,
1,
1,
COOLDOWNCOUNT_FLASHSPEED_SLIDER_APPEND,
1
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_NORMALCOLORSET",
"BUTTON",
COOLDOWNCOUNT_NORMALCOLOR_SET,
COOLDOWNCOUNT_NORMALCOLOR_SET_INFO,
CooldownCount_NormalColorSetButton,
0,
0,
0,
0,
COOLDOWNCOUNT_SETTEXT
);
Cosmos_RegisterConfiguration(
"COS_COOLDOWNCOUNT_FLASHCOLORSET",
"BUTTON",
COOLDOWNCOUNT_FLASHCOLOR_SET,
COOLDOWNCOUNT_FLASHCOLOR_SET_INFO,
CooldownCount_FlashColorSetButton,
0,
0,
0,
0,
COOLDOWNCOUNT_SETTEXT
);
CooldownCount_Cosmos_Registered = 1;
end
end
function CooldownCount_Extract_NextParameter(msg)
local params = msg;
local command = params;
local index = strfind(command, " ");
if ( index ) then
command = strsub(command, 1, index-1);
params = strsub(params, index+1);
else
params = "";
end
return command, params;
end
-- registers the mod with the system, integrating it with slash commands and "master" AddOns
function CooldownCount_Register()
if ( Cosmos_RegisterConfiguration ) then
CooldownCount_Register_Cosmos();
else
SlashCmdList["COOLDOWNCOUNTSLASHMAIN"] = CooldownCount_Main_ChatCommandHandler;
SLASH_COOLDOWNCOUNTSLASHMAIN1 = "/cooldowncount";
SLASH_COOLDOWNCOUNTSLASHMAIN2 = "/cc";
--[[
SlashCmdList["COOLDOWNCOUNTSLASHENABLE"] = CooldownCount_Enable_ChatCommandHandler;
SLASH_COOLDOWNCOUNTSLASHENABLE1 = "/cooldowncountenable";
SLASH_COOLDOWNCOUNTSLASHENABLE2 = "/ccenable";
SLASH_COOLDOWNCOUNTSLASHENABLE3 = "/cce";
SLASH_COOLDOWNCOUNTSLASHENABLE4 = "/cooldowncountdisable";
SLASH_COOLDOWNCOUNTSLASHENABLE5 = "/ccdisable";
SLASH_COOLDOWNCOUNTSLASHENABLE6 = "/ccd";
SLASH_COOLDOWNCOUNTSLASHENABLE7 = "/cooldowncounttoggle";
SLASH_COOLDOWNCOUNTSLASHENABLE8 = "/cctoggle";
SLASH_COOLDOWNCOUNTSLASHENABLE9 = "/cct";
SlashCmdList["COOLDOWNCOUNTSLASHFLASHSPEED"] = CooldownCount_FlashSpeed_ChatCommandHandler;
SLASH_COOLDOWNCOUNTSLASHFLASHSPEED1 = "/cooldowncountflashspeed";
SLASH_COOLDOWNCOUNTSLASHFLASHSPEED2 = "/ccflashspeed";
SLASH_COOLDOWNCOUNTSLASHFLASHSPEED3 = "/ccfs";
SlashCmdList["COOLDOWNCOUNTSLASHSCALE"] = CooldownCount_Scale_ChatCommandHandler;
SLASH_COOLDOWNCOUNTSLASHSCALE1 = "/cooldowncountscale";
SLASH_COOLDOWNCOUNTSLASHSCALE2 = "/ccscale";
SLASH_COOLDOWNCOUNTSLASHSCALE3 = "/ccs";
]]--
end
this:RegisterEvent("ACTIONBAR_PAGE_CHANGED");
if ( Cosmos_RegisterChatCommand ) then
local CooldownCountMainCommands = {"/cooldowncount", "/cc", "/cooldowncountenable", "/ccenable", "/cce", "/cooldowncountdisable", "/ccdisable", "/ccd","/cooldowncounttoggle","/cctoggle","/cct"};
Cosmos_RegisterChatCommand (
"COOLDOWNCOUNT_MAIN_COMMANDS", -- Some Unique Group ID
CooldownCountMainCommands, -- The Commands
CooldownCount_Main_ChatCommandHandler,
COOLDOWNCOUNT_CHAT_COMMAND_MAIN_INFO -- Description String
);
--[[
local CooldownCountEnableCommands = {"/cooldowncountenable", "/ccenable", "/cce", "/cooldowncountdisable", "/ccdisable", "/ccd","/cooldowncounttoggle","/cctoggle","/cct"};
Cosmos_RegisterChatCommand (
"COOLDOWNCOUNT_ENABLE_COMMANDS", -- Some Unique Group ID
CooldownCountEnableCommands, -- The Commands
CooldownCount_Enable_ChatCommandHandler,
COOLDOWNCOUNT_CHAT_COMMAND_ENABLE_INFO -- Description String
);
local CooldownCountFlashSpeedCommands = {"/cooldowncountflashspeed", "/ccflashspeed", "/ccfs"};
Cosmos_RegisterChatCommand (
"COOLDOWNCOUNT_FLASHSPEED_COMMANDS", -- Some Unique Group ID
CooldownCountFlashSpeedCommands, -- The Commands
CooldownCount_FlashSpeed_ChatCommandHandler,
COOLDOWNCOUNT_CHAT_COMMAND_FLASHSPEED_INFO -- Description String
);
local CooldownCountScaleCommands = {"/cooldowncountscale", "/ccscale", "/ccs"};
Cosmos_RegisterChatCommand (
"COOLDOWNCOUNT_SCALE_COMMANDS", -- Some Unique Group ID
CooldownCountScaleCommands, -- The Commands
CooldownCount_Scale_ChatCommandHandler,
COOLDOWNCOUNT_CHAT_COMMAND_SCALE_INFO -- Description String
);
]]--
end
end
function CooldownCount_GetChatValue(msg)
msg = string.lower(msg);
-- Toggle appropriately
if ( (string.find(msg, COOLDOWNCOUNT_PARAM_ON)) or ((string.find(msg, '1')) and (not string.find(msg, '-1')) ) ) then
return 1;
else
if ( (string.find(msg, COOLDOWNCOUNT_PARAM_OFF)) or (string.find(msg, '0')) ) then
return 0;
else
return -1;
end
end
end
function CooldownCount_Enable_ChatCommandHandler(msg)
CooldownCount_Toggle_Enabled(1);
end
function CooldownCount_Disable_ChatCommandHandler(msg)
CooldownCount_Toggle_Enabled(0);
end
function CooldownCount_Set_ChatCommandHandler(msg)
local value = CooldownCount_GetChatValue(msg);
CooldownCount_Toggle_Enabled(value);
end
function CooldownCount_NoSpaces_ChatCommandHandler(msg)
local value = CooldownCount_GetChatValue(msg);
CooldownCount_Toggle_NoSpaces(value);
end
function CooldownCount_UseLongTimers_ChatCommandHandler(msg)
local value = CooldownCount_GetChatValue(msg);
CooldownCount_Toggle_UseLongTimers(value);
end
function CooldownCount_Scale_ChatCommandHandler(msg)
local scale = nil;
if ( msg ) and ( strlen(msg) > 0 ) then
scale = tonumber(msg);
end
if ( scale ) then
CooldownCount_SetUserScale(scale);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_USERSCALE_NOT_SPECIFIED);
end
end
function CooldownCount_Alpha_ChatCommandHandler(msg)
local alpha = nil;
if ( msg ) and ( strlen(msg) > 0 ) then
alpha = tonumber(msg);
end
if ( alpha ) then
CooldownCount_Set_Alpha(alpha);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_ALPHA_NOT_SPECIFIED);
end
end
function CooldownCount_HideUntilTimeLeft_ChatCommandHandler(msg)
local timeLeft = nil;
if ( msg ) and ( strlen(msg) > 0 ) then
timeLeft = tonumber(msg);
end
if ( timeLeft ) then
CooldownCount_SetHideUntilTimeLeft(timeLeft);
else
CooldownCount_Print(COOLDOWNCOUNT_CHAT_HIDEUNTILTIMELEFT_NOT_SPECIFIED);
end
end
-- Handles chat - e.g. slashcommands - enabling/disabling the CooldownCount
function CooldownCount_FlashSpeed_ChatCommandHandler(msg)
msg = string.lower(msg);
-- Toggle appropriately
local num = tonumber(msg);
if ( num ) then
CooldownCount_SetFlashSpeed(num);
end
end
function CooldownCount_PrintUsage()
for k, v in COOLDOWNCOUNT_SLASH_USAGE do
CooldownCount_Print(v);
end
end
function CooldownCount_Main_ChatCommandHandler(msg)
local cmd, params = CooldownCount_Extract_NextParameter(msg);
cmd = string.lower(cmd);
if ( string.find(cmd, COOLDOWNCOUNT_SLASH_ENABLE ) ) then
return CooldownCount_Enable_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_DISABLE ) ) then
return CooldownCount_Disable_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_SET ) ) then
return CooldownCount_Set_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_FLASHSPEED ) ) then
return CooldownCount_FlashSpeed_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_SCALE ) ) then
return CooldownCount_Scale_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_ALPHA ) ) then
return CooldownCount_Alpha_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_NOSPACES ) ) then
return CooldownCount_NoSpaces_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_NORMALCOLOR ) ) then
return CooldownCount_NormalColorSetButton(true);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_FLASHCOLOR ) ) then
return CooldownCount_FlashColorSetButton(true);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_USELONGTIMERS ) ) then
return CooldownCount_UseLongTimers_ChatCommandHandler(params);
elseif ( string.find(cmd, COOLDOWNCOUNT_SLASH_HIDEUNTILTIMELEFT ) ) then
return CooldownCount_HideUntilTimeLeft_ChatCommandHandler(params);
else
CooldownCount_PrintUsage();
return;
end
end
function CooldownCount_LoadOptions()
if ( CooldownCount_Cosmos_Registered == 0 ) then
local value = CooldownCount_Enabled;
if (value == nil ) then
-- defaults to off
value = 0;
end
CooldownCount_Toggle_Enabled(value);
local value = CooldownCount_TimeBetweenFlashes;
if (value == nil ) then
value = 0.25;
end
CooldownCount_SetFlashSpeed(value);
local value = CooldownCount_UserScale;
if (value == nil ) then
value = 2;
end
CooldownCount_SetUserScale(value);
local value = CooldownCount_UseLongTimerDescriptions;
if (value == nil ) then
value = 1;
end
CooldownCount_Toggle_UseLongTimers(value);
if ( CooldownCountOptions ) then
CooldownCount_Set_Alpha(CooldownCountOptions.alpha);
CooldownCount_Set_NormalColor(CooldownCountOptions.color.normal);
CooldownCount_Set_FlashColor(CooldownCountOptions.color.flash);
end
local value = CooldownCount_NoSpaces;
if ( value == nil ) then
value = 0;
end
CooldownCount_Toggle_NoSpaces(value);
local value = CooldownCount_HideUntilTimeLeft;
if ( value == nil ) then
value = 0;
end
CooldownCount_SetHideUntilTimeLeft(value);
end
end