From 1c9120f5e62f19c94ca88dcea74c8042e2cc925e Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 15 Jan 2021 22:53:54 +0100 Subject: [PATCH] Rewrite to use new LibCombatlog --- .gitmodules | 6 ++ Common | 1 + LibCombatlog | 1 + README.md | 22 ++++++ icon2.tga | Bin 0 -> 2674 bytes license.txt | 6 ++ taunted.lua | 186 +++++++++++++++++++++++++++++++++++++++++++++++++ zz_Taunted.toc | 8 +++ 8 files changed, 230 insertions(+) create mode 100644 .gitmodules create mode 160000 Common create mode 160000 LibCombatlog create mode 100644 README.md create mode 100644 icon2.tga create mode 100644 license.txt create mode 100644 taunted.lua create mode 100644 zz_Taunted.toc diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..560fe86 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "Common"] + path = Common + url = https://git.grml.de/rilgamon/Common.git +[submodule "LibCombatlog"] + path = LibCombatlog + url = https://git.grml.de/rilgamon/LibCombatlog.git diff --git a/Common b/Common new file mode 160000 index 0000000..762c59c --- /dev/null +++ b/Common @@ -0,0 +1 @@ +Subproject commit 762c59c6c6abc6ecaa71f3e36bb2c6dd16b8e0ed diff --git a/LibCombatlog b/LibCombatlog new file mode 160000 index 0000000..1d4200b --- /dev/null +++ b/LibCombatlog @@ -0,0 +1 @@ +Subproject commit 1d4200bd9820474cae49c5ef26fb42e3eb621b5b diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a0368b --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# zz_Taunted + +Taunted is a broker to display taunts and failed taunts. +Written mainly to see when I have to go slowly with my hunters pet +But it helps on real tanks, too that fail on a taunt or to see why the +damn dd gets aggro without doing enough damage to justify that :P + +Supported taunts: + +- Warrior Taunt, Challenging Roar +- Death Knight Death Grip, Dark Command +- Paladin Hand of Reckoning, Righteous Defense +- Druid Growl, Challenging Roar +- Hunter Distracting Shot +- Hunter Pet Growl Rank 1-9 +- Warlock Challenging Howl +- Warlock Pet Torment Rank 1-8, Suffering rank 1-8 +- Monk Provokate,Glyph +- Demon Hunter Torment + +#### Links +[Releases](https://git.grml.de/rilgamon/zz_Taunted/releases "Releases") | [Source](https://git.grml.de/rilgamon/zz_Taunted "Source") | [Bugs&Comments](https://git.grml.de/rilgamon/zz_Taunted/issues "Bugs&Comments") | [Donate](https://liberapay.com/bundesloser "Donate") | [Contact](https://mastodon.grml.de/@robin "Contact") \ No newline at end of file diff --git a/icon2.tga b/icon2.tga new file mode 100644 index 0000000000000000000000000000000000000000..190d785013cca9dfa07219f63a9fe95df10a70d6 GIT binary patch literal 2674 zcmYjT2Ut{B79L&cgVa$ltFgjHA~s}&U{s1F263^*HR^^nX4j6cCDI&4LsLOSX)DD- z5mAURz|1go1r!COC`cO^n4t_sRMh!%-s4Nc%y-^<_rCl7|FnDV;c&D$zyGFl=&yN$ z83wR(YHDg6-#?z%Ie%uT;o;%IPP@CiFHKHPPESuulaWXxA|h^@nwpviGH?BuixvRp zJ}xOa`F2TRA?_8GBmP+vZal72rHk|N?CDeZ`uh5?=)W*aby{0nIWuR@)XK`rdYO@% zhif(6s?dfH2&j4oe#J0OSAT?$@VTnG@;PE-V^dk3E-;_!UcY{wxsT7z%6gTMorjAr zM{uTW7{~J7;DC4tKM4o1M>L4tc|&j$H>+yv>X4L_bf4ArJoBl+iWMuEJ0~?YH8&wA zA0E#}@Ke?xwj}rCo11-Db6bgTQ5v`mru+09%ADst#!zh@Q2BaU6@rYGn`+ z5qUx&DZr2UL)e(okL6LlSP(pFO*4Eg%WiuSS;$WXKh}B{e z$*A^r=}K%*uTs^&sK$Z?3(Qzl_QJ~(3%kEdu2ETpcVixDZE;Bs9$yA+PZ@N)yD@X? z1=!izz-gB|7RGkr>j(Yh6oMx0?Q{BJm!`xD(OcXS72?jFJNJLr{w(vrUM4Z=OgXpt zZngxA6NfPOssh$w3YZ0TLDyRbO^*&}dv$_)@)h(w>M(_0jd_tBu(?an6kf+1qN0qk zd!U4EN-wtFuToW%l`?x|GV7$#IEY2U$NST&RbNJRW6?DQY{M0p=GR5g9Z>gZ2lsF( z%%>W`cF6*4a$b$O2X9~zrGV`{CBCM_T%O)f&wa2?=*6_ON zmXcWC>BXYB9$4M%fp=zwD)rvI7c32*@tO%`0VgFT#r2lt5$1`9F^`rx#B{@&D2>m{ zpyAzt37$l?FAI|l^VL*(GSv+KvqjY~lMG=|_5fCs6RapchAdS({z6p7ds8uytBn~mW>BUrf!Pj! z7?E?Q1j+GvumZD!f$3-4G1W_o z*%uW^%M^gm=YKbbs=TDQ!X>W}bI7W%C|TDP3}H$3AdC|GpzbFls&-8NJ{%LqkB7Fl zHjIspF~w;g)G6_`DP44bmcrmv8zzyMl1x6&ilusA*>_1g*gM5MG5>FRasm9 zEv%wqV`gRsJv}`bS-C>(6gik^w2!o4;^Af(9d3f*!Pl6$rvbbpZ3w)br6Q_;F;uT! zRQKA58u7Q{A*?JJ!VeX1uj?g6&0F|4yhFgN zckrowi=%Xk`6LP9>FJ3*d-lM^#Rbc@?}KKD9Na(|^e(i+;9MK@y<5R`Z-ScJOBft( zC95)3p`oE;sd~FQJDiJJVD)Sm8_1dyb?*?_`W_EDM{r*@f*Y+La6?#((2x-PeDWlI z*u4vDcI}7GH97QxWzY}kfF4nCJzAiCvnDZIS)%f$ znDM1B4(fna)Jr@N<>ShgD+m6hGLcH9KMoG`SCVyTX?l&!x+c}_wgD6>KcRK_6Uvky z5#Kg~f@yjaQ&swz1Rus$QKC8EQMH@gWPNZs8J~o4i28m zoJVYJ8a?mJ%F32EHa6a?rSqh$wqBLr`yT1?4+v|1kNuUySV@~;YHA;JVieF0rz#)X z3G?U%LkubH7la`joD=jU}EGaHRN<*jWVEub+doqlL zbW$4J?S)Rf0=iT>|D95 0) then + for i = 1,MAX_RAID_MEMBERS do + if(UnitName("raid"..i) == name) then + return "raid"..i + end + end + else + for i = 1,4 do + if(UnitName("party"..i) == name) then + return "party"..i + end + end + for i = 1,4 do + if(UnitName("partypet"..i) == name) then + return "partypet"..i + end + end + end + if(name == UnitName('pet')) then return 'pet' end + return "player" +end + +local function nameCompare(n1,n2) + local name1,realm1 = UnitName(getUnitId(n1)) + local name2,realm2 = UnitName(getUnitId(n2)) + realm1 = realm1 or realm + realm2 = realm2 or realm + if(name1 == name2 and realm1 == realm2) then return true end + return false +end + +local function OnUpdate() + local spots = 0 + for k in pairs(spammer) do + spots = spots + spammer[k]['count'] + end + addon:OnText(name, spots) +end + +function addon:CLParse(data, prefix, suffix) +-- local event,timestamp, eventtype, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags, spellId,spellName,spellSchool = ... + local dest = data[13] + if(not taunts[dest]) then return end + local name = data[6] + if not (UnitPlayerOrPetInParty(name) or UnitPlayerOrPetInRaid(name) or UnitIsUnit("player",name) or UnitIsUnit("pet",name)) then return end + if(data[3] == "SPELL_CAST_SUCCESS") then + spammer[name] = spammer[name] or { ['count'] = 0, ['lastMessage'] = - spamDelay} + spammer[name]['count'] = spammer[name]['count'] + 1 + if(spammer[name]['count'] > spammer[name]['lastMessage'] + spamDelay) then + spamShow = true + spammer[name]['lastMessage'] = spammer[name]['count'] + end + if nameCompare(name,tank) and addon['db']['profile']['ignoreTanks'] then return end + if(not dontspam[data[13]] or spamShow) then + addon:Print(L["Taunted"](name,data[10],data[14])) + end + spamShow = false + else + addon:Print(L["Taunted Fail"](name,data[10],data[14])) + end + OnUpdate() +end +function addon:RAID_ROSTER_UPDATE(event, ...) + local oldtank = tank + tank = nil + if(GetNumGroupMembers()) then + for i = 1,MAX_RAID_MEMBERS do + local name, _, _, _, _, _, _, _, _, role, _, combatRole = GetRaidRosterInfo(i) + if(name and (role == "maintank" or combatRole == 'TANK')) then + local c,r = UnitName(format("raid%i",i)) + if(r and r~='') then + tank = format("%s-%s",c,r) + else + tank = c + end + break + end + end + else + for i = 1,4 do + local isTank, isHeal, isDPS = UnitGroupRolesAssigned(format("party%i",i)) + if(isTank) then + local c,r = UnitName(format("party%i",i)) + if(r and r~='') then + tank = format("%s-%s",c,r) + else + tank = c + end + break + end + end + end + if(not tank) then + local c,r = UnitName("player") + tank = c + end + if(oldtank and oldtank ~= tank) then + addon:Print(L["New Tank"](tank)) + end +end + +local function tooltip(GameTooltip) + GameTooltip:AddLine(name) + GameTooltip:AddDoubleLine("|cff00ff00"..L["Tank"].."|r","|cffffffff"..tank.."|r") + if(spammer) then + for k in pairs(spammer) do + GameTooltip:AddDoubleLine(k,"|cffffffff"..spammer[k]['count'].."|r") + end + end +end + +function addon:PLAYER_ENTERING_WORLD(event,...) + self:UnregisterEvent(event) + addon['db'] = LibStub("AceDB-3.0"):New(name.."DB") + addon:InitConfig(name, true, { + ['type'] = "data source", + ['OnTooltipShow'] = tooltip, + }) + addon:AddConfigEntry(name, 'toggle', 'ignoreTanks', 'Ignore Tanks', 'Dont show taunts of tanks.', 1) + LibStub("LibCombatLog"):Embed(addon) + addon:RegisterCLEvent("SPELL_CAST_SUCCESS","CLParse") + addon:RegisterCLEvent("SPELL_MISSED","CLParse") + self:RegisterEvent("RAID_ROSTER_UPDATE") + OnUpdate() +end + +addon['frame'] = addon:RegisterFunc({'PLAYER_ENTERING_WORLD'},"OnEvent", function(self, event, ...) + if(type(addon[event]) == 'function') then + addon[event](self, event, ...) + end +end) \ No newline at end of file diff --git a/zz_Taunted.toc b/zz_Taunted.toc new file mode 100644 index 0000000..42a7602 --- /dev/null +++ b/zz_Taunted.toc @@ -0,0 +1,8 @@ +## Interface: 90002 +## X-Repository: https://git.grml.de/rilgamon/zz_Taunted +## X-WoWI-ID: 16973 +## Title: Taunted +## SavedVariables: zz_TauntedDB +Common\common.xml +LibCombatlog\LibCombatlog.lua +taunted.lua