vanilla-wow-addons – Rev 1
?pathlinks?
AUTODINGNAME = "AutoDing";
AUTODINGDESC = "automatically announces levelup's to various definable channels.";
AUTODINGVER = "0.8";
AUTODINGLASCHANGED = "0.8";
AUTODINGFRAME = "AutoDingFrame";
AUTODINGOPTIONSFRAME = "AutoDingConfigFrame";
SLASH_AUTODING1 = "/AutoDing";
SLASH_AUTODING2 = "/ad";
UniAutoDing_NameRegistered = 0;
ADmsg = "";
AUTODING_DELAYTIME = 1;
function UniAutoDing_OnLoad()
SlashCmdList["AUTODING"] = function(msg)
UniAutoDing_Command(msg);
end
this:RegisterEvent("VARIABLES_LOADED");
this:RegisterEvent("PLAYER_LEVEL_UP");
end
function UniAutoDing_OnEvent()
if (event == "PLAYER_LEVEL_UP") then
if (UniAutoDingSaved[AutoDing_Player].AutoDing == 1) then
AutoDing_FormatDing();
UniAutoDing_ChannelMessage(ADmsg, UniAutoDingSaved[AutoDing_Player].Channel);
end
if UnitExists("Party1") then
if (UniAutoDingSaved[AutoDing_Player].PartyDing == 1) then
if UniAutoDingSaved[AutoDing_Player].Channel ~= "PARTY" then
UniAutoDing_ChannelMessage(ADmsg, PARTY);
end
end
end
if (UniAutoDingSaved[AutoDing_Player].Screenie == 1) then
UniAutoDing_ChatPrint("Taking Delayed Screenie...");
AD_StartTime = GetTime();
AutoDingFrame:Show();
end
end
if (event == "VARIABLES_LOADED") then
this:UnregisterEvent("VARIABLES_LOADED");
if (myAddOnsFrame) then
myAddOnsList.AutoDing = {
name = AUTODINGNAME,
description = AUTODINGDESC,
version = AUTODINGVER,
category = MYADDONS_CATEGORY_CHAT,
frame = AUTODINGFRAME,
optionsframe = AUTODINGOPTIONSFRAME };
end
AutoDing_Player = UnitName("player") .. " of " .. GetCVar("realmName");
if( not UniAutoDingSaved ) then
UniAutoDingSaved = {};
UniAutoDing_ResetVars();
end
if (not UniAutoDingSaved.Version) or (UniAutoDingSaved.Version < AUTODINGLASCHANGED) then
UniAutoDing_ResetVars();
UniAutoDing_ChatPrint("AutoDing Settings reset to default on version upgrade to prevent errors.");
UIErrorsFrame:AddMessage("AutoDing v"..AUTODINGVER.." by Unique has loaded.", 1.0, 0.0, 0.0, 1.0, 30);
if( DEFAULT_CHAT_FRAME ) then
DEFAULT_CHAT_FRAME:AddMessage("AutoDing v"..AUTODINGVER.." by Unique has loaded. \'/autoding\' for instructions.", 0.9, 0.25, 1.0);
end
end
if (not UniAutoDingSaved[AutoDing_Player]) then
UniAutoDing_ResetVars();
end
if (UniAutoDingSaved["Version"] ~= AUTODINGVER) then
UniAutoDingSaved["Version"] = AUTODINGVER;
end
-- Variable Setup Attempt
if ((UniAutoDingSaved["Channel"] == nil) or not (UniAutoDingSaved["Channel"])) then
UniAutoDingSaved["Channel"] = GUILD;
end
if ((UniAutoDingSaved["AutoDing"] == nil) or not (UniAutoDingSaved["AutoDing"])) then
UniAutoDingSaved["AutoDing"] = 1;
end
if ((UniAutoDingSaved["Version"] == nil) or not (UniAutoDingSaved["Version"])) then
UniAutoDingSaved["Version"] = AUTODINGVER;
end
if ((UniAutoDingSaved["PartyDing"] == nil) or not (UniAutoDingSaved["PartyDing"])) then
UniAutoDingSaved["PartyDing"] = 1;
end
if ((UniAutoDingSaved["Screenie"] == nil) or not (UniAutoDingSaved["Screenie"])) then
UniAutoDingSaved["Screenie"] = 0;
end
if ((UniAutoDingSaved["DingString"] == nil) or not (UniAutoDingSaved["DingString"])) then
UniAutoDingSaved["DingString"] = "Ding, level $L (AutoDinging since 2005)";
end
ADmsg = UniAutoDingSaved["DingString"];
end
end
function UniAutoDing_OnUpdate()
if not (AutoDingFrame:IsVisible()) then --Shouldn't get OnUpdates whilst hidden, but you never know :).
return;
end
-- If our initial wait time hasn't passed, then return
if (GetTime() < (AD_StartTime + AUTODING_DELAYTIME)) then
return;
end
-- Wait time has passed. Quit receiving updates and take the screenshot.
AutoDingFrame:Hide();
TakeScreenshot();
end
function UniAutoDing_Command(ADcommand)
if (not ADcommand) then
return;
end
local i,j, cmd, param = string.find(ADcommand, "^([^ ]+) (.+)$");
if (not cmd) then cmd = ADcommand; end
if (not cmd) then cmd = ""; end
if (not param) then param = ""; end
if ( cmd and strlen(cmd) > 0 ) then
cmd = strlower(cmd);
end
if (cmd == "status") then
if (param == "on") then
UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
UniAutoDing_ChatPrint("Ding will be sent to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel upon levelling up.");
elseif (param == "off") then
UniAutoDingSaved[AutoDing_Player].AutoDing = 0;
UniAutoDing_ChatPrint("No Ding will be sent to channels, you'll have to do it yourself! Gasp! Too much effort! :(");
else
UniAutoDing_ChatPrint("Type \'/ad status on/off\' to turn settings on or off.");
if not (UniAutoDingSaved) then
UniAutoDing_ResetVars();
UniAutoDing_ChatPrint("Settings reset to default as settings not found.");
return;
else
AutoDingTest();
end
end
elseif (cmd == "test") then
AutoDingTest();
elseif (cmd == "config") then
AutoDingConfigFrame:Show();
elseif (cmd == "toggle") then
if (UniAutoDingSaved[AutoDing_Player].AutoDing == 1) then
UniAutoDingSaved[AutoDing_Player].AutoDing = 0;
else
UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
end
elseif (cmd == "endmessage") or (cmd == "firstmessage") or (cmd == "ding") or (cmd == "message") then
UniAutoDing_ChatPrint("Use \'/ad config\' to setup Ding messages now");
elseif (cmd == "party") then
if (UniAutoDingSaved[AutoDing_Player].PartyDing == 1) then
UniAutoDingSaved[AutoDing_Player].PartyDing = 0;
UniAutoDing_ChatPrint("Ding to Party if grouped is off.");
elseif (UniAutoDingSaved[AutoDing_Player].PartyDing == 0) then
UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
UniAutoDing_ChatPrint("Ding to Party if grouped is on.");
end
elseif (cmd == "channel") then
if (param == "raid") or (param == "guild") or (param == "party") or (param == "say") or (param == "yell") then
UniAutoDingSaved[AutoDing_Player].Channel = strupper(param);
UniAutoDing_ChatPrint("Autoding set to output to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel");
if AutoDingConfigFrame:IsVisible() then
AutoDingConfig_SetValues();
end
else
UniAutoDing_ChatPrint("Valid parameters are guild, party, say, yell or raid. So \'|cff66ccff/ad channel guild|r\' would set the output to guild channel.");
end
elseif (cmd == "screenie") then
if (UniAutoDingSaved[AutoDing_Player].Screenie == 1) then
UniAutoDingSaved[AutoDing_Player].Screenie = 0;
else
UniAutoDingSaved[AutoDing_Player].Screenie = 1;
end
elseif (cmd == "reset") then
UniAutoDing_ChatPrint("AutoDing settings reset to default values.");
UniAutoDing_ResetVars();
else
UniAutoDing_ChatPrint("AutoDing mod by Unique of Dalaran.");
UniAutoDing_ChatPrint("|cffffffffSlash Command Usage|r:");
UniAutoDing_ChatPrint("\'|cff66ccff/ad status|r\' - displays current status/settings of the mod and how to switch it on/off.");
UniAutoDing_ChatPrint("\'|cff66ccff/ad config|r\' - Opens up Config Window where you can setup everything.");
UniAutoDing_ChatPrint("\'|cff66ccff/ad channel|r\' - displays instructions for setting channel to output to.");
UniAutoDing_ChatPrint("\'|cff66ccff/ad reset|r\' - resets all settings to default.");
end
end
function UniAutoDing_ResetVars()
if not (UniAutoDingSaved) then
UniAutoDingSaved = {};
end
if not (AutoDing_Player) then
AutoDing_Player = UnitName("player") .. " of " .. GetCVar("realmName");
end
if not (UniAutoDingSaved[AutoDing_Player]) then
UniAutoDingSaved[AutoDing_Player] = {};
UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
UniAutoDingSaved[AutoDing_Player].Version = AUTODINGVER;
UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
UniAutoDingSaved[AutoDing_Player].Screenie = 0;
UniAutoDingSaved[AutoDing_Player].DingString = "Woot - Ding, level $L (AutoDinging since 2005)";
else
UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
UniAutoDingSaved[AutoDing_Player].Version = AUTODINGVER;
UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
UniAutoDingSaved[AutoDing_Player].Screenie = 0;
UniAutoDingSaved[AutoDing_Player].DingString = "Woot - Ding, level $L (AutoDinging since 2005)";
end
end
------------------------------------------------------------------------------------------------
-- Chat Messaging Functions - making my life easier
------------------------------------------------------------------------------------------------
function UniAutoDing_ChatPrint(str)
if ( DEFAULT_CHAT_FRAME ) then
DEFAULT_CHAT_FRAME:AddMessage(str, 1.0, 1.0, 0.0);
end
end
function UniAutoDing_ChannelMessage(message, channel)
SendChatMessage(message, channel);
end
function AutoDing_FormatDing()
local ADLevel = (UnitLevel("player") +1 );
ADmsg = UniAutoDingSaved[AutoDing_Player].DingString;
ADmsg = string.gsub(ADmsg, "$L", ADLevel);
return ADmsg;
end
function AutoDingTest()
AutoDing_FormatDing();
if UniAutoDingSaved[AutoDing_Player].AutoDing == 1 then
UniAutoDing_ChatPrint("AutoDing is currently |cff66ccffon|r and will export the message \""..ADmsg.."\" to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel.");
elseif UniAutoDingSaved[AutoDing_Player].AutoDing == 0 then
UniAutoDing_ChatPrint("AutoDing is currently |cff66ccffoff|r and won't export the message \""..ADmsg.."\" to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel.");
end
end
Generated by GNU Enscript 1.6.5.90.