From 58cf0620a23b075887c1ea6cbf3ded60121d9dc0 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Mon, 16 Dec 2024 12:57:40 +0100 Subject: [PATCH] Initial commit --- .gitignore | 1 + Autoloot.lua | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cyka.lua | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ Cyka.toc | 9 +++++++++ 4 files changed, 112 insertions(+) create mode 100644 .gitignore create mode 100644 Autoloot.lua create mode 100644 Cyka.lua create mode 100644 Cyka.toc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cff0354 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +Meta diff --git a/Autoloot.lua b/Autoloot.lua new file mode 100644 index 0000000..fc439f2 --- /dev/null +++ b/Autoloot.lua @@ -0,0 +1,53 @@ +local addonname, data = ... +---@cast data HeimdallData +---@cast addonname string + +data.Inviter = {} +function data.Inviter.Init() + if not data.config.inviter.enabled then + print("Heimdall - Inviter disabled") + return + end + + local inviterGroupFrame = CreateFrame("Frame") + inviterGroupFrame:RegisterEvent("GROUP_ROSTER_UPDATE") + inviterGroupFrame:SetScript("OnEvent", function(self, event, ...) + if not UnitIsGroupLeader("player") then return end + + if not IsInRaid() then + ConvertToRaid() + end + + if not IsEveryoneAssistant() then + SetEveryoneIsAssistant(true) + end + end) + + local inviterChannelFrame = CreateFrame("Frame") + inviterChannelFrame:RegisterEvent("CHAT_MSG_CHANNEL") + inviterChannelFrame:SetScript("OnEvent", function(self, event, msg, sender, ...) + local channelId = select(6, ...) + local channelname = "" + ---@type any[] + local channels = { GetChannelList() } + for i = 1, #channels, 2 do + ---@type number + local id = channels[i] + ---@type string + local name = channels[i + 1] + if id == channelId then + channelname = name + end + end + + if channelname ~= data.config.inviter.listeningChannel then + return + end + + if msg == data.config.inviter.keyword then + InviteUnit(sender) + end + end) + + print("Heimdall - Inviter loaded") +end diff --git a/Cyka.lua b/Cyka.lua new file mode 100644 index 0000000..5ed0e4e --- /dev/null +++ b/Cyka.lua @@ -0,0 +1,49 @@ +local addonname, data = ... +---@cast data CykaData +---@cast addonname string + +local function init() + ---@class CykaData + if not CykaPersistentData then CykaPersistentData = {} end + if not CykaPersistentData.config then CykaPersistentData.config = {} end + + ---@class CykaData + ---@field config CykaConfig + ---@field GetOrDefault fun(table: table, keys: string[], default: any): any + + --- Config --- + ---@class CykaConfig + + data.GetOrDefault = function(table, keys, default) + local value = default + if not table then return value end + if not keys then return value end + + local traverse = table + for i = 1, #keys do + local key = keys[i] + if traverse[key] ~= nil then + traverse = traverse[key] + else + break + end + + if i == #keys then + value = traverse + end + end + return value + end + + data.config = {} + + print("Cyka loaded!") +end + +local loadedFrame = CreateFrame("Frame") +loadedFrame:RegisterEvent("ADDON_LOADED") +loadedFrame:SetScript("OnEvent", function(self, event, addonName) + if addonName == addonname then + init() + end +end) diff --git a/Cyka.toc b/Cyka.toc new file mode 100644 index 0000000..b1c6838 --- /dev/null +++ b/Cyka.toc @@ -0,0 +1,9 @@ +## Interface: 70300 +## Title: Cyka +## Notes: Cyka's various tools and shit +## Author: Cyka +## SavedVariables: CykaPersistentData + +#core +Autoloot.lua +Cyka.lua \ No newline at end of file