From 8df510771bc81603baa181f46090f9129de8f5e1 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Fri, 6 Dec 2024 19:21:53 +0100 Subject: [PATCH] Implement chat channel frame creation and joinage --- FreshShit/ChannelJoiner/export | 1 + FreshShit/ChannelJoiner/init.lua | 65 +++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 FreshShit/ChannelJoiner/export diff --git a/FreshShit/ChannelJoiner/export b/FreshShit/ChannelJoiner/export new file mode 100644 index 0000000..cb673e5 --- /dev/null +++ b/FreshShit/ChannelJoiner/export @@ -0,0 +1 @@ +!LJ1(VjUnC8)xy6KankQV2nPPDsJJM2sfnWWPh6uvZJM4a(wWbf70h3Tl)TVV2joXjeAlt3pmPjqqC83NF((WpSpY2YgT2gfi(cpgNYJiuSnA6nwtgBAyJcJPCe5RyBZJo2gXJ9FaNWiXuBZF9Wto8qB0ttddzyUTj8CaHTjY7zl8tCB072yJEwBYe8sGpRN3aINlPiLa6D6xwoL84Nwn2aOXpokobmeZJKFpw(7jYFpv8lWKFkJhVwOIB2e4XbHHFatHj8sH37Xj(lib8v2OHWy4T(CqRmHZX4EjC4bGwcLiEcfe7Klp7pQKSn6Gdo4p4GzM5Y4je6YBVl7QOyFVOmx)vEukoY0BnML5(Hm3V99SRED6N5XypgNeSBE(BkjQKlCsY2uOlt(5jGfiScPa9st8CW0hg4htdjlh0GI4Km3oc0OZlARS07z(jK7XbxJzmVL4lsIt38MCZkwhL7WvCLZ3gpWCYCj0nP8khsBMaCeznK5LuF2empnHwPX(TIxHPuzuoZfXtqBIi8Usn1xtU9atXn)djmZLgZRPu(kmWUsDF77aRD0MMaoeOXoqSHg0IKkCS2KsXu7qcfEaGcCnmRyYqrKtmLqbkpFWsij3FvPh2P7TzFhe7Gb1CiXWo39Z960dEDCLmvF4E3hHhqOmCcVRu95ylOJ1YX90qSAMSY9umjJe5uCLE9r)8ezHtvgwAjtvMUi8J(GPELarLCjHYsDUb8CE3caaGfac62XijraqmHK5Iugv5g73YCFhRtUbO7hfMEdRTS6CpSyDE(bA5cuTqWVrFyhvTVfxz3S(JWJQKEM76C5N5UuQH921gvLMShE1OFSjx6o0EMOvAJxftO1ArQAD1TxJYEs)AR2K3bGSXJKW6QxLTJY7AS(HQkBT33BBUk7gLNdk5uwE3KqbssYC)Dy(FA714QdVn)ut6nSRsHCl5UwSVA9HuFey6mme1OW2akaxD)SFLkB2sRz45CcnyAYOemSVcqs8fW44hFLaLC6JaTyEZ1oJUCOLZIXMNnDbQ9itbgtvrMlW8kvnMgg3L0RDaVGLpS1waEz8w1V25IB7msXyXcgK7EfqUaHudpF05ot3GPM4hZn4U1mL)xJnkzPVEyzM1izZP0K3sAvZ95vFpETNJ2TT93OjH2HHw78jeAM7Jf247yfclmoLg0PFdaUxlXdvZVDGthCaspSkKsvw0wYVzB6oZXRJFq2q2lkARLw6OXqza1rYdEyuuTf6Q06RQfv)(xr8Qw7VKKhgeiL7ly4YAhN(L0in3ARaSJLU3XIbTgMB3okxqtx1TfKR8Eqq6grTyPQ9(UKwT6PgauByEjYuUFPwbfvC4FdEui5sGOy8RIbAR8SL73ImAD9Nw6sikSfNyneoYkBL80RWiqQlxchep)OYwLVq(O8e2QdZcGI88XO0WqYt2iNrdrwoiRHZTkp58LyViXjMv0olblPfnZyYeLOCwrceNCNSgdNANTbhfnoGLFCAjxmB0Sjd)SXChdtlJ5JnVWzX05tot)G1zUTss2vT1hS1DnjiaGTsRk3BlCeXQafMuQ4e(iXTraOckaFp4)539WLgtMD(ntYjQc3K4Q42cEaBL)YRJbh28GJouod1FvCYmWsGbJKMV4Ae44eQx0Nu3jYXV3g9fWWiHpBJMyCU4whWrHfS9XPwwtVgydm)c)ryC5BCve6Q16tDdgQ6ay8sWlH0QlHTYGLHRg57Vaj16taH2HFgOY46PwgW)ZGSHpR(3zIXWZmMddNpC8zf)v)Lolgo3eIEWWpo0YAIXfZNEJ5zngwXZytiHZCKHClanhxr2IlhdPCZlD5YDdcWVWVyNEmq1spyR5qPGOOqGvqUVh3tuhueKKiyESgnAUHHPO65jCq(9czES4wRexRLn68eYxZC)ZuVaHiYCTGyGqHls82yJwu(eaJZL3EvrYLxkh0Z0nQRwQOguQs55YHulg(mmZ3(EqIf6vKgg6LgbZAJ(l8Z6HwQmGxfhJW0LcMGKp0AGfI8A5Uxk3j5ZDpyjGq3xfxtA6wHgARR9AwM25t3YuozpnL)BNcslRaL3PiS0t(gP8L7oAzrzunWuh1Ka7oR(AGCNUNiNS4gmwzX(w6AuJKQD5d(7DY2VSN2zE)RYeiEPbK)kvYNElV3OPWLDndi8QAYOyp5vydRm5lVvBb3Q(6(rqA7wVLjUx7gVu2QNiWlOFU2Lgx430yXTJhaRmjiOy1hgwymmbVR9i03o1LlQ)2Op3OTrhp4O3p4eB0daoD6XIBf3(F( \ No newline at end of file diff --git a/FreshShit/ChannelJoiner/init.lua b/FreshShit/ChannelJoiner/init.lua index 50e3469..8487ce8 100644 --- a/FreshShit/ChannelJoiner/init.lua +++ b/FreshShit/ChannelJoiner/init.lua @@ -4,6 +4,12 @@ local channelNames = {} local channelPasswords = {} ---@type string|nil local err +---@type string +local chatFrameName = aura_env.config.chatFrameName or "Auto" +---@type string[] +local subscribedMessageGroups = {} +---@type string[] +local subscribedChannels = {} ---@param input string ---@param deliminer string @@ -30,6 +36,18 @@ if err then return end +subscribedMessageGroups, err = StrSplit(aura_env.config.subscribedMessageGroups, ",") +if err then + print(string.format("Error splitting subscribed message groups: %s", err)) + return +end + +subscribedChannels, err = StrSplit(aura_env.config.subscribedChannels, ",") +if err then + print(string.format("Error splitting subscribed channels: %s", err)) + return +end + aura_env.JoinChannels = function() for i, channelName in ipairs(channelNames) do channelName = strtrim(channelName) @@ -39,4 +57,49 @@ aura_env.JoinChannels = function() end JoinPermanentChannel(channelName, password) end -end \ No newline at end of file +end + +aura_env.FindOrCreateChatWindow = function() + for i = 1, NUM_CHAT_WINDOWS do + local name = GetChatWindowInfo(i) + if name == chatFrameName then + return _G["ChatFrame" .. i] + end + end + + FCF_OpenNewWindow(chatFrameName) + for i = 1, NUM_CHAT_WINDOWS do + local name = GetChatWindowInfo(i) + if name == chatFrameName then + return _G["ChatFrame" .. i] + end + end + + return nil +end + +aura_env.ConfigureChatWindow = function() + local chatFrame = aura_env.FindOrCreateChatWindow() + if not chatFrame then + print(string.format("Chat window %s not found", chatFrameName)) + return + end + + --SetChatWindowName(chatFrame, chatFrameName) + print("Removing all message groups") + ChatFrame_RemoveAllMessageGroups(chatFrame) + print("Removing all channels") + ChatFrame_RemoveAllChannels(chatFrame) + print("Adding message groups") + for _, messageGroup in ipairs(subscribedMessageGroups) do + print(string.format("Adding message group: %s", messageGroup)) + ChatFrame_AddMessageGroup(chatFrame, strtrim(messageGroup)) + end + print("Adding channels") + for _, channel in ipairs(subscribedChannels) do + print(string.format("Adding channel: %s", channel)) + ChatFrame_AddChannel(chatFrame, strtrim(channel)) + end +end + +aura_env.ConfigureChatWindow()