vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 AUTODINGNAME = "AutoDing";
2 AUTODINGDESC = "automatically announces levelup's to various definable channels.";
3 AUTODINGVER = "0.8";
4 AUTODINGLASCHANGED = "0.8";
5 AUTODINGFRAME = "AutoDingFrame";
6 AUTODINGOPTIONSFRAME = "AutoDingConfigFrame";
7 SLASH_AUTODING1 = "/AutoDing";
8 SLASH_AUTODING2 = "/ad";
9 UniAutoDing_NameRegistered = 0;
10 ADmsg = "";
11 AUTODING_DELAYTIME = 1;
12  
13 function UniAutoDing_OnLoad()
14 SlashCmdList["AUTODING"] = function(msg)
15 UniAutoDing_Command(msg);
16 end
17 this:RegisterEvent("VARIABLES_LOADED");
18 this:RegisterEvent("PLAYER_LEVEL_UP");
19 end
20  
21 function UniAutoDing_OnEvent()
22 if (event == "PLAYER_LEVEL_UP") then
23 if (UniAutoDingSaved[AutoDing_Player].AutoDing == 1) then
24 AutoDing_FormatDing();
25 UniAutoDing_ChannelMessage(ADmsg, UniAutoDingSaved[AutoDing_Player].Channel);
26 end
27 if UnitExists("Party1") then
28 if (UniAutoDingSaved[AutoDing_Player].PartyDing == 1) then
29 if UniAutoDingSaved[AutoDing_Player].Channel ~= "PARTY" then
30 UniAutoDing_ChannelMessage(ADmsg, PARTY);
31 end
32 end
33 end
34 if (UniAutoDingSaved[AutoDing_Player].Screenie == 1) then
35 UniAutoDing_ChatPrint("Taking Delayed Screenie...");
36 AD_StartTime = GetTime();
37 AutoDingFrame:Show();
38 end
39 end
40 if (event == "VARIABLES_LOADED") then
41 this:UnregisterEvent("VARIABLES_LOADED");
42 if (myAddOnsFrame) then
43 myAddOnsList.AutoDing = {
44 name = AUTODINGNAME,
45 description = AUTODINGDESC,
46 version = AUTODINGVER,
47 category = MYADDONS_CATEGORY_CHAT,
48 frame = AUTODINGFRAME,
49 optionsframe = AUTODINGOPTIONSFRAME };
50 end
51  
52 AutoDing_Player = UnitName("player") .. " of " .. GetCVar("realmName");
53  
54 if( not UniAutoDingSaved ) then
55 UniAutoDingSaved = {};
56 UniAutoDing_ResetVars();
57  
58 end
59 if (not UniAutoDingSaved.Version) or (UniAutoDingSaved.Version < AUTODINGLASCHANGED) then
60 UniAutoDing_ResetVars();
61 UniAutoDing_ChatPrint("AutoDing Settings reset to default on version upgrade to prevent errors.");
62 UIErrorsFrame:AddMessage("AutoDing v"..AUTODINGVER.." by Unique has loaded.", 1.0, 0.0, 0.0, 1.0, 30);
63 if( DEFAULT_CHAT_FRAME ) then
64 DEFAULT_CHAT_FRAME:AddMessage("AutoDing v"..AUTODINGVER.." by Unique has loaded. \'/autoding\' for instructions.", 0.9, 0.25, 1.0);
65 end
66 end
67  
68 if (not UniAutoDingSaved[AutoDing_Player]) then
69 UniAutoDing_ResetVars();
70 end
71  
72 if (UniAutoDingSaved["Version"] ~= AUTODINGVER) then
73 UniAutoDingSaved["Version"] = AUTODINGVER;
74 end
75 -- Variable Setup Attempt
76 if ((UniAutoDingSaved["Channel"] == nil) or not (UniAutoDingSaved["Channel"])) then
77 UniAutoDingSaved["Channel"] = GUILD;
78 end
79 if ((UniAutoDingSaved["AutoDing"] == nil) or not (UniAutoDingSaved["AutoDing"])) then
80 UniAutoDingSaved["AutoDing"] = 1;
81 end
82 if ((UniAutoDingSaved["Version"] == nil) or not (UniAutoDingSaved["Version"])) then
83 UniAutoDingSaved["Version"] = AUTODINGVER;
84 end
85 if ((UniAutoDingSaved["PartyDing"] == nil) or not (UniAutoDingSaved["PartyDing"])) then
86 UniAutoDingSaved["PartyDing"] = 1;
87 end
88 if ((UniAutoDingSaved["Screenie"] == nil) or not (UniAutoDingSaved["Screenie"])) then
89 UniAutoDingSaved["Screenie"] = 0;
90 end
91 if ((UniAutoDingSaved["DingString"] == nil) or not (UniAutoDingSaved["DingString"])) then
92 UniAutoDingSaved["DingString"] = "Ding, level $L (AutoDinging since 2005)";
93 end
94 ADmsg = UniAutoDingSaved["DingString"];
95 end
96 end
97  
98  
99 function UniAutoDing_OnUpdate()
100 if not (AutoDingFrame:IsVisible()) then --Shouldn't get OnUpdates whilst hidden, but you never know :).
101 return;
102 end
103 -- If our initial wait time hasn't passed, then return
104 if (GetTime() < (AD_StartTime + AUTODING_DELAYTIME)) then
105 return;
106 end
107 -- Wait time has passed. Quit receiving updates and take the screenshot.
108 AutoDingFrame:Hide();
109 TakeScreenshot();
110  
111 end
112  
113 function UniAutoDing_Command(ADcommand)
114 if (not ADcommand) then
115 return;
116 end
117  
118 local i,j, cmd, param = string.find(ADcommand, "^([^ ]+) (.+)$");
119 if (not cmd) then cmd = ADcommand; end
120 if (not cmd) then cmd = ""; end
121 if (not param) then param = ""; end
122  
123 if ( cmd and strlen(cmd) > 0 ) then
124 cmd = strlower(cmd);
125 end
126 if (cmd == "status") then
127 if (param == "on") then
128 UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
129 UniAutoDing_ChatPrint("Ding will be sent to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel upon levelling up.");
130 elseif (param == "off") then
131 UniAutoDingSaved[AutoDing_Player].AutoDing = 0;
132 UniAutoDing_ChatPrint("No Ding will be sent to channels, you'll have to do it yourself! Gasp! Too much effort! :(");
133 else
134 UniAutoDing_ChatPrint("Type \'/ad status on/off\' to turn settings on or off.");
135 if not (UniAutoDingSaved) then
136 UniAutoDing_ResetVars();
137 UniAutoDing_ChatPrint("Settings reset to default as settings not found.");
138 return;
139 else
140 AutoDingTest();
141 end
142 end
143 elseif (cmd == "test") then
144 AutoDingTest();
145 elseif (cmd == "config") then
146 AutoDingConfigFrame:Show();
147 elseif (cmd == "toggle") then
148 if (UniAutoDingSaved[AutoDing_Player].AutoDing == 1) then
149 UniAutoDingSaved[AutoDing_Player].AutoDing = 0;
150 else
151 UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
152 end
153 elseif (cmd == "endmessage") or (cmd == "firstmessage") or (cmd == "ding") or (cmd == "message") then
154 UniAutoDing_ChatPrint("Use \'/ad config\' to setup Ding messages now");
155 elseif (cmd == "party") then
156 if (UniAutoDingSaved[AutoDing_Player].PartyDing == 1) then
157 UniAutoDingSaved[AutoDing_Player].PartyDing = 0;
158 UniAutoDing_ChatPrint("Ding to Party if grouped is off.");
159 elseif (UniAutoDingSaved[AutoDing_Player].PartyDing == 0) then
160 UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
161 UniAutoDing_ChatPrint("Ding to Party if grouped is on.");
162 end
163 elseif (cmd == "channel") then
164 if (param == "raid") or (param == "guild") or (param == "party") or (param == "say") or (param == "yell") then
165 UniAutoDingSaved[AutoDing_Player].Channel = strupper(param);
166 UniAutoDing_ChatPrint("Autoding set to output to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel");
167 if AutoDingConfigFrame:IsVisible() then
168 AutoDingConfig_SetValues();
169 end
170 else
171 UniAutoDing_ChatPrint("Valid parameters are guild, party, say, yell or raid. So \'|cff66ccff/ad channel guild|r\' would set the output to guild channel.");
172 end
173 elseif (cmd == "screenie") then
174 if (UniAutoDingSaved[AutoDing_Player].Screenie == 1) then
175 UniAutoDingSaved[AutoDing_Player].Screenie = 0;
176 else
177 UniAutoDingSaved[AutoDing_Player].Screenie = 1;
178 end
179 elseif (cmd == "reset") then
180 UniAutoDing_ChatPrint("AutoDing settings reset to default values.");
181 UniAutoDing_ResetVars();
182 else
183 UniAutoDing_ChatPrint("AutoDing mod by Unique of Dalaran.");
184 UniAutoDing_ChatPrint("|cffffffffSlash Command Usage|r:");
185 UniAutoDing_ChatPrint("\'|cff66ccff/ad status|r\' - displays current status/settings of the mod and how to switch it on/off.");
186 UniAutoDing_ChatPrint("\'|cff66ccff/ad config|r\' - Opens up Config Window where you can setup everything.");
187 UniAutoDing_ChatPrint("\'|cff66ccff/ad channel|r\' - displays instructions for setting channel to output to.");
188 UniAutoDing_ChatPrint("\'|cff66ccff/ad reset|r\' - resets all settings to default.");
189 end
190 end
191  
192 function UniAutoDing_ResetVars()
193  
194 if not (UniAutoDingSaved) then
195 UniAutoDingSaved = {};
196 end
197 if not (AutoDing_Player) then
198 AutoDing_Player = UnitName("player") .. " of " .. GetCVar("realmName");
199 end
200 if not (UniAutoDingSaved[AutoDing_Player]) then
201 UniAutoDingSaved[AutoDing_Player] = {};
202 UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
203 UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
204 UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
205 UniAutoDingSaved[AutoDing_Player].Version = AUTODINGVER;
206 UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
207 UniAutoDingSaved[AutoDing_Player].Screenie = 0;
208 UniAutoDingSaved[AutoDing_Player].DingString = "Woot - Ding, level $L (AutoDinging since 2005)";
209 else
210 UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
211 UniAutoDingSaved[AutoDing_Player].AutoDing = 1;
212 UniAutoDingSaved[AutoDing_Player].Channel = "GUILD";
213 UniAutoDingSaved[AutoDing_Player].Version = AUTODINGVER;
214 UniAutoDingSaved[AutoDing_Player].PartyDing = 1;
215 UniAutoDingSaved[AutoDing_Player].Screenie = 0;
216 UniAutoDingSaved[AutoDing_Player].DingString = "Woot - Ding, level $L (AutoDinging since 2005)";
217 end
218  
219 end
220 ------------------------------------------------------------------------------------------------
221 -- Chat Messaging Functions - making my life easier
222 ------------------------------------------------------------------------------------------------
223  
224 function UniAutoDing_ChatPrint(str)
225 if ( DEFAULT_CHAT_FRAME ) then
226 DEFAULT_CHAT_FRAME:AddMessage(str, 1.0, 1.0, 0.0);
227 end
228 end
229  
230 function UniAutoDing_ChannelMessage(message, channel)
231 SendChatMessage(message, channel);
232 end
233  
234 function AutoDing_FormatDing()
235 local ADLevel = (UnitLevel("player") +1 );
236 ADmsg = UniAutoDingSaved[AutoDing_Player].DingString;
237 ADmsg = string.gsub(ADmsg, "$L", ADLevel);
238 return ADmsg;
239 end
240  
241 function AutoDingTest()
242 AutoDing_FormatDing();
243 if UniAutoDingSaved[AutoDing_Player].AutoDing == 1 then
244 UniAutoDing_ChatPrint("AutoDing is currently |cff66ccffon|r and will export the message \""..ADmsg.."\" to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel.");
245 elseif UniAutoDingSaved[AutoDing_Player].AutoDing == 0 then
246 UniAutoDing_ChatPrint("AutoDing is currently |cff66ccffoff|r and won't export the message \""..ADmsg.."\" to "..UniAutoDingSaved[AutoDing_Player].Channel.." channel.");
247 end
248 end