This commit is contained in:
@@ -16,8 +16,15 @@ function shared.DeathReporter.Init()
|
||||
---@param spellName string
|
||||
local function RegisterDeath(source, destination, spellName)
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Processing death event - Source: %s, Target: %s, Spell: %s",
|
||||
ModuleName, source, destination, spellName))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Processing death event - Source: %s, Target: %s, Spell: %s",
|
||||
ModuleName,
|
||||
source,
|
||||
destination,
|
||||
spellName
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
if not Heimdall_Data.config.deathReporter.enabled then
|
||||
@@ -27,27 +34,52 @@ function shared.DeathReporter.Init()
|
||||
return
|
||||
end
|
||||
|
||||
if recentDeaths[destination] and GetTime() - recentDeaths[destination] < Heimdall_Data.config.deathReporter.throttle then
|
||||
if
|
||||
recentDeaths[destination]
|
||||
and GetTime() - recentDeaths[destination] < Heimdall_Data.config.deathReporter.throttle
|
||||
then
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
local timeLeft = Heimdall_Data.config.deathReporter.throttle - (GetTime() - recentDeaths[destination])
|
||||
print(string.format("[%s] Death report throttled for %s (%.1f seconds remaining)",
|
||||
ModuleName, destination, timeLeft))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Death report throttled for %s (%.1f seconds remaining)",
|
||||
ModuleName,
|
||||
destination,
|
||||
timeLeft
|
||||
)
|
||||
)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if recentDuels[destination] and GetTime() - recentDuels[destination] < Heimdall_Data.config.deathReporter.duelThrottle then
|
||||
if
|
||||
recentDuels[destination]
|
||||
and GetTime() - recentDuels[destination] < Heimdall_Data.config.deathReporter.duelThrottle
|
||||
then
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Ignoring death report - Recent duel detected for target: %s", ModuleName,
|
||||
destination))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Ignoring death report - Recent duel detected for target: %s",
|
||||
ModuleName,
|
||||
destination
|
||||
)
|
||||
)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if recentDuels[source] and GetTime() - recentDuels[source] < Heimdall_Data.config.deathReporter.duelThrottle then
|
||||
if
|
||||
recentDuels[source]
|
||||
and GetTime() - recentDuels[source] < Heimdall_Data.config.deathReporter.duelThrottle
|
||||
then
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Ignoring death report - Recent duel detected for source: %s", ModuleName,
|
||||
source))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Ignoring death report - Recent duel detected for source: %s",
|
||||
ModuleName,
|
||||
source
|
||||
)
|
||||
)
|
||||
end
|
||||
return
|
||||
end
|
||||
@@ -58,25 +90,48 @@ function shared.DeathReporter.Init()
|
||||
recentDeaths[destination] = GetTime()
|
||||
|
||||
C_Timer.NewTimer(3, function()
|
||||
if recentDuels[destination] and GetTime() - recentDuels[destination] < Heimdall_Data.config.deathReporter.duelThrottle then
|
||||
if
|
||||
recentDuels[destination]
|
||||
and GetTime() - recentDuels[destination] < Heimdall_Data.config.deathReporter.duelThrottle
|
||||
then
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Cancelling delayed death report - Recent duel detected for: %s", ModuleName,
|
||||
destination))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Cancelling delayed death report - Recent duel detected for: %s",
|
||||
ModuleName,
|
||||
destination
|
||||
)
|
||||
)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if recentDuels[source] and GetTime() - recentDuels[source] < Heimdall_Data.config.deathReporter.duelThrottle then
|
||||
if
|
||||
recentDuels[source]
|
||||
and GetTime() - recentDuels[source] < Heimdall_Data.config.deathReporter.duelThrottle
|
||||
then
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Cancelling delayed death report - Recent duel detected for: %s", ModuleName,
|
||||
source))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Cancelling delayed death report - Recent duel detected for: %s",
|
||||
ModuleName,
|
||||
source
|
||||
)
|
||||
)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Sending death report - %s killed %s with %s",
|
||||
ModuleName, source, destination, spellName))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Sending death report - %s killed %s with %s",
|
||||
ModuleName,
|
||||
source,
|
||||
destination,
|
||||
spellName
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
local zone, subzone = GetZoneText() or "Unknown", GetSubZoneText() or "Unknown"
|
||||
@@ -95,18 +150,22 @@ function shared.DeathReporter.Init()
|
||||
|
||||
for _, channel in pairs(Heimdall_Data.config.deathReporter.channels) do
|
||||
local locale = shared.GetLocaleForChannel(channel)
|
||||
local text = string.format(shared._L("killed", locale),
|
||||
local text = string.format(
|
||||
shared._L("killed", locale),
|
||||
source,
|
||||
destination,
|
||||
shared._L(spellName, locale),
|
||||
shared._L(zone, locale), shared._L(subzone, locale),
|
||||
shared._L(zone, locale),
|
||||
shared._L(subzone, locale),
|
||||
zoneId,
|
||||
x * 100, y * 100)
|
||||
x * 100,
|
||||
y * 100
|
||||
)
|
||||
---@type Message
|
||||
local msg = {
|
||||
channel = "C",
|
||||
data = channel,
|
||||
message = text
|
||||
message = text,
|
||||
}
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Queuing death report message", ModuleName))
|
||||
@@ -162,7 +221,9 @@ function shared.DeathReporter.Init()
|
||||
local source, destination = string.match(msg, "([^ ]+) has defeated ([^ ]+) in a duel")
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Received system message: %s", ModuleName, msg))
|
||||
print(string.format("[%s] Source: %s, Destination: %s", ModuleName, tostring(source), tostring(destination)))
|
||||
print(
|
||||
string.format("[%s] Source: %s, Destination: %s", ModuleName, tostring(source), tostring(destination))
|
||||
)
|
||||
end
|
||||
if not source or not destination then return end
|
||||
source = string.match(source, "([^-]+)")
|
||||
@@ -178,8 +239,14 @@ function shared.DeathReporter.Init()
|
||||
end)
|
||||
|
||||
if Heimdall_Data.config.deathReporter.debug then
|
||||
print(string.format("[%s] Module initialized with throttle: %.1fs, duel throttle: %.1fs",
|
||||
ModuleName, Heimdall_Data.config.deathReporter.throttle, Heimdall_Data.config.deathReporter.duelThrottle))
|
||||
print(
|
||||
string.format(
|
||||
"[%s] Module initialized with throttle: %.1fs, duel throttle: %.1fs",
|
||||
ModuleName,
|
||||
Heimdall_Data.config.deathReporter.throttle,
|
||||
Heimdall_Data.config.deathReporter.duelThrottle
|
||||
)
|
||||
)
|
||||
end
|
||||
print("[Heimdall] DeathReporter loaded")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user