got it nvm ![]()
local OnChatMessageEventFrame = CreateFrame("Frame")
local function OG_EnableGuildChat()
OnChatMessageEventFrame:RegisterEvent("CHAT_MSG_GUILD")
end
local function OG_DisableGuildChat()
OnChatMessageEventFrame:UnregisterEvent("CHAT_MSG_GUILD")
end
local OG_InstancePause = {
active = false,
startTime = nil,
activeRestrictions = {}
}
OnChatMessageEventFrame:RegisterEvent("ADDON_RESTRICTION_STATE_CHANGED")
OnChatMessageEventFrame:SetScript("OnEvent", function(self, event, ...)
if event ~= "ADDON_RESTRICTION_STATE_CHANGED" then
if event == "CHAT_MSG_GUILD" then
OnChatMessage(self, event, ...)
end
return
end
local type, state = ...
local restrictionName = type
local restrictionState = state
if restrictionState == Enum.AddOnRestrictionState.Activating or restrictionState == Enum.AddOnRestrictionState.Active then
OG_InstancePause.activeRestrictions[restrictionName] = restrictionState
if not OG_InstancePause.active then
OG_InstancePause.active = true
OG_InstancePause.startTime = GetTime()
OG_DisableGuildChat()
local chatMessage = string.format(
"|cFFFFFFFF[|r|cFF0000FFOG|r|cFFFFFFFF]|r: Guild chat paused due to |cff55FF99(|r|cffF0F0FF%s|r|cff55FF99)|r(%s)",
restrictionName, restrictionState)
table.insert(OG_ChatMessageTable, chatMessage)
updateTargetEditBoxText(GuildChatWindow.editBox, OG_ChatMessageTable)
end
return
end
if restrictionState == Enum.AddOnRestrictionState.Inactive then
OG_InstancePause.activeRestrictions[restrictionName] = nil
if next(OG_InstancePause.activeRestrictions) == nil then
local elapsed = OG_InstancePause.startTime and (GetTime() - OG_InstancePause.startTime) or 0
local minutes = math.floor(elapsed / 60)
local seconds = math.floor(elapsed % 60)
OG_EnableGuildChat()
local chatMessage = string.format(
"|cFFFFFFFF[|r|cFF0000FFOG|r|cFFFFFFFF]|r: Guild chat resumed after |cff00ff00%02d:%02d|r",
minutes,
seconds
)
table.insert(OG_ChatMessageTable, chatMessage)
updateTargetEditBoxText(GuildChatWindow.editBox, OG_ChatMessageTable)
OG_InstancePause.active = false
OG_InstancePause.startTime = nil
else
local resNameStateMsg = string.format("Restriction Name: |cFF000FF0%s|r\nRestriction State: |cFFFFFF00%s|r",
restrictionName, restrictionState)
print(resNameStateMsg)
end
end
end)