Code polish for release

This commit is contained in:
2024-12-12 17:58:28 +01:00
parent 33538be9f5
commit b5cffd0a88
5 changed files with 51 additions and 24 deletions

View File

@@ -4,7 +4,11 @@ local addonname, data = ...
data.DeathReporter = {}
function data.DeathReporter.Init()
if not data.config.deathReporter.enabled then return end
if not data.config.deathReporter.enabled then
print("Heimdall - DeathReporter disabled")
return
end
---@type table<string, number>
local recentDeaths = {}
---@type table<string, number>
@@ -84,4 +88,6 @@ function data.DeathReporter.Init()
if notifyTimers[destination] then notifyTimers[destination]:Cancel() end
end
end)
print("Heimdall - DeathReporter loaded")
end

View File

@@ -102,7 +102,8 @@ local function init()
data.who = {
ignored = {},
}
--/run Heimdall_Data.config = {who={enabled=true},deathReporter={enabled=true}}
--/run Heimdall_Data.config = {deathReporter={enabled=true}}
data.config = {
spotter = {
enabled = data.GetOrDefault(Heimdall_Data, { "config", "spotter", "enabled" }, true),
@@ -115,7 +116,7 @@ local function init()
throttleTime = data.GetOrDefault(Heimdall_Data, { "config", "spotter", "throttleTime" }, 1)
},
who = {
enabled = data.GetOrDefault(Heimdall_Data, { "config", "who", "enabled" }, true),
enabled = data.GetOrDefault(Heimdall_Data, { "config", "who", "enabled" }, false),
ignored = data.GetOrDefault(Heimdall_Data, { "config", "who", "ignored" }, {}),
notifyChannel = data.GetOrDefault(Heimdall_Data, { "config", "who", "notifyChannel" }, "Foobar"),
ttl = data.GetOrDefault(Heimdall_Data, { "config", "who", "ttl" }, 10),
@@ -133,22 +134,22 @@ local function init()
enabled = data.GetOrDefault(Heimdall_Data, { "config", "messenger", "enabled" }, true),
},
deathReporter = {
enabled = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "enabled" }, true),
enabled = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "enabled" }, false),
throttle = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "throttle" }, 10),
doWhisper = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "doWhisper" }, true),
notifyChannel = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "notifyChannel" }, "Foobar"),
zoneOverride = data.GetOrDefault(Heimdall_Data, { "config", "deathReporter", "zoneOverride" }, nil),
},
whisperNotify = data.GetOrDefault(Heimdall_Data, { "config", "whisperNotify" }, {
-- "Extazyk",
-- "Smokefire",
-- "Smokemantra",
-- "Хихихантер",
-- "Муркот",
-- "Растафаркрай",
-- "Frosstmorn",
-- "Pulsjkee",
-- "Paskoo",
"Extazyk",
"Smokefire",
"Smokemantra",
"Хихихантер",
"Муркот",
"Растафаркрай",
"Frosstmorn",
"Pulsjkee",
"Paskoo",
"Totleta",
"Healleta",
"Deathleta",
@@ -244,6 +245,7 @@ local function init()
data.Messenger.Init()
data.Spotter.Init()
data.DeathReporter.Init()
print("Heimdall loaded!")
end
local loadedFrame = CreateFrame("Frame")

View File

@@ -4,7 +4,10 @@ local addonname, data = ...
data.Messenger = {}
function data.Messenger.Init()
if not data.config.messenger.enabled then return end
if not data.config.messenger.enabled then
print("Heimdall - Messenger disabled")
return
end
---@class Message
---@field message string
@@ -92,4 +95,6 @@ function data.Messenger.Init()
-- message = "TEST"
-- })
--end)
print("Heimdall - Messenger loaded")
end

View File

@@ -4,7 +4,11 @@ local addonname, data = ...
data.Spotter = {}
function data.Spotter.Init()
if not data.config.spotter.enabled then return end
if not data.config.spotter.enabled then
print("Heimdall - Spotter disabled")
return
end
local function FormatHP(hp)
if hp > 1e9 then
return string.format("%.1fB", hp / 1e9)
@@ -108,4 +112,6 @@ function data.Spotter.Init()
print(string.format("Error notifying %s: %s", tostring(unit), tostring(err)))
end
end)
print("Heimdall - Spotter loaded")
end

View File

@@ -4,12 +4,16 @@ local addonname, data = ...
data.Whoer = {}
function data.Whoer.Init()
if not data.config.who.enabled then return end
if not data.config.who.enabled then
print("Heimdall - Whoer disabled")
return
end
if not Heimdall_Data.who then Heimdall_Data.who = {} end
if not Heimdall_Data.who.data then Heimdall_Data.who.data = {} end
---@type table<string, Player>
local players = {}
HeimdallStinkies = {}
---@class Player
---@field name string
@@ -21,6 +25,7 @@ function data.Whoer.Init()
---@field lastSeen string
---@field firstSeen string
---@field seenCount number
---@field stinky boolean?
Player = {
---@param name string
---@param guild string
@@ -262,7 +267,7 @@ function data.Whoer.Init()
if not continue then
local timestamp = date("%Y-%m-%dT%H:%M:%S")
local player = players[name]
local player = HeimdallStinkies[name]
if not player then
player = Player.new(name, guild, race, class, zone)
if not Heimdall_Data.who then Heimdall_Data.who = {} end
@@ -280,6 +285,7 @@ function data.Whoer.Init()
local stinky = data.config.stinkies[name]
if stinky then
player.stinky = true
PlaySoundFile("Interface\\Sounds\\Domination.ogg", "Master")
else
PlaySoundFile("Interface\\Sounds\\Cloak.ogg", "Master")
@@ -292,7 +298,7 @@ function data.Whoer.Init()
player.lastSeen = timestamp
player.seenCount = player.seenCount + 1
players[name] = player
HeimdallStinkies[name] = player
end
player.lastSeenInternal = GetTime()
@@ -304,7 +310,7 @@ function data.Whoer.Init()
end
player.zone = zone
player.lastSeen = timestamp
players[name] = player
HeimdallStinkies[name] = player
if not Heimdall_Data.who then Heimdall_Data.who = {} end
if not Heimdall_Data.who.data then Heimdall_Data.who.data = {} end
Heimdall_Data.who.data[name] = player
@@ -318,11 +324,11 @@ function data.Whoer.Init()
if not data.who.updateTicker then
data.who.updateTicker = C_Timer.NewTicker(0.5, function()
for name, player in pairs(players) do
for name, player in pairs(HeimdallStinkies) do
if player.lastSeenInternal + data.config.who.ttl < GetTime() then
NotifyGone(player)
PlaySoundFile("Interface\\Sounds\\Uncloak.ogg", "Master")
players[name] = nil
HeimdallStinkies[name] = nil
end
end
end)
@@ -353,7 +359,7 @@ function data.Whoer.Init()
whoQueryWhisperFrame:RegisterEvent("CHAT_MSG_WHISPER")
whoQueryWhisperFrame:SetScript("OnEvent", function(self, event, msg, sender)
if msg == "who" then
for _, player in pairs(players) do
for _, player in pairs(HeimdallStinkies) do
local text = player:NotifyMessage()
---@type Message
local msg = {
@@ -388,7 +394,7 @@ function data.Whoer.Init()
end
if msg == "who" then
for _, player in pairs(players) do
for _, player in pairs(HeimdallStinkies) do
local text = player:NotifyMessage()
---@type Message
local msg = {
@@ -400,4 +406,6 @@ function data.Whoer.Init()
end
end
end)
print("Heimdall - Whoer loaded")
end