local addon_name = "Kaamelol" local frame_name = addon_name .. "Frame" local frame = CreateFrame("Frame", frame_name) local cmd_name = "/kaamelol" C_ChatInfo.RegisterAddonMessagePrefix(addon_name) frame:RegisterEvent("CHAT_MSG_ADDON") frame:SetScript("OnEvent", function(self, event_name, ...) return self[event_name](self, event_name, ...) end) function kaamelol_play(msg) root = "Interface/AddOns/" .. addon_name .. "/sounds/" path = root .. msg .. ".mp3" PlaySoundFile(path, "Master") return true end function kaamelol_broadcast(msg) if not msg or msg == "" then return false end chan, rest = strsplit(" ", msg, 2) if not rest then rest = chan chan = "GUILD" else chan = string.upper(chan) if chan == "WHISPER" then target, rest = strsplit(" ", rest, 2) else target = "" end end number = tonumber(rest) if number then rest = KAAMELOL_CONTENT[number]["FILE"] end C_ChatInfo.SendAddonMessage(addon_name, rest, chan, target); return true end function kaamelol_search(msg) print("\nresults:") for i, entry in ipairs(KAAMELOL_CONTENT) do local title = entry["TITLE"] local file = entry["FILE"] if string.find(string.upper(title), string.upper(msg)) then print(i, file, ":", title) end end return true end function kaamelol_run_command(cmd, args) if cmd == "play" then return kaamelol_play(args) elseif cmd == "broad" then return kaamelol_broadcast(args) elseif cmd == "search" then return kaamelol_search(args) else return kaamelol_broadcast(cmd) end end SLASH_KAAMELOL1 = cmd_name SlashCmdList["KAAMELOL"] = function(msg) cmd, args = strsplit(" ", msg, 2) if not kaamelol_run_command(cmd, args) then print(addon_name .. " usage:") end end function frame:CHAT_MSG_ADDON(event, prefix, msg) if prefix == addon_name then kaamelol_play(msg) end end