Compare commits

..

2 Commits

Author SHA1 Message Date
4ab2cd0eb9 Fix messenger exploding on nulled messages 2024-11-29 19:27:09 +01:00
73b6e7ca09 Update whosniffer to use named channels 2024-11-29 19:23:26 +01:00
5 changed files with 25 additions and 43 deletions

View File

@@ -4,7 +4,11 @@
---@type sender string ---@type sender string
function(event, msg, sender, ...) function(event, msg, sender, ...)
local channelId = select(6, ...) local channelId = select(6, ...)
if channelId ~= aura_env.channelId then local channelName = aura_env.GetChannelName(channelId)
if not channelName then
return
end
if channelName ~= aura_env.config.channel then
return return
end end
@@ -13,7 +17,7 @@ function(event, msg, sender, ...)
local msg = aura_env.MakeNotifyMessage(player) local msg = aura_env.MakeNotifyMessage(player)
local message = { local message = {
channel = "CHANNEL", channel = "CHANNEL",
data = channelId, data = aura_env.config.channel,
message = msg message = msg
} }
table.insert(WeakAurasSaved.Cyka.MessageQueue, message) table.insert(WeakAurasSaved.Cyka.MessageQueue, message)

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,6 @@ if not WeakAurasSaved.Cyka.WhoSniffer then
end end
aura_env.ignored = {"Maritza", "Goodbones"} aura_env.ignored = {"Maritza", "Goodbones"}
local channelId = nil
---@class aura_env ---@class aura_env
---@field raceMap table<string, string> ---@field raceMap table<string, string>
@@ -262,13 +261,9 @@ local NotifyAll = function(msg)
end end
---@param msg string ---@param msg string
local NotifyChannel = function(msg) local NotifyChannel = function(msg)
if not channelId then
print("cannot notify channel, channelId is nil")
return
end
local message = { local message = {
channel = "CHANNEL", channel = "CHANNEL",
data = channelId, data = aura_env.channel,
message = msg message = msg
} }
table.insert(WeakAurasSaved.Cyka.MessageQueue, message) table.insert(WeakAurasSaved.Cyka.MessageQueue, message)
@@ -310,37 +305,6 @@ aura_env.NotifyGone = function(player)
aura_env.NotifyChannelGone(player) aura_env.NotifyChannelGone(player)
end end
-- CHANNEL fuckery
local channel = aura_env.config.channel or "foobar"
local password = aura_env.config.channelPassword
local function FindOrJoinChannel(channelName, password)
local function GetChannelId(channelName)
local channels = {GetChannelList()}
for i = 1, #channels, 2 do
local id = channels[i]
local name = channels[i + 1]
if name == channelName then
return id
end
end
end
channelId = GetChannelId(channelName)
if not channelId then
print(string.format("channel %s not found, joining", channelName))
if password then
JoinPermanentChannel(channelName, password)
else
JoinPermanentChannel(channelName)
end
end
channelId = GetChannelId(channelName)
return channelId
end
aura_env.channelId = FindOrJoinChannel(channel, password)
print(string.format("channel %s resolved to id %d", channel, channelId))
---@param player Player ---@param player Player
---@return nil ---@return nil
aura_env.NotifyChannel = function(player) aura_env.NotifyChannel = function(player)
@@ -354,4 +318,16 @@ aura_env.NotifyChannelGone = function(player)
local msg = string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild, local msg = string.format("%s of class %s and guild %s left %s", player.name, player.class, player.guild,
player.zone) player.zone)
NotifyChannel(msg) NotifyChannel(msg)
end
aura_env.GetChannelName= function(channelId)
local channels = {GetChannelList()}
for i = 1, #channels, 2 do
local id = channels[i]
local name = channels[i + 1]
if id == channelId then
return name
end
end
return nil
end end

View File

@@ -5,10 +5,12 @@ function()
---@type Message ---@type Message
local message = WeakAurasSaved.Cyka.MessageQueue[1] local message = WeakAurasSaved.Cyka.MessageQueue[1]
if message == nil then return end if not message then return end
if not message.message or message.message == "" then return end
if not message.channel or message.channel == "" then return end
-- Map channel names to ids -- Map channel names to ids
if message.channel == "CHANNEL" and string.match(message.data, "%D") then if message.channel == "CHANNEL" and message.data and string.match(message.data, "%D") then
print("Channel presented as string:", message.data) print("Channel presented as string:", message.data)
local channelId = aura_env.channelIdMap[message.data] local channelId = aura_env.channelIdMap[message.data]
if not channelId then if not channelId then

View File

@@ -1 +1 @@
!TIr)VPTr0)xyQseTakq76KM2MwkL0MmIHMZD5hQ6HpSpdxJ5mY3zAsRQ)BFV3D(lmMssvvJO239((7NPdOUuYAkja)dEmovhjKCkz67DNCPZykjmwQjIVWPodgsjSu9Q4KPB0IyPcqWXqa9dBaueYnPAkjvXFnx5txqjFweOxHWqc4HS0i4wkrYwdapAftk5rzEoMxVJ)aL4BpJsI4YLgepdeoanHrMwyO9e7DlOAQZWNmZRZNzmL6ZXjbn4rDM3qwRWyxbbiDGqTjI9Gl)E4LNTHsEyAyOIdcjqMe(sWE5AeuTbcDS)wEIcoL687N98ZaG8JJItSMu8VHMFFU53xG)cyDFnA6NQ0XRr(9(nbmnqz(wUuBCrXRzAH)Tgda5C4D4u)cxgrPzjA4ba2qHuOwzFgEepLeep3sB6Rk4cL0RxV)bn0zEA2Ii(FQ0jc5YtZ8KPRxWt(7SRyPjS5C52(5w3ldUMTjZ7VY8(63QD7fczW0KRIfYsRkasyQ0iFDZrgdkaIVj3EFs2vzE2)ff7ZIQqiZ7nC9Ocowh9A40a3CGuwHRc)jcLU7jFBF8cJtY8egWhas1Vuqa45HzEbX7JrdokcmixG3heF8OOGrEnqkZ7xbb47GQiSeVkeDmhOxXLhgXI)LW1PjsJ8Eqy5YwUCNd3fIRA36FP1K8i8EgTkwVdMTRoBGysD3o5eSZP7ydG36yityCQmaE7tqmied3PLafKLfXEhZ2HHYZ4jRzsi7lN1hpmU0wfP4)40(KNIN4jB4BnJ(d1G9J1dqVSgRkIJQDLrukPiXNvK)R2TaWjhkG54PRp900Nq65pqAz72pzPHt00tz(P10Kdx(SBfxILHILfm7068FNBMvfnUFcZHPwNeUkoAlhtiIrHVw(1LiX61RezHMNW0O7aK9ZWRULZU7C4AfHbKO)OhUJ1)AUsXwYFxkpLx2OOxVgUXbNDM151RxHXY0cQVqQ4j6UhJYaj(ADKBKoy4tNrV9ChNXtavQfiHURSD9cLQDRWV2YDlLDhtC7K51VpQt1a(Bglg4XTJpaTtxUegiOAKk7bvd4u0jwLUW0ONKggkUNsMp6CI7CI7534wocWB5SiS1FbSZs4gyjZgpzcop0caz74iVD8Kzx8E4WuS9pbNHb4krTHhb6NYoAagZM)OvmMBLPC2viATLexw9Uf)uEP12VYgpSBjSVhXAeoDqk3AyxoBkzu14o5qVxvP6o5JXLpuV6aQdvidylfrfIBrDZ9KgqoWHPkJznoKIervReVFvaE9iCikgiUND(T(WCI(R6wGbgOJz6p71qtXhvpw8DUcccWYcmvbD)dS2qDQE0HXAwNBNsM1P0hBVB9JBaHdPe7mxGc6nDObd2R0E9gzD)oi8tqnBDWRFs6oole)idfDevz)othjaOv9PP0DSMohO2B)YA2TmDsJSlB3Ke(64T8ht3Kb1ylbOfiR6Cqkv58))09Ygp1KVVF2HrMYlOQOe3lh9VJVzo07RCtV5Reb46JI1CSNbuVUQfHPfcUH3wUR9WRJbGD6b7WI3i9HL2NbUg4LrJDChFdUUh0KwYI(VI1qh(sk5taReHWkYtgFbUPipkmhTxn11D61aAWYVO2cl)I9jG2k8a7IModrHnmbknbDVa1YS7TL3xGNAB4qgDZ4XoW65Wii3MWGnLVT8PuK639M35Zx)BHQ3qWLIXXqWUGLFCGZxAB60CjEgEU6fdrngA8DJzN78UwmPaxjguZA7)scahnEyE3mfh4g0YlVHRmwYrCxZeYhp0LBu)4GxBuXaHUswJIzMpfd0c2381zWporHt2pc039ovHFFMghQTF6gk5IeXxY8ExkliXKu4A4ciid7p4L9FoLSfCuVyi(bgO))d !TI1)VPnou8)x40KO6kikRBN0P7MUogDJE0aRo76pmTuCtCaVgSrXoS2n183(9E2jHKqOqNMkknX(9(8E(9f)E2EN456rw6rcWFWRYeDexW8it(K74rod9iHsHMW)oZZ5K(EeAIEHmEYknxkuadoga0pScyHlwLO9ijk27ykFVB9iFJhOxG0qcyH0KiywqAW)5gHauiOlbohSGkeSO0zoMpJyI5g(65rUJ9GhX3oVb7X2jV1t750)zl8AYBkvP(MmoOQC2mAznPIExvraOd4Qvr0hCz3dF8IvEKhMegQyGscSgZMd2lxJIQnuGWFDmfO76I38LrYyRnf)1388LMNNIpb2UVeO(jkTCjkWpTkGQbOzRzcTXhjxs1C)RnwaYzW3WO(5(mIstJ1WlaTHCbxTW(o8kokjqEJfBV3MlfpsNoD(h0sNottVnI9xkDmxm)40zIKL3YIFt6f0Ky6nmX6UzwXrbxsxLo7VtN9Jhln75CrWK4lKCrHxaijmry0V2zmJbca4RY8ehLEr6m7FrsFA0ggsN9EMEqUelZEjEQXBgrkRYTH)XCLU9rpUnFHY40zCd5NaA1VLda8E)0zbYT5OMe5bgMZ57Z8VSxwWi1AmLo73bf4jyLhwW3ggDmdOxWe7MX8)Iz6KyHrF3jTmrdtwzWQuCrZw)rwtYb49mRkPUcNnVCwbXK62TYaS1XvSbWxTmWektebWxFfIbHy4wneOGImp2BF2omuEklEjvazFzIE)HXf2Qif7Nh7JEoEINTHVXm6pxI2VuoaDujrLhhvAkJQuGiXNMN)RQUbWr7kGz)PRp)00Nr65prAzZ2prHHJx3tzE0yAYU3(S9gPifH855c74YYVYmt3enUDcZUrRvmtjJwZWecjQ8LYVgHG1PtbZCnlMQr3bO79WPUMrV7myAfHcq0DWd3r7EjtPOZzFmHLWkku0Ptn34j96zDED6KBSmLG6YfkwSU9(qgG4hLzUw6GroTg8HZCCgogwsnqjuDLw1luSSBK(LwPBr2DiXTv6SUDX1ujIF0yXapUT)bOC685S4s9uzhytho5vIvj3Ak0tscd537rUzWze3BiUNDLBrlaFGrJWs)50onMzOLmD44Xydr3cmB7h5ddhp98pbdMGL)jytmGuTaP8iUJg8VdV6Mx1RNT5jLTxbRYCJvZYeAUc2uQCXE4n4TY2GT5PSrfv3i7PaRwq1orUXGVmXuiOnn9Kr9w7nv2vVpP85Y7ruSgkqWQQ57C28coJ4UfmHPkBniw8VvRNhIfzdLrCtkYtGyjRfyNWw(kyZeWKVDHQQ0Bwg55HqUgaEbr2mqZq2gp7cn46VOD55XTOEX7GQ5huZb43mfe3I7Nrv54(N4MALrDVDrwFd6k71xgPV0CBghwNn7AruPHgfuuDxD0SvnPYvGB)em8lyz2yhJ)Iw7ytCS90n3EwkBxsDpbanUEQRD7RA5okA0TOytdTvvlHZwgmMTuUMDiLbpPKyjawGUQZiPDTnroEReu8OE8OTZom6euPzflc01QLhwWdWt8YxYWQCqfMnf1mf9WZKUM5Ah8sjqSth4O24mc)fY4PGpb(yWqh3HxHhqfARqqJ(pOojuFboI8R9iFfefpeo8(4HNJNTLffMX2BN46o5sGn4G84YeoVowzdASjGNFwy8iWXWUuq5wy5yUTaROphh1wHKm4QHdDWj44XQbbx6m0KaWMJdMvluXq8v5fTfsbdfYskxC4uxCQ8dJE00IlY7E)h9zlFvO69eGcP)6C70F07Ly9BOBGRm3erUxY0IhkMIly5S52s51Vieko(P9Tk39Sa7vl40hHnssn3Deec4BUoj8IsYDX(ragBnQcVqPAdQT31Kh58y(3tN9XeAqSjxW1OSWIUF3tED3x6rwd(Pt7JxiI3)d