Refactor Heimdall modules to use class-based structure for improved organization and clarity
This commit is contained in:
@@ -2,57 +2,58 @@ local _, shared = ...
|
||||
---@cast shared HeimdallShared
|
||||
local ModuleName = "Echoer"
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
shared.Echoer = {}
|
||||
function shared.Echoer.Init()
|
||||
local frame = CreateFrame("Frame")
|
||||
frame:RegisterEvent("CHAT_MSG_CHANNEL")
|
||||
frame:SetScript("OnEvent", function(self, event, msg, sender, ...)
|
||||
--if Heimdall_Data.config.echoer.debug then
|
||||
-- print(string.format("[%s] Channel message received from: %s", ModuleName, sender))
|
||||
--end
|
||||
|
||||
if not Heimdall_Data.config.echoer.enabled then
|
||||
---@class Echoer
|
||||
shared.Echoer = {
|
||||
Init = function()
|
||||
local frame = CreateFrame("Frame")
|
||||
frame:RegisterEvent("CHAT_MSG_CHANNEL")
|
||||
frame:SetScript("OnEvent", function(self, event, msg, sender, ...)
|
||||
--if Heimdall_Data.config.echoer.debug then
|
||||
-- print(string.format("[%s] Module disabled, ignoring message", ModuleName))
|
||||
-- print(string.format("[%s] Channel message received from: %s", ModuleName, sender))
|
||||
--end
|
||||
return
|
||||
end
|
||||
|
||||
local channelId = select(6, ...)
|
||||
local _, channelname = GetChannelName(channelId)
|
||||
local ok = false
|
||||
for _, channel in pairs(Heimdall_Data.config.echoer.channels) do
|
||||
if channel == channelname then
|
||||
ok = true
|
||||
break
|
||||
if not Heimdall_Data.config.echoer.enabled then
|
||||
--if Heimdall_Data.config.echoer.debug then
|
||||
-- print(string.format("[%s] Module disabled, ignoring message", ModuleName))
|
||||
--end
|
||||
return
|
||||
end
|
||||
end
|
||||
if not ok then
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Channel name does not match any of the channels", ModuleName))
|
||||
end
|
||||
return
|
||||
end
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Processing message from master channel: %s", ModuleName, sender))
|
||||
shared.dumpTable(Heimdall_Data.config.echoer)
|
||||
end
|
||||
|
||||
if string.find(msg, "^" .. Heimdall_Data.config.echoer.prefix) then
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Found echo command in message: %s", ModuleName, msg))
|
||||
local channelId = select(6, ...)
|
||||
local _, channelname = GetChannelName(channelId)
|
||||
local ok = false
|
||||
for _, channel in pairs(Heimdall_Data.config.echoer.channels) do
|
||||
if channel == channelname then
|
||||
ok = true
|
||||
break
|
||||
end
|
||||
end
|
||||
local echomsg = string.sub(msg, string.len(Heimdall_Data.config.echoer.prefix) + 1)
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Echoing message: %s", ModuleName, echomsg))
|
||||
if not ok then
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Channel name does not match any of the channels", ModuleName))
|
||||
end
|
||||
return
|
||||
end
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Processing message from master channel: %s", ModuleName, sender))
|
||||
shared.dumpTable(Heimdall_Data.config.echoer)
|
||||
end
|
||||
SendChatMessage(echomsg, "SAY")
|
||||
elseif Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Message does not start with echo prefix", ModuleName))
|
||||
end
|
||||
end)
|
||||
|
||||
if Heimdall_Data.config.echoer.debug then print(string.format("[%s] Module initialized", ModuleName)) end
|
||||
print("[Heimdall] Echoer loaded")
|
||||
end
|
||||
if string.find(msg, "^" .. Heimdall_Data.config.echoer.prefix) then
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Found echo command in message: %s", ModuleName, msg))
|
||||
end
|
||||
local echomsg = string.sub(msg, string.len(Heimdall_Data.config.echoer.prefix) + 1)
|
||||
if Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Echoing message: %s", ModuleName, echomsg))
|
||||
end
|
||||
SendChatMessage(echomsg, "SAY")
|
||||
elseif Heimdall_Data.config.echoer.debug then
|
||||
print(string.format("[%s] Message does not start with echo prefix", ModuleName))
|
||||
end
|
||||
end)
|
||||
|
||||
if Heimdall_Data.config.echoer.debug then print(string.format("[%s] Module initialized", ModuleName)) end
|
||||
print("[Heimdall] Echoer loaded")
|
||||
end,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user