vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | -- Thanks for taking the time to take a look at Answering Machine. |
2 | -- For up to date versions, please check the following authorized sites. |
||
3 | |||
4 | -- http://www.curse-gaming.com/mod.php?addid=1583 |
||
5 | -- http://www.wowinterface.com/downloads/fileinfo.php?id=4078 |
||
6 | -- http://ui.worldofwar.net/ui.php?id=1221 |
||
7 | |||
8 | -- Mindark of Dragonmaw |
||
9 | |||
10 | local Missed_Tells = { }; |
||
11 | local Missed_Authors = { }; |
||
12 | local Answer_Frame = true; |
||
13 | local IsRecording = false; |
||
14 | local rec_AFK = true; |
||
15 | local rec_DND = true; |
||
16 | local Is_AFK = false; |
||
17 | local Is_DND = false; |
||
18 | |||
19 | function AnsweringMachine_OnLoad() |
||
20 | this:RegisterEvent("VARIABLES_LOADED"); |
||
21 | this:RegisterEvent("CHAT_MSG_SYSTEM"); |
||
22 | this:RegisterEvent("CHAT_MSG_WHISPER"); |
||
23 | this:RegisterForDrag("LeftButton"); |
||
24 | end |
||
25 | |||
26 | function AnsweringMachine_OnDragStart() |
||
27 | AnswerFrame:StartMoving() |
||
28 | end |
||
29 | |||
30 | function AnsweringMachine_OnDragStop() |
||
31 | AnswerFrame:StopMovingOrSizing() |
||
32 | end |
||
33 | |||
34 | function AnsweringMachine_OnEvent(event) |
||
35 | if (event == "VARIABLES_LOADED") then |
||
36 | SlashCmdList["ANSWER"] = Answer_SlashHandler; |
||
37 | SLASH_ANSWER1 = "/answer"; |
||
38 | end |
||
39 | |||
40 | if (event == "CHAT_MSG_SYSTEM") then |
||
41 | if (string.find(arg1, string.sub(MARKED_AFK_MESSAGE, 1, string.len(MARKED_AFK_MESSAGE) - 4), 1)) then |
||
42 | if (rec_AFK) then |
||
43 | Ans_Record(); |
||
44 | elseif (Is_DND) then |
||
45 | Ans_Stop(); |
||
46 | end |
||
47 | Is_AFK = true; |
||
48 | if (Is_DND) then |
||
49 | Is_DND = false; |
||
50 | end |
||
51 | elseif (string.find(arg1, string.sub(MARKED_DND, 1, string.len(MARKED_DND) - 3), 1)) then |
||
52 | if (rec_DND) then |
||
53 | Ans_Record(); |
||
54 | elseif (Is_AFK) then |
||
55 | Ans_Stop(); |
||
56 | end |
||
57 | Is_DND = true; |
||
58 | if (Is_AFK) then |
||
59 | Is_AFK = false; |
||
60 | end |
||
61 | end |
||
62 | |||
63 | if (arg1 == CLEARED_AFK) then |
||
64 | Ans_Stop(); |
||
65 | Is_AFK = false; |
||
66 | end |
||
67 | if (arg1 == CLEARED_DND) then |
||
68 | Ans_Stop(); |
||
69 | Is_DND = false; |
||
70 | end |
||
71 | end |
||
72 | |||
73 | if (event == "CHAT_MSG_WHISPER" and IsRecording) then |
||
74 | table.insert(Missed_Tells, arg1); |
||
75 | table.insert(Missed_Authors, arg2); |
||
76 | AnsweringMachine_Text:SetText(ANS_MISSED1 .. table.getn(Missed_Tells) .. ANS_MISSED2); |
||
77 | end |
||
78 | end |
||
79 | |||
80 | function Ans_Record() |
||
81 | IsRecording = true; |
||
82 | if (Answer_Frame) then |
||
83 | AnswerFrame:Show(); |
||
84 | end |
||
85 | AnsweringMachine_Text:SetText(ANS_MISSED1 .. table.getn(Missed_Tells) .. ANS_MISSED2); |
||
86 | end |
||
87 | |||
88 | function Ans_Stop() |
||
89 | IsRecording = false; |
||
90 | Ans_Retell_Msgs(); |
||
91 | Missed_Tells = { }; |
||
92 | Missed_Authors = { }; |
||
93 | AnswerFrame:Hide(); |
||
94 | end |
||
95 | |||
96 | function Ans_Retell_Msgs() |
||
97 | if (table.getn(Missed_Tells) > 0) then |
||
98 | DEFAULT_CHAT_FRAME:AddMessage(ANS_SEPARATOR .. "\n" .. ANS_MISSED1 .. table.getn(Missed_Tells) .. ANS_MISSED2, 1.0, 0.5, 1.0); |
||
99 | for i=1,table.getn(Missed_Tells) do |
||
100 | DEFAULT_CHAT_FRAME:AddMessage("[" .. Missed_Authors[i] .. "]: " .. Missed_Tells[i], 1.0, 0.5, 1.0); |
||
101 | end |
||
102 | DEFAULT_CHAT_FRAME:AddMessage(ANS_SEPARATOR, 1.0, 0.5, 1.0); |
||
103 | else |
||
104 | DEFAULT_CHAT_FRAME:AddMessage(ANS_NOTELLS, 1.0, 1.0, 0.0); |
||
105 | end |
||
106 | end |
||
107 | |||
108 | function Answer_SlashHandler(msg) |
||
109 | local words = {}; |
||
110 | for word in string.gfind(msg, "%w+") do |
||
111 | table.insert(words, word); |
||
112 | end |
||
113 | if table.getn(words) == 0 then |
||
114 | DEFAULT_CHAT_FRAME:AddMessage(ANS_MSG_HELP .. "\n\n", 1.0, 1.0, 0.0); |
||
115 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_HELP .. "\n\n", 1.0, 1.0, 0.0); |
||
116 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_HELP .. "\n\n", 1.0, 1.0, 0.0); |
||
117 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_HELP, 1.0, 1.0, 0.0); |
||
118 | else |
||
119 | local cmd = string.lower(words[1]); |
||
120 | if cmd == "msg" then |
||
121 | local ans_msg = ""; |
||
122 | for i=2,table.getn(words) do |
||
123 | ans_msg = ans_msg .. " " .. words[i]; |
||
124 | end |
||
125 | if ans_msg == "" then |
||
126 | DEFAULT_CHAT_FRAME:AddMessage(ANS_AWAY_MSG .. DEFAULT_AFK_MESSAGE, 1.0, 1.0, 0.0); |
||
127 | else |
||
128 | DEFAULT_AFK_MESSAGE = ans_msg; |
||
129 | DEFAULT_CHAT_FRAME:AddMessage(ANS_DEFAULT .. DEFAULT_AFK_MESSAGE, 1.0, 1.0, 0.0); |
||
130 | end |
||
131 | elseif cmd == "frame" then |
||
132 | if (table.getn(words) == 1) then |
||
133 | if (Answer_Frame) then |
||
134 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
135 | else |
||
136 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
137 | end |
||
138 | elseif (string.lower(words[2]) == "on") then |
||
139 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
140 | if (IsRecording) then |
||
141 | AnswerFrame:Show(); |
||
142 | end |
||
143 | Answer_Frame = true; |
||
144 | elseif (string.lower(words[2]) == "off") then |
||
145 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
146 | AnswerFrame:Hide(); |
||
147 | Answer_Frame = false; |
||
148 | else |
||
149 | DEFAULT_CHAT_FRAME:AddMessage(ANS_FRAME_HELP, 1.0, 1.0, 0.0); |
||
150 | end |
||
151 | elseif cmd == "afk" then |
||
152 | if (table.getn(words) == 1) then |
||
153 | if (rec_AFK) then |
||
154 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
155 | else |
||
156 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
157 | end |
||
158 | elseif (string.lower(words[2]) == "on") then |
||
159 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
160 | rec_AFK = true; |
||
161 | elseif (string.lower(words[2]) == "off") then |
||
162 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
163 | if (Is_AFK) then |
||
164 | Ans_Stop(); |
||
165 | end |
||
166 | rec_AFK = false; |
||
167 | else |
||
168 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_AFK_HELP, 1.0, 1.0, 0.0); |
||
169 | end |
||
170 | elseif cmd == "dnd" then |
||
171 | if (table.getn(words) == 1) then |
||
172 | if (rec_DND) then |
||
173 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
174 | else |
||
175 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
176 | end |
||
177 | elseif (string.lower(words[2]) == "on") then |
||
178 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_STATUS .. ANS_ON, 1.0, 1.0, 0.0); |
||
179 | rec_DND = true; |
||
180 | elseif (string.lower(words[2]) == "off") then |
||
181 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_STATUS .. ANS_OFF, 1.0, 1.0, 0.0); |
||
182 | if (Is_DND) then |
||
183 | Ans_Stop(); |
||
184 | end |
||
185 | rec_DND = false; |
||
186 | else |
||
187 | DEFAULT_CHAT_FRAME:AddMessage(ANS_REC_DND_HELP, 1.0, 1.0, 0.0); |
||
188 | end |
||
189 | else |
||
190 | DEFAULT_CHAT_FRAME:AddMessage(ANS_MSG_HELP .. "\n\n" .. ANS_FRAME_HELP, 1.0, 1.0, 0.0); |
||
191 | end |
||
192 | end |
||
193 | end |