From 6add5060c5a191d1576d7098031c02d86ba3daca Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Mon, 14 Oct 2024 15:10:57 +0200 Subject: [PATCH] Rework to send addon messages --- FreshShit/StinkyDetector/event.lua | 2 +- FreshShit/StinkyDetector/event2.lua | 20 ++- FreshShit/StinkyDetector/event3.lua | 4 + FreshShit/StinkyDetector/export | 2 +- FreshShit/StinkyDetector/init.lua | 199 ++++++++++++++++++++++------ 5 files changed, 175 insertions(+), 52 deletions(-) create mode 100644 FreshShit/StinkyDetector/event3.lua diff --git a/FreshShit/StinkyDetector/event.lua b/FreshShit/StinkyDetector/event.lua index 1b4152e..dd12fd4 100644 --- a/FreshShit/StinkyDetector/event.lua +++ b/FreshShit/StinkyDetector/event.lua @@ -3,7 +3,7 @@ ---@param e string function(allstates, e, ...) if e == "TICKER_1000" then - local ttl = 120 + local ttl = aura_env.config.ttl or 120 for _, state in pairs(allstates) do if state.progress then local elapsedTime = GetTime() - state.index diff --git a/FreshShit/StinkyDetector/event2.lua b/FreshShit/StinkyDetector/event2.lua index 48881a8..98a6c01 100644 --- a/FreshShit/StinkyDetector/event2.lua +++ b/FreshShit/StinkyDetector/event2.lua @@ -1,8 +1,16 @@ --- TICKER_200 +-- TICKER_100 function() - local whisper = aura_env.whisperQueue[1] - if whisper == nil then return end - SendChatMessage(whisper.msg, "WHISPER", nil, whisper.to) - print(string.format("Whispering %s, %d remaining in queue", whisper.to, #aura_env.whisperQueue)) - table.remove(aura_env.whisperQueue, 1) + ---@type Message + local message = aura_env.messageQueue[1] + if message == nil then return end + print(string.format("Processing message; %d in queue", #aura_env.messageQueue)) + DevTools_Dump(message) + + if message.addon then + SendAddonMessage("STINKY_DETECTED", message.message, message.channel, nil, message.to) + else + SendChatMessage(message.message, message.channel, nil, message.to) + end + + table.remove(aura_env.messageQueue, 1) end \ No newline at end of file diff --git a/FreshShit/StinkyDetector/event3.lua b/FreshShit/StinkyDetector/event3.lua new file mode 100644 index 0000000..ca03e30 --- /dev/null +++ b/FreshShit/StinkyDetector/event3.lua @@ -0,0 +1,4 @@ +-- CHAT_MSG_ADDON +function(e, msg) + print(e, msg) +end \ No newline at end of file diff --git a/FreshShit/StinkyDetector/export b/FreshShit/StinkyDetector/export index 6cdc11b..8788e6a 100644 --- a/FreshShit/StinkyDetector/export +++ b/FreshShit/StinkyDetector/export @@ -1 +1 @@ -!DV16ZTTXr8)wc64jutSyiPKLDZKKw9GYM2YuQcuwtQTj5jIJKieehZbarr1Ao5v7mDANM(TotFnTFOt7hDE4PUojoFO)dq(Fu39UdGaGa8HdTNoDKLmWD7T3U79B3BV7WvnF1kv1DQQxiB(TYUrv9Uv1nW)bLs4noGA3YTD1YBSvUQ6NX4gu(oKgDm4SEv13XY8YljCJH1RWywUMqrxCyZMou3Q7V(M34g5VXg5YLFRRNVW1ZvOAZ13ey)afbLVwUS5YLRWMBMFZCBv4AqVz3OnJFeZ02TQ(UflxP4X(D5UmlghKOY5Rwox1Yfe)DdXF3eleAGtpsdkwLoPHRjZ2rOwUeUl8auVPTP6PMWJoTfpdV5YnB1IYDKCVsqb4Jg0Z8A2SYGE0Q63Q4bhT)jha1lEL4XjfWELAzvYWrYzhVZONtTD1HwzErv9A7UTELA6v2(yGz2KU0y0DeNkOt)OIhaCwug0tuIfyY19qjwVNfzainU47tenxPW3Gz511wxQ65rL0LYTjw3duiWgaMJTq7QzxcAscBruQHnZg(RbOmib1Kf6qBWSbDc6GUet7fN6al7Irp0cILzl7Q6huCFOrCMRuoHXv0gDmTLAGeO0IreysphATgwehNQNjm)nWc76bOp)ruzTXl1X8sA8cHIptbMdJWYlqy5fiS8cewUSxtiTcljT6oa7AqSK2CjcfLg5tfnAbAP(h4r40H133ZYAy9tBBcntNluijEYyaaimB0IZ8653uDugriSLzxt0frOUBl9lO8tqaXzIXqbmantq9hii(m0(1FcuamYaD2U7dUdGMPF827v6eD)EQKTWhmq89Dk3u0WMMTKgDxwJZ9Hsxph4mdqmi4GURPDNb6ni22u(nLAqtoGVbNhIlrW3wCtJtnnWyhb(27J0ivF9DpUyXYsYKLC8EG2GCF7l6dTSzB9R7I1Z6xvFVdpTm6Z5cm5WEUtqfomand(PonO2gM2TeIVHzik4edtphWQIcVd1QPkatLdpsG6qatGVpZZ1YeXShEsLdkvUiOwmWDwoSKBs0n0YBy6G(MvOxaS4k2dRFLECwlo1XzyDslwOiD5sj2wcw3gZegkc0f3kOIAjD486EgamquXEGnbbQDjxuT8w5eAVlTNySPVCCbaADb3BSem4uv9Ix0Zu6Rcr0nXsqlBv9sW7(UTqrnjGpe0m0I0HoacCf0oxSvUiRtvMotjtxlbjk)us0aWhI1Cy9TV0PnHtuDiuCnwZAbfgitfWoFJvuNVhH3PnfIxcwJ2Mn6qDJ0tsrjGOA(0iCJwnsWowq4PH1pMXG)ElMLHQtfLxdlUMS0OgGRTI6(BrSSCK2)7rqG50QVGeCSqsauZwROoVmfMfKWbq1RdYWbetUQlNuHtnzXr1(RVIeG7H8uQ9UTby4PqMouBNemcckrJaqxnFYG6VXkssUlPVuoGauwoQofke7svrrnb)Wvuhxb17T5n6tgKGAd1wtvjgoi3kQt3L5Xv2DDiBfF9vuSqJLfgvJZNFf17htD94q8ox2W63bcUCzBI9Bb4pwFAs4Fj51Cz18jUMKuraYvLfHaaldoXsAvkktYBy9YMTA76BE8PbnrkkQPiiMPAJxUMQt61BrnvssrzAvfXuNsc7ZwHB619CCYjQskqc8DvJuBeJeMvGNJlRlo9(j9meuOYphMaMHju3qMEJ(2W7Zzvh6gSAs(HtjREs3eKsBgiUNsjD2gYs2rNCo1i7Ud6qeYVDkv9odR)ZE0W6qkpdV9Sys2JelEyFPSTlPbAssLVjsD4UkP2isf0K6iPC4Thwx(Z91oMACMNvhI2df15Y9OxnC9J(dJ)KXF4OVE8VE0ZsJMJnPqgMPv7j29joaOp1E4po65J(Irpf6Jpz03o(tsJU7W4SZj4YusJIJmV0Gb5A2H0nns2J23G2pvr53bQ63m6XJ(sqC(QuP6Fo67g9KrpB0JtJI3Zdx1GQ2MelhO66RVoKCamwzIzEoSUfZHYhw)mpau0MItEc0bUOTXm9ZMnlonYW6LgwhYF)1bA6yIlrPTzxyy(CeBGqkO6(WQhOgc37qsWTH5BOPoErCDP2nP2TsFuBhlifzRbPZIU)N)MfXW2Cg2YpA8hd2YVg(9Zh9u5BPrnSaGom7bTtWMTnKTUsbRBrbmTYkazYydpdR32enmuPjcSJoSUurvKwW6IJit)EuEay23n65J)4XF44pB8hLqpo6pjW8pdj6TegzpBy1x4c1mK2Db7vHV6k7yHiIsHnT)zGRwwFF4bmVH1nmneJB8bUTHfanSohJ5lPzaM2oYMMCWrYWAGcvuYhs0NWTvSVRkmcAmGvRgTlJOQ)dai)8rFf4z9KrFBGV7)NOMHu0FkPp5sL2zBAfbvvH5ArDjrQ9rdVTfRboVSlRmZ1S5avqX6A6EnA0d3DdMgyI0kEHl5YbDepR3L1H20KtN8wxWXdIfHVp6Vd47FH43hdHW(4rpz8hkRiKjwwWFD0JLEcJ)u4xOk43hp6FRnSoiy4OYciCcAXT2Qg1(8S9BdlXLY)jEuVGzcUDGsIJz69iDXfkkQDJCb1XPW6XDTgCh14QQTbCg3zhyQC(DeHEq0JNTywNmoqwEnqCeSYtyQfXIkH3e7ZwzygE4zgGcWoFTjdiiKkAFEFjJGXhbMlTkF3H1Vj1fvHmRby34ALaag0l()0JdlJpdeXhs5cHyCkXya2h9yCiIPwibtmVzyP0x4hw)Tb1oNpgNRsLssFqluMZMYPKfwkTr)zWV7PJ(xO)Nya)BHH7pBy9XFQya)zJ)LaC5Z0I2Tl209tSljR4HLJLKJXSiX1WUoTeC1XfSTTY2KXHmSYODfiOl(ley9ZX5XvV9rqigiqlghA8VA8Vz8Vns5GlcyHW6)AW2GXOEk83VbOXq7QPQuii7fc7bYkaBG6ohm1GTPhSKuNm(EzaQYGnDNI(J6GPy32e37cZhsArZa2a0r(0Bvs)OIhJo1I4k1pFTPBVl5mlAwtByME3mj6WEvHZngMdmRNF1jMyX))O0WOPiu38KshSNioZH8gMoTdJXtZ36Dc7BDB14EGS6eoXXzMz5K2ialrZ4uerA91x)h3dwtbgCNG(TsyuOwk3XY9OU0gUQasbHCWMelwIykIK727JKdAhoQpBkE7Ph2IgRzRCP5OHosWc7Tn230IMrReUT(aoL(Ghik15bpypwxfcnlRvlXiZDjyivTeqlZ3jB0xa)(xahNVe(9PGJ13iMd5jVMagg1a99c4VQCaEz4iKOdX3dhJi8z2yLe9v8J(lYQzcExvmSm5W1anVSx39LLGmrm8ykQl)vJsE4bgFUruZId8rYKs2nzzmdhOt28qImMSTsAtgmml)6yaKa3o)UPtQtdTTHHueZ0jU1EISSk180Mbn(OyYI7U1WXvE2TBcUNzqjki0ZAZ2brMOHuaX1TPj(h(KzqbYiBVM2myLUVIbEMuNmMIenRuQ8DEpTKr)HTQqw9VQvPYimqm)WGLvTc10F0cOCbqgCoK3K7zpNX5y59lX)OA9MgED7nV5XwUdFwUzy(7vK8)9pcvizDQNAxPu1020aEbp)fJPoj5zDEZov139W7UZ2vQDWH3SwX7vSCLANuE)shuP4Xf3By9kL29ofpUwE5jif54U9Ln0aSO8iYK14zhGQIt4hdtqOPYdaybucJ3yW9SzZgZvfDNXmLd1TAP5C6VOix56qYxixkt0vdZee73WX3cKL5mBhkvccZo5mctwEsr(OwKEouJG1AfnrcjRnH1yFX85OWcfMDVRs9xmbY)hzF60M1FYY)x2w3OnXULkDmPV08AhDP6fLXRhS6k3bb2onTWlazb5bKTLNRkPZClERHerSOtBVXm)MfEjD1pkmiY7YmkxAEgwZcE(naxHfNvjMW0SWFb9Z7oznWlTGhByDQSAVIrxmXSjKD1GoETxI6w8X6xA6hUGwNP0WqD)sRLlP77KyzjiEfYft2w7vq0HznwLyLPO3XYGCZCZp8o(X5uYrUdiz0WeC6zbAHFYnRTKb8dYkf5lU5djYZfLBH34gKHQTOr8P78IX4fC7FMSwbFryLm(4VDzrHf(ehpdFJil7p6evksKPmMW0d(17V1quoxq1Uhu8KJiCyzNzH5I1fvlgMMoDeXQAeTlzeasZuBlY82kUjUkbcUSfPtAeZqYourgdMAVlfkYeUmZeQIUfAjB12dOjbB2Yy7MTnmKq8Wf1)lKbnuZNF7waR7cG0tg2JA38S7PSvxzK6tcM3GCxVVKKhg)iCNYY4NRxSZyl(pXJBpdsdIYfF2J13qo9Hs6Nbl8Nec)icL(VI1aPnJM4)bPkiFRCZGYjFyBjL59BmNwJFOa4YYwelHm59iDWcO0ZAMxn4)sIhpAE7fV)ECNQF7HkcsiwNSbYJeBoriErdPov3n8NhP)8JdkWcE2DSz9T1sXPB1gSkrPjCqKLqKcFOdPyG8PyPTp(nCPKhHr10yoJx38Ks7np5z2XHvhU2Umpldv8)wu3jJQ45alsptLSIS81MhdtwMMD(eZmEDyOJXmrnV8SjrWwXnmHQ8vV1jyUBvWjiYuJ2zcbI0KjlQn38INSPHA6(qah)tObQsWgCxEXpoay5DgGUO9Qqzcg5FruL9ImY9kwFs8y4Fbp59ytHevAGkNZLIbwJqJob7xzORitKl)sIxeNeUrmQp7802dvpBv)O2Lu)8aQQNpqeWJ4zyD1H8m3DovTdJI7wq4DdDs5H24Y1MAMw1XujIBK4zxD)8pm68RtAr0y6r)(bs5iRunoBANZMF9USqIQeWglhJtLuk(qCUcUrSxr8nwG3wirz4oK(bOcOfHTWl)Ge1Z1c1HYt0dygG2s9e9YVMcDfzFXvJHZgXn92LNascVDhVVyG7C8YEzpq(bEEoTIKS7YmOQ7Jr4l1JR4YGK4TW69H(1S5a)76uFg34uoPxv9tdEAQRwdECbxq9Vgncuw8RztQxSMqx1LDoSsLdVR621CRmhvXUxMogLwtE7wex7dmzsXh5D8RD1)lF5XIFvF8VIyaeuCNKcDBV0DywSQ7mRliM4ILX6EgXn1Bwwk3HSGBmv6FIZciqSRjJ8c0K4DhOCH8X(a)lJ3qYPU5dLlSXuxgMYf2mPBLIqcs7JFwWNyxLdHmK6N3UOfZ4BoVCHBm1NSF5cxpYLgqWJ4xLfu8v21ZXVl8cOtw1)7d \ No newline at end of file +!DZZAVTrsY9B5yWIteRmpkzz7fxoVBKfPKLSmLIgQZ4GxtXMCAsohhonV5HKO3DjwV7LeeKdzZ3cqEFaji5J(27mI313U3hYFaY)rPQ(Xm9mSNHuYpWLazjtoD1vxV7QRUNU1gTA2YkOL1Mv242vUzlRrTSSX)bpL439qQx)WbTACZBxTLvhMVn1)EKUdT9zJBzDpxNN(uIV902nzm3qh4rxEuVEb0Ww7EJT(GpyJp4MvRUXTVZgBENQB2Q3n2cq)ejanUv1kvRwDZT2AJTQE7nVfmAEDhW8pM54f2YAN6nAw)e1qUdZL5duuJnA1OARgBY)7n5)Dl8Hqh8zxynM0LIF1I0n0H5fW5SqIFi8baehph5N6bFmya)ZW3c9D63N6higGMXpa)OnTtuVEnNmM2Y6(1p84Dp9qOD(xjr(KnHbym11DF7abMdI6qpN6fAb9Y5YwwNTZ2wnpZQ52NaiZJmIkHlcPfRXUKjW4yX7cmauIliSJrYX(uosSoU(Hhk6vcPfki(Um3OrEjSoi9O(Ee3FkWqGmaew3gqi1TNuW28OJpS(UOY11PVxllXxaPehTGefh9tO9LYpOhUmc3AikGEwxxsqqRoCUUl(WrrGExjifTM9PbopLM9HWJ7inJ01TBW1TBW1TBW1TvRCleyINZisiT19a01L4kyvHTbsnIpv3UpOwS(freF6027g56oT9Jg4aDZYNZqc1O9eqp40TVplASQRwin2a1MmWAb06bDPE2oE9Bz133Xw0XtQXfch6mc0DWO6tSDIcGUvfKAU8N24wOgXdeNEH7cwHaNzDY212)ul1iTVh36pM8vUdBX7ypN(cHEiR75kn4DQEtCeCa3sRqhVHtS6s88O(7j4aKaFKJn6LcJEpFWidSGjHeHRa3RAx8PcUWANtQxVb2n2fTSQD0JGphH4E7lVaWtVbw3jKZNBl8hP(N6j4xsui8GJghMyBeiS72Kt82oATi0yi9R5ek9C8yEOEa8Fqaot8WakIIaSVJioERo0XoZRg88yfHcsdm3rZ2yhFwuORd27JoT5H73OoGCg4llmoQYD2kWwLhhY2ja9QBsVe(Y75nT97n2N13NgemTnPptlay1Cc5Xvg3FTJB6nETH27xg5WlPkvm3ylRMqg2sW(rJ6GXuanynWmgDzgrUSvJBxf7zqiDm3U4cj6GwbHn(em6eeFWze48eYM2(qNZPcxHww7dmIsecpQhb8LHoHYKH0jWqh6cmpGTLsgBSseXaFkjCA7gSqNEtasbch6QgkEBIwKppMGULj6nevrX0viRFFi(HoDj6IAS6h54cZOXqmW92M22Mgs7gsT)OKHQJKAeGi67EypvSGcD7jq3nM2w47gZ0O1cy1ueHfd5sW502RTTTnZRSbII3GKY0i(vNNbKtqCmTnm5vaPpTClUK(6q4q0yyId)uIJfOyjqfqUxOqJzLeqE3(kOWlgBgy)cnc4Y7ywyzSVMMtZSaJjffeYgHrroDSnoZNkhbW1NHbw7kIhyTn89LKWJLn7mb(qMx(jRBCJB8NHsOPTFOGXE8tMEaMtZzuVZRiz2)8iAeaXDN2(t(SPhm9GKoj8VNEGldMpgcyK1RK3Py0jMARIbOyG44wXOXlXrYics1o21qFG(s37yPCU9pgICWqIptbirhOIWZYjN0GLGlDXDaK4NxFufPe4mLvfQCM2UKvu3UJXj2yLwh(A9ldjpDYq(NTgXgczs6tt(2iibfFc)7Z(pM9Y5)f8FF(SVB(xm7fZ)Crd)tZ)Y5F(SVD23p)lep4FB2ZN)maINp)xc)cnb)(8zFtPPT)SvIW4WjylEUIX2EIN1ZHIstPTNIPt1goXKHh3DaMrKRX2KUVDGLOqjEtpqnKc67GPTf)G9ymbYtYabyagDcXqZlqqgGHtyFKgLPdJpnmY3ttaPA0JEbN07f5XD6xtsTRJ006XJ86s8xoPNQFKkkCrbCmbzJmIc6hshx6AFYNTEkXs2Fo7mhpB6L8oUaTP(5ZmmQ4WvzKMSFuE9MdjkFVlxmBU9yb8Dte2MHuQ)VBSLa6H1J4gyyOvsDUSjUvyPaRJ2Tg0HQ5lKHZnQc9C0inEe1gMcZeRqf4mFfNUquQcQawfY(9J3L5pIJAzBRvEDfDwbNpc9K3709pSg6tJrAmmsCBHkoWAv8dxZ4KcRNmH4ccQ3cIj9OORSGkeM(uyHNizIfkl2REOHXzRl8TDakYzmXXpynveTYqAbS89mEn0oCh3sp6(7dR0)KculVMQhn10BDJ73o21l1K(pYTL))vMX5Bb)o10nBkfk9IwkaOnI50jKl0uMnB7nUXgvH)c)2HIW2gwZQZismGPqklmgPFkxHRYPpDIfIbhEwPsAguQrgEEvThlqAmWMS)sZmMsnjntzehlq7MSIZAHVqQhsFpXaUUaTVnt4ilbT08nIL98pKtMgjAcLw2mUuQg(hEdK6axCuuuKS6ynNUmrqauvUasIJNkqGbyLJRv69aNKzFn87)cK((Vf(9LZ(9Wpyc9V4hGZ(el6wPWHxl2qFkWxpE5t5)lfzVEkn76A6VYgdE40JRuHfOtjd3gIjfyroNAxzNjd5U(uVCAsSUyrqPIqsLJ5f6FxXY03H0DaTa8AeA9HYuF4kahAq2OppU0ju7orUdjLEIMpepwEstGm6wLxxVxZ(h4l(7vZ)BM9Tg6zQMxS3N4q9O(Mgrrdl2Jt9UGemGABOpXnzGk)hN99Z(AWa(vZ)syTRFPjknligWY)oSe3Nn)xbl195MWGEZyVxFrZZsO6pavuDzJqTWaQVSoQm)((oJgr8RO05C4UWb3FIo8pfoaM0rSWKnbxbFqizhiahMoPlXta4qOlG(g(seyN5eItpnr0KTtVEoDJCdlLM1EaZNDoblgUbgtRXffkh78uBwaZFizKHUQ3k03BIZ(FFCdnYm(Z(NN9cq()DyPfM9Y5FoOd(gtIytGTinDViVHdPgnSIBAXEvJEHn9cd9r2a0JTYq1)RZFgVGiF)S)aex8la9)FvEgh5b6I0r9rJjEeMbKOAPqj5Vglndyf)muqzIssdaGNnqCT94j(zqvtFspNHgqHSbvxVpHVPf(uQSYlDOdGioqtobOzk1R7aS(OUbqBdqAUCMrA7juddd(uajFaN86ggrCDbZyiE6yikFiwpAgdgrXUJIHVj2UtQubm8pM4dw9mWxRwJD5TmbOKrr(dzzT8pMemKzsylBa69MibCcvm8Q065(wdO)WajlbJBwnXFhe5dMVC2VfIQ87mPjsdaQvZAFbn(k43FhaW3GgoZELrBldGjca1U0XSGaNoiL7tDjHkv0rKHbdD8YqY3FeZKtd)XO5FEgDkSTyxvTyiA6)fqPVW8SgQMwSx)SiCxzn0hzdk2((uH1hbtRmaZzxtHPzjYnxSGVTppa6pmue(eA1bsAblMoGNE8MVG4jfFz4(dyrUMSFfp3WSEKWqQxpQxFZZ9P3SY(ph1OW8EqcZg403ty5h6ZIGeNZqR3ZfsMYDIPiJYwEtpINqg9)8RDj2Eog514gbSEhtZywJHZtYtzQljkGgpoWO7XxBgf3zQjXeee9HoIfoGRA3puZoqgtG2dslmuWo(aONt5Q7fDF51WM7z9BGy38Vz2n2eGlQ3T8jdzEtgyahXnPSF3wlCQlLijr00L5bFoYl0XvOgqZvGbdG8j4nr6twWVE2FpsEWSL)bSi9W8MF18NzItmbMia4I6f9Y()J5oirWcW8XZ0GTWNHtoCddqHOslrQWGXRdKgACUotyry2j2CFo)jHd4lR23P)GW4eCcOiAeP94QcbVVYD(cIVNe9JK2lOWBaM)J(qMv08FcHG)Ei05xdrC(oZHJYcsEj39)Pfj8L4exPfFsxQCLfgwRWr(DLYj50bzYr3MsSlaGMWWq9kcaFMRBbTFpxyM)6U9kaK9yDCDkAmUF0isC7B766q86MbKAGaSxXG0avhAuIzO2Zd8oxYy5tGL84umqpcwKa1irZ1EYcOGwvwJjJeNrdaYBwnUnFAxQxO7KhiT8KBzBSEhpsxbHu)hWNem1cUzr(DXK6SPyoq8tgdMAfEU2Aiwnnej1hhCTLpJg9PhZhlq0tKHVZRXpCA79OHilSwz(oHNMR4Uil4bogw0FiMWobxQeXfwxVnFcSXqaFyLHPxxFAQur8tB)tWITP8cvfuqa)bzQvvpHlIqFWxDYlN9FJXj4tcaRtz(xnT98FjF)p)25)LWKdFvP0d7QTW(e5IzgxNoUIymJejlhokOVSOYluCi8xyYIFdUOz53E2024Khy8Y5)1Z)vZ)Bt98xGLoI3(Razdgl9LWF)9am2LwpxMcnYUw2E8kCpeA7CrbUxP6BVsfEwVs3GachIu11op7SRjYJzF1UxOH)88FURU)ZbsDB8qgOxgOcRtusF4gePRFuCn1nwZ54EkMmTM8SYSyTHZeVGprL5H9Xi4prucKIH4NSOQnD8KBxnpNj0zXIbtDVRJlDTs7JhvwWwK(XFm)PbF8hxJnsAfwH1Vp)qp8qcg2SubBBv(osfwL1mcOxlJ7KYUcz4a2e7mGeQ2EgHPM(Ul65GhpGZFD3LMprK1XDfojkXGy403E(4H2CH6t5iDnjazvFlGgeoyPPGuJCXwDg96uZviQxxSNJ6mafnsVfO7nIgTR4jis4kAhEBy1w0bxxfRWMANma8iqY(E9yR5Ohwu0DnswCoI4uRzZQIIqKXul2bwnmdZDsRTTTfK4AdZkT5)zNZqbPFLT7bEwRHmFCuJYlY4lrmMYVz5IZRUyDztQN1uXSmr9ZQX7f5FlYfsq44kHlX)h(jN4hicm)dkTcO0sX4qagAWAo8JiwZ9B8GFwr9gG3KRSXdvZ7wwVbAJkkM31L91qXhDnecz2IAUrFzXeQ)i)iVLyfvQjl0LgQQxVWfgz(FKD0OXlBs9R2B3I4eYQorOI)xDG5djH0i5zpv2YahB8a1ckr7v8DwjZBhtYzpfSgo6H3B7MND4r7Dw9FA9gnp70g7U)HnRFs9AtB3C)DEq9toBJQvRMkpeIRlNWc0)OoaAzPeBCfdjOBXzjQuPsMetWqa4KeAdBP8CKvhkJWCoIRHYd16gBwTGZMbNG0JehtKlzgE((mHawj59kO4ioziCQlzCa1oEnKPtEsGAXoUVumYfD6O7dLYLvJGI3DD(ygmGjpDbKcJIyU34C99LPGkp9SlPF0R0OifEInOiw2vQK(cRwrCazygfkt0U6Q37lg4GLgnR8gZ2Ti7L8z)0MbP(Uil6Rmo15S4p)(4wBUYOYyYGfz)fpoFyYA7VYeEg16czY)E28D5mbS1Jh4YVf5TS663A8hUq9Gf4qTH)kZLxr33KyzgiVnRMH2k)oi6qr6kJnMdFNjT0TQU8W747B3(bIk7SwjmBNX4(0OY0P8vmGFCkUiEXIQyeNRk20lifIqzPN4VlIVwigNveloDmMpb(YRfg1k1D6PQ1Rb(JXV8KvBUo(YFsH1RM7OSkMN6n0JDHNIDLs0ss(V8B6PU01y6e)bVrIxTIfLmznP9w2WFv8UufXnTtTc4SlL0ovHQsNMH6mkMCeotp5UQDvf7O(ItX7ohw)0Jj(bW6AGmPS4nZDYwmltU5dVFMnBqywOqElRaXjb6IjCrpYh0uIbZHdxCnmlWijyPW8KtxyxZsTAamgKzxfzxXYqnI4jRQtRMavR7lVFRG0DfS0nB2JC3YK75uC28pL5XR84XcqEs2TfCbjJktDK7wpF4YoRBbGgphv25(VXnft(lP(cqHkfIM83xo0)LVq1sf0f17ioh8BxTaiPxo2raRP1n9(lP347SjU25vrsKCyNJhGvGPlkVPsvtV14XhA6LTdrQDEjx)2JKayiwNOd3v8MquCeIRBi1fgUPFAQXtfhKBlejMZTuooDVzdwzKA0dICfij9TclhbKcIRS8r1XRe9WfQo2lrFT3P7xBz0tXXHLjlTdls(YwmTDFAyIwfp)e8KRLjgkEE5LHqZ0uX5tuy8ADth7cTAE7jtszBLvWO147EPt8C3YGtqKPUdwtZiQKizXslDvnj1)TKLYeqD(XiAhwup8q1alo3MFWnFhWmXA(RdRulLM7Dm)y8WHCnppizMcjn1anklyCqlRvTWVl5Yucwvr3HXLHo3RwjtxGtgUjLKxDj5vA8ip54il(TkZHwwBetc4EUgVj)5wqCLuiHrtxw8KNRvb7YPFXAsDTnS4b7q7TQX4oN(4nEs6jRt6r6jisFezsfOitUgh7Z6cir8kZjW2FkwujrfU)f4OIPI8NyKE0p1d1ONJ3LybNvlA0410EpanrWQxTBZEB4(GN6nTvUTwNvREZ670So)9FwHPKxIE1tsEp6fBxU65HmDREJReFHDG)1Cqs7Aj2ACX5Bn3TgFJYsVUuBQJ0sTy)Qf3Rht(l3mJ)soM7PDJIdbCFiaWdT27STRv7OgRebj30OuDuZdrU7)LZANM88CLgz2iRvJ)X75PFoFWXljjI3eXDWY50McWEiZMkVrOUu7cFY4TZ2phgrNEtIVl2sUS2U3rnBE0dnC1FL(gnlKFztTY38x)X8vZv8DGMHBwPofCt70X8Diuht3xu41evoxrsDexLv8B2kZ3cBzVD8UG5B)iFY4wwpk(tzVl0u3GEq4r(v2M2LHNvaZL16EfD)5XV39yJ6qcZ9I3lNRyp8YlRLv9lhJlr8cYeXtphyVT2ennB9)c \ No newline at end of file diff --git a/FreshShit/StinkyDetector/init.lua b/FreshShit/StinkyDetector/init.lua index b221d44..f8b5068 100644 --- a/FreshShit/StinkyDetector/init.lua +++ b/FreshShit/StinkyDetector/init.lua @@ -1,40 +1,153 @@ +---@type Message[] +aura_env.messageQueue = {} + +---@type number +local threatNotifyLevel = aura_env.config.threatNotifyLevel or 5 +local stinkyNotifyGuild = aura_env.config.stinkyNotifyGuild or true +local stinkyNotifyWhisper = aura_env.config.stinkyNotifyWhisper or true +local stinkyNotifyAddonGuild = aura_env.config.stinkyNotifyAddonGuild or true +local stinkyNotifyAddonWhisper = aura_env.config.stinkyNotifyAddonWhisper or true +local killNotifyGuild = aura_env.config.killNotifyGuild or true +local killNotifyWhisper = aura_env.config.killNotifyWhisper or true +local killNotifyAddonGuild = aura_env.config.killNotifyAddonGuild or true +local killNotifyAddonWhisper = aura_env.config.killNotifyAddonWhisper or true + +---@type string[] +local toNotify = { "Succpotato", "Extazyk", "Smokefire", "Smokemantra", "Хихихантер", "Муркот", "Растафаркрай" } +local toNotify = { "Succpotato" } + +---@class Message +---@field message string +---@field to string +---@field channel string +---@field addon boolean +Message = { + ---@param message string + ---@param to string + ---@param channel string + ---@param addon? boolean + ---@return Message + new = function(message, to, channel, addon) + local self = setmetatable({}, { + __index = Message + }) + self.message = message + self.to = to + self.channel = channel + self.addon = addon or false + return self + end, + + ---@param stinky Stinky + ---@return nil + QueueNotifyAddonGuild = function(stinky) + if not stinkyNotifyAddonGuild then return end + local message = Message.new(stinky:FormAddonMessage(), stinky.name, "GUILD", true) + table.insert(aura_env.messageQueue, message) + end, + ---@param stinky Stinky + ---@return nil + QueueNotifyAddonWhisper = function(stinky) + if not stinkyNotifyAddonWhisper then return end + local text = stinky:FormMessage() + for _, to in ipairs(toNotify) do + local message = Message.new(text, to, "WHISPER", true) + table.insert(aura_env.messageQueue, message) + end + end, + + ---@param stinky Stinky + ---@return nil + QueueNotifyGuild = function(stinky) + if not stinkyNotifyGuild then return end + local message = Message.new(stinky:FormMessage(), stinky.name, "GUILD") + table.insert(aura_env.messageQueue, message) + end, + ---@param stinky Stinky + ---@return nil + QueueNotifyWhisper = function(stinky) + if not stinkyNotifyWhisper then return end + local text = stinky:FormMessage() + for _, to in ipairs(toNotify) do + local message = Message.new(text, to, "WHISPER") + table.insert(aura_env.messageQueue, message) + end + end, +} + +---@class Stinky +---@field name string +---@field threat number 1-10 10 being maxima threat +---@field note string|nil +Stinky = { + name = "", + threat = 0, + note = "", + + ---@param name string + ---@param threat number + ---@param note string|nil + ---@return Stinky + new = function(name, threat, note) + local self = setmetatable({}, { + __index = Stinky + }) + self.name = name + self.threat = threat + self.note = note + return self + end, + + ---@param self Stinky + ---@return string + FormMessage = function(self) + return string.format("%s в Оргриммаре!", self.name) + end, + ---@param self Stinky + ---@return string + FormAddonMessage = function(self) + return string.format("%s|%s|%s", self.name, self.threat, self.note) + end, +} + if not WeakAurasSaved.Cyka then WeakAurasSaved.Cyka = {} end if not WeakAurasSaved.Cyka.PlayerFactionCache then WeakAurasSaved.Cyka.PlayerFactionCache = {} end WeakAurasSaved.Cyka.Stinkies = { - ["Redbulka"] = true, - ["Курлык"] = true, - ["Riener"] = true, - ["Unwashed"] = true, - ["Ловилуну"] = true, - ["Фоська"] = true, -- if she comes here to orgrimmar. then she will be with 1 or 2 friends. they can be killed. but it may be difficult - ["Korovadura"] = true, - ["Pizdosorkam"] = true, - ["Неонанируй"] = true, - ["Bunkkeer"] = true, - ["Dewdew"] = true, - ["Empanao"] = true, - ["Стелсон"] = false, -- Apyr - ["Trafik"] = false, -- Has agreed to behave, is french (also horde) - ["Aye"] = true, -- Actually a pretty good player, sadly... Part of DNF, says murkot - ["Paskoo"] = false, -- Really stinky but he's horde... Many false alarms - ["Армагид"] = true, - ["Психопаточка"] = true, - ["Hmor"] = false, - ["Паладийпал"] = true, -- Possibly related to Oakskin - ["Oakskin"] = true, - ["Шпека"] = true, - ["Yunami"] = false, -- He is a loser but he's also horde... So I can't kill him even if I wanted to - ["Joule"] = true, - ["Rattenfenger"] = true, - ["Blessly"] = true, - ["Ramáladni"] = false, -- Does not cause trouble and the guy is a behemoth... It is a lot of effort to remove him - ["Асталабиста"] = true, - ["Srakonyh"] = false, -- Agreed to leave him alone until he kills someone again - ["Залупотряс"] = false, -- Муркот: I understand if one of them killed the newbies. then you did everything right. they seem friendly but I also warned them not to hit the newbies - ["Чмодвенк"] = false, -- Муркот: I understand if one of them killed the newbies. then you did everything right. they seem friendly but I also warned them not to hit the newbies - - ["Zawaz"] = nil, - ["Totleta"] = nil, + ["Redbulka"] = Stinky.new("Redbulka", 5), + ["Курлык"] = Stinky.new("Курлык", 5), + ["Riener"] = Stinky.new("Riener", 5), + ["Unwashed"] = Stinky.new("Unwashed", 5), + ["Ловилуну"] = Stinky.new("Ловилуну", 5), + ["Фоська"] = Stinky.new("Фоська", 5, + "if she comes here to orgrimmar. then she will be with 1 or 2 friends. they can be killed. but it may be difficult"), + ["Korovadura"] = Stinky.new("Korovadura", 5), + ["Pizdosorkam"] = Stinky.new("Pizdosorkam", 3, "Horde"), + ["Неонанируй"] = Stinky.new("Неонанируй", 5), + ["Bunkkeer"] = Stinky.new("Bunkkeer", 5), + ["Dewdew"] = Stinky.new("Dewdew", 4), + ["Психопаточка"] = Stinky.new("Психопаточка", 5), + ["Empanao"] = Stinky.new("Empanao", 3, "Horde"), + ["Стелсон"] = Stinky.new("Стелсон", 1, "Apyr"), + ["Trafik"] = Stinky.new("Trafik", 1, "Has agreed to behave, is french (also horde)"), + ["Aye"] = Stinky.new("Aye", 8, "Actually a pretty good player, sadly... Part of DNF, says murkot"), + ["Paskoo"] = Stinky.new("Paskoo", 2, "Really stinky but he's horde..."), + ["Армагид"] = Stinky.new("Армагид", 3), + ["Паладийпал"] = Stinky.new("Паладийпал", 5, "Possibly related to Oakskin"), + ["Hmor"] = Stinky.new("Hmor", 4, "Horde"), + ["Oakskin"] = Stinky.new("Oakskin", 5), + ["Шпек"] = Stinky.new("Шпек", 5), + ["Yunami"] = Stinky.new("Yunami", 5, "He is a loser but he's also horde... So I can't kill him even if I wanted to"), + ["Joule"] = Stinky.new("Joule", 5), + ["Rattenfenger"] = Stinky.new("Rattenfenger", 8, "Possibly related to DNF, he is a sign of trouble"), + ["Blessly"] = Stinky.new("Blessly", 8, "Possibly related to DNF, he is a sign of trouble"), + ["Ramáladni"] = Stinky.new("Ramáladni", 7, + "Does not cause trouble and the guy is a behemoth... It is a lot of effort to remove him"), + ["Асталабиста"] = Stinky.new("Асталабиста", 5), + ["Srakonyh"] = Stinky.new("Srakonyh", 5, "Agreed to leave him alone until he kills someone again"), + ["Залупотряс"] = Stinky.new("Залупотряс", 2, + "Муркот: I understand if one of them killed the newbies. then you did everything right. they seem friendly but I also warned them not to hit the newbies"), + ["Чмодвенк"] = Stinky.new("Чмодвенк", 5, + "Муркот: I understand if one of them killed the newbies. then you did everything right. they seem friendly but I also warned them not to hit the newbies"), } aura_env.raceFactions = { @@ -52,10 +165,6 @@ aura_env.raceFactions = { ["Worgen"] = "Alliance", } -local toNotify = { "Succpotato", "Extazyk", "Smokefire", "Smokemantra", "Хихихантер", "Муркот", "Растафаркрай" } --- local toNotify = { "Succpotato" } -aura_env.whisperQueue = {} - local killSpamTime = 30 local recentlyKilled = {} aura_env.RegisterKill = function(source, destination, spellName, overkill) @@ -71,11 +180,13 @@ aura_env.RegisterKill = function(source, destination, spellName, overkill) local msg = string.format("%s %s убил %s с помощью %s с переполнением %d", faction, source, destination, spellName, overkill) - for k, v in pairs(toNotify) do - -- SendChatMessage(msg, "WHISPER", nil, v) - table.insert(aura_env.whisperQueue, { to = v, msg = msg }) + + if killNotifyWhisper then + for k, v in pairs(toNotify) do + table.insert(aura_env.messageQueue, Message.new(msg, v, "WHISPER")) + end end - SendChatMessage(msg, "GUILD", "Orcish") + table.insert(aura_env.messageQueue, Message.new(msg, source, "GUILD")) recentlyKilled[source] = GetTime() end @@ -90,9 +201,9 @@ aura_env.StinkyDetected = function(name) local msg = string.format("%s в Оргриммаре!", name) for k, v in pairs(toNotify) do -- SendChatMessage(msg, "WHISPER", nil, v) - table.insert(aura_env.whisperQueue, { to = v, msg = msg }) + table.insert(aura_env.messageQueue, { to = v, msg = msg, channel = "WHISPER" }) end - SendChatMessage(msg, "GUILD", "Orcish") + table.insert(aura_env.messageQueue, { to = name, msg = msg, channel = "GUILD" }) end aura_env.localStinkies[name] = GetTime() end