assert(BigWigs, "BigWigs not found!") local L = AceLibrary("AceLocale-2.0"):new("BigWigsVersionQuery") --------------------------------- -- Localization -- --------------------------------- L:RegisterTranslations("enUS", function() return { ["versionquery"] = true, ["VersionQuery"] = true, ["Options for Version Query."] = true, ["query"] = true, ["Query"] = true, ["Query the raid for BigWig versions."] = true, ["Query already running, please wait 5 seconds before you query again."] = true, ["Querying raid for BigWigs versions, please wait..."] = true, } end ) --------------------------------- -- Addon Declaration -- --------------------------------- BigWigsVersionQuery = BigWigs:NewModule("Version Query") BigWigsVersionQuery.consoleCmd = L"versionquery" BigWigsVersionQuery.consoleOptions = { type = "group", name = L"VersionQuery", desc = L"Options for Version Query.", args = { [L"query"] = { type = "execute", name = L"Query", desc = L"Query the raid for BigWig versions.", func = function() BigWigsVersionQuery:QueryVersion() end, }, } } ------------------------------ -- Initialization -- ------------------------------ function BigWigsVersionQuery:OnEnable() self.queryRunning = nil self.responseTable = {} self:RegisterEvent("BigWigs_VersionQuery") self:RegisterEvent("BigWigs_RecvSync") end ------------------------------ -- Event Handlers -- ------------------------------ function BigWigsVersionQuery:PrintVersions() self.core:Print("Version replies:") for key, value in self.responseTable do self.core:Print(" - "..value[1]..": "..value[2]) end self.responseTable = {} self.queryRunning = nil end function BigWigsVersionQuery:QueryVersion() if self.queryRunning then self.core:Print(L"Query already running, please wait 5 seconds before you query again.") return end self.core:Print(L"Querying raid for BigWigs versions, please wait...") self.queryRunning = true self:ScheduleEvent("bwvqstop", function() BigWigsVersionQuery:PrintVersions() end, 5) self:TriggerEvent("BigWigs_VersionQuery") end function BigWigsVersionQuery:BigWigs_VersionQuery() self:TriggerEvent("BigWigs_SendSync", "BWVQ "..self.core.version) end function BigWigsVersionQuery:BigWigs_RecvSync(sync, rest, nick) if self.queryRunning then table.insert(self.responseTable, {nick, rest}) end end