rbs module
This commit is contained in:
parent
355bca680b
commit
c1bf61696b
2 changed files with 110 additions and 0 deletions
|
@ -17,6 +17,7 @@ function mod:OnInitialize()
|
||||||
core:RegisterSlashCommand("ClearMarks", "cm", "clearmarks")
|
core:RegisterSlashCommand("ClearMarks", "cm", "clearmarks")
|
||||||
core:RegisterSlashCommand("MasterLoot", "ml", "masterloot")
|
core:RegisterSlashCommand("MasterLoot", "ml", "masterloot")
|
||||||
core:RegisterSlashCommand("RandomLoot", "rl", "randomloot")
|
core:RegisterSlashCommand("RandomLoot", "rl", "randomloot")
|
||||||
|
core:RegisterSlashCommand("FlaskCheck", "fc", "flaskcheck")
|
||||||
core:RegisterSlashCommand("Countdown", "cd", "countdown")
|
core:RegisterSlashCommand("Countdown", "cd", "countdown")
|
||||||
core:RegisterSlashCommand("RosterCheck", "rc", "rostercheck")
|
core:RegisterSlashCommand("RosterCheck", "rc", "rostercheck")
|
||||||
end
|
end
|
||||||
|
@ -91,6 +92,23 @@ function mod:RandomLoot()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function core:FlaskCheck()
|
||||||
|
local now = GetTime()
|
||||||
|
for i=1,GetNumRaidMembers() do
|
||||||
|
for j=1,32 do
|
||||||
|
local player = UnitName("raid"..i)
|
||||||
|
name, _, _, _, _, _, expires = UnitAura("raid"..i, j)
|
||||||
|
if name and name:find("Flask ") then
|
||||||
|
local time = expires - now
|
||||||
|
if time<990 and time>0 then
|
||||||
|
SendChatMessage(format("%s %d:%02d", player, floor(time/60), time%60), "raid")
|
||||||
|
-- SendChatMessage(format("Flask ending in %d:%02d", UnitName(r), floor(time/60), time%60), "whipser", nil, player)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local countDown = {"Pulling in 5", "4", "3", "2", "1", "Go"} -- used in /atlt cd
|
local countDown = {"Pulling in 5", "4", "3", "2", "1", "Go"} -- used in /atlt cd
|
||||||
function mod:Countdown()
|
function mod:Countdown()
|
||||||
for i=5,0,-1 do
|
for i=5,0,-1 do
|
||||||
|
|
92
modules/rbs.lua
Normal file
92
modules/rbs.lua
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
local core = LibStub("AceAddon-3.0"):GetAddon("AllTheLittleThings")
|
||||||
|
local mod = core:NewModule("RBS Mods", "AceEvent-3.0", "AceHook-3.0")
|
||||||
|
local db = core.db.profile[mod:GetName()]
|
||||||
|
|
||||||
|
local defaults = {
|
||||||
|
}
|
||||||
|
local options = {
|
||||||
|
}
|
||||||
|
|
||||||
|
function mod:OnInitialize()
|
||||||
|
self:RegisterEvent("ADDON_LOADED")
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:ADDON_LOADED(_, name)
|
||||||
|
if name == "RaidBuffStatus" then
|
||||||
|
if RaidBuffStatus then
|
||||||
|
self:SecureHook(RaidBuffStatus, "SetupFrames", "SetupRBS")
|
||||||
|
end
|
||||||
|
self:UnregisterEvent("ADDON_LOADED")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:RunMacro(name)
|
||||||
|
local macros = core:GetModule("Macros")
|
||||||
|
if not macros or not macros[name] then return end
|
||||||
|
|
||||||
|
macros[name]()
|
||||||
|
end
|
||||||
|
|
||||||
|
local didSetup = false
|
||||||
|
function mod:SetupRBS()
|
||||||
|
if didSetup or not RaidBuffStatus or not RaidBuffStatus.frame then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
didSetup = true
|
||||||
|
|
||||||
|
-- register new buttons
|
||||||
|
self:NewRBSButton("Flask", function()
|
||||||
|
self:RunMacro("FlaskCheck")
|
||||||
|
end, 45, "TOPLEFT", "BOTTOMLEFT", 7, 5)
|
||||||
|
self:NewRBSButton("Count", function()
|
||||||
|
self:RunMacro("Countdown")
|
||||||
|
end, 45, "TOP", "BOTTOM", 0, 5)
|
||||||
|
self:NewRBSButton("Loot", function()
|
||||||
|
self:RunMacro("MasterLoot")
|
||||||
|
end, 45, "TOPRIGHT", "BOTTOMRIGHT", -7, 5)
|
||||||
|
|
||||||
|
-- reposition old ones
|
||||||
|
RaidBuffStatus.readybutton:SetWidth(45)
|
||||||
|
RaidBuffStatus.readybutton:SetText("Ready")
|
||||||
|
|
||||||
|
-- hook old show/hide
|
||||||
|
local rbShow = RaidBuffStatus.readybutton.Show
|
||||||
|
RaidBuffStatus.readybutton.Show = function(...)
|
||||||
|
RaidBuffStatus.FlaskButton:Show()
|
||||||
|
RaidBuffStatus.CountButton:Show()
|
||||||
|
RaidBuffStatus.LootButton:Show()
|
||||||
|
return rbShow(...)
|
||||||
|
end
|
||||||
|
local rbHide = RaidBuffStatus.readybutton.Hide
|
||||||
|
RaidBuffStatus.readybutton.Hide = function(...)
|
||||||
|
RaidBuffStatus.FlaskButton:Hide()
|
||||||
|
RaidBuffStatus.CountButton:Hide()
|
||||||
|
RaidBuffStatus.LootButton:Hide()
|
||||||
|
return rbHide(...)
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[ fix height
|
||||||
|
local heightFix = 25
|
||||||
|
RaidBuffStatus.frame:SetHeight(RaidBuffStatus.frame:GetHeight() + heightFix)
|
||||||
|
|
||||||
|
-- fix future height
|
||||||
|
RaidBuffStatus.frame:SetScript("OnSizeChanged", function(self, width, height)
|
||||||
|
-- since this will cause OnSizeChanged to fire again immediately, we use a flag to determine which call it was
|
||||||
|
if self.heightFlag then
|
||||||
|
self.heightFlag = nil
|
||||||
|
else
|
||||||
|
self.heightFlag = true
|
||||||
|
self:SetHeight(height + heightFix)
|
||||||
|
end
|
||||||
|
end)]]
|
||||||
|
end
|
||||||
|
|
||||||
|
function mod:NewRBSButton(label, func, width, anchorFrom, anchorTo, anchorX, anchorY)
|
||||||
|
local button = CreateFrame("Button", "", RaidBuffStatus.frame, "OptionsButtonTemplate")
|
||||||
|
button:SetText(label)
|
||||||
|
button:SetWidth(width)
|
||||||
|
button:SetPoint(anchorFrom, RaidBuffStatus.frame, anchorTo, anchorX, anchorY)
|
||||||
|
button:SetScript("OnClick", func)
|
||||||
|
button:Show()
|
||||||
|
RaidBuffStatus[label.."Button"] = button
|
||||||
|
end
|
Loading…
Reference in a new issue