--<< ================================================= >>-- -- Section I: The Global Functions. -- --<< ================================================= >>-- ace:RegisterFunctions(Timex, { version = 1.0, ExecuteChatCommand = function(...) if not DEFAULT_CHAT_FRAME then return; end DEFAULT_CHAT_FRAME.editBox:SetText(ace.concat(arg)); ChatEdit_SendText(DEFAULT_CHAT_FRAME.editBox); end, ParseByName41 = function(i, p, s, q) local tmpDB = {}; p, s, q = p or "=", s or " ", q or "\""; i = i..s; string.gsub(i, "(%a[%a%d_]-)"..p.."("..q.."?)(.-)%2"..s, function(k, _, v) tmpDB[k] = string.gsub(v, "\\"..s, s) end); return tmpDB; end }) --<< ================================================= >>-- -- Section II: The Chat Options. -- --<< ================================================= >>-- local function processArgs(args) local a = {}; for word in string.gfind(args, "%S+") do tinsert(a, word); end return a; end function Timex:ChatExecute(i) local p = self.ParseByName41(i); if not p.f or not p.t then self.cmd:result(TimexLocals.Chat_BadValues); return; end p.a = "/script "..p.f.."("..(p.a or "")..")"; p.f = Timex.ExecuteChatCommand; self:AddSchedule(p.n, p.t, p.r, p.c, p.f, p.a); self.cmd:result(TimexLocals.Chat_Execute); end function Timex:ChatDelete(args) args = processArgs(args); local i = args[2]; if not Timex:ScheduleCheck(i) then self.cmd:result(format(TimexLocals.Chat_BadDelete, i)); return; end Timex:DeleteSchedule(i); self.cmd:result(format(TimexLocals.Chat_Delete, i)); end function Timex:ChatAddTimer(args) args = processArgs(args); local id = args[2]; self:AddTimer(id); self.cmd:msg("Added timer: %s", tostring(id)); end function Timex:ChatDeleteTimer(args) args = processArgs(args); local id = args[2]; local time, start, now = self:DeleteTimer(id); self.cmd:msg("%s: time = %s, start = %s, now = %s", tostring(id), tostring(time), tostring(start), tostring(now)); end function Timex:ChatGetTimer(args) args = processArgs(args); local id = args[2]; local time, start, now = self:GetTimer(id); self.cmd:msg("%s: time = %s, start = %s, now = %s", tostring(id), tostring(time), tostring(start), tostring(now)); end function Timex:ChatCheckTimer(args) args = processArgs(args); local id = args[2]; local found = self:CheckTimer(id); if found then self.cmd:msg("%s: found", tostring(id)); else self.cmd:msg("%s: not found", tostring(id)); end end --<< ================================================= >>-- -- Section Omega: Register the AddOn Object. -- --<< ================================================= >>--