vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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 |