66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local _, shared = ...
 | 
						|
---@cast shared HeimdallShared
 | 
						|
local ModuleName = "Echoer"
 | 
						|
 | 
						|
---@class HeimdallEchoerConfig
 | 
						|
---@field enabled boolean
 | 
						|
---@field debug boolean
 | 
						|
---@field channels string[]
 | 
						|
---@field prefix string
 | 
						|
 | 
						|
---@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] Channel message received from: %s", ModuleName, sender))
 | 
						|
			--end
 | 
						|
 | 
						|
			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
 | 
						|
 | 
						|
			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
 | 
						|
			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))
 | 
						|
				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,
 | 
						|
}
 |