From 1a57bb6cf5c508c51162366eabf18a01b403bffa Mon Sep 17 00:00:00 2001 From: andrew6180 <16847730+andrew6180@users.noreply.github.com> Date: Fri, 24 May 2024 14:13:18 -0700 Subject: [PATCH] Streamer plugin downport --- .../Details_RaidCheck/Details_RaidCheck.lua | 1 + plugins/Details_Streamer/Details_Streamer.lua | 156 +++++++++--------- plugins/Details_Streamer/Details_Streamer.toc | 4 - .../Details_Streamer/Libs/LibStub/LibStub.lua | 51 ------ .../Details_Streamer/Libs/LibStub/LibStub.toc | 13 -- .../Libs/LibStub/tests/test.lua | 41 ----- .../Libs/LibStub/tests/test2.lua | 27 --- .../Libs/LibStub/tests/test3.lua | 14 -- .../Libs/LibStub/tests/test4.lua | 41 ----- plugins/Details_Streamer/embeds.xml | 6 - 10 files changed, 76 insertions(+), 278 deletions(-) delete mode 100644 plugins/Details_Streamer/Libs/LibStub/LibStub.lua delete mode 100644 plugins/Details_Streamer/Libs/LibStub/LibStub.toc delete mode 100644 plugins/Details_Streamer/Libs/LibStub/tests/test.lua delete mode 100644 plugins/Details_Streamer/Libs/LibStub/tests/test2.lua delete mode 100644 plugins/Details_Streamer/Libs/LibStub/tests/test3.lua delete mode 100644 plugins/Details_Streamer/Libs/LibStub/tests/test4.lua delete mode 100644 plugins/Details_Streamer/embeds.xml diff --git a/plugins/Details_RaidCheck/Details_RaidCheck.lua b/plugins/Details_RaidCheck/Details_RaidCheck.lua index 93822a78..e45a8e5b 100644 --- a/plugins/Details_RaidCheck/Details_RaidCheck.lua +++ b/plugins/Details_RaidCheck/Details_RaidCheck.lua @@ -527,6 +527,7 @@ local CreatePluginFrames = function() DetailsRaidCheck:SendMsgToChannel(reportString, "PARTY") end end + end end) local updateRaidCheckFrame = function(self, deltaTime) --~update diff --git a/plugins/Details_Streamer/Details_Streamer.lua b/plugins/Details_Streamer/Details_Streamer.lua index 26f9eb87..27daf160 100644 --- a/plugins/Details_Streamer/Details_Streamer.lua +++ b/plugins/Details_Streamer/Details_Streamer.lua @@ -335,27 +335,31 @@ local function CreatePluginFrames() end function StreamOverlay:UpdateCooldownFrame(square, inCooldown, startTime, endTime, castInfo) - if (castInfo and castInfo.Interrupted and castInfo.InterruptedPct) then - CooldownFrame_SetDisplayAsPercentage(square.cooldown, abs(castInfo.InterruptedPct - 1)) + local _, curDuration = square.cooldown:GetCooldownTimes() + local duration = abs(castInfo.InterruptedPct - 1) + if not square.cooldown:IsPaused() and duration * 1000 ~= curDuration then + CooldownFrame_SetDisplayAsPercentage(square.cooldown, duration) + end --square.interruptedTexture:Show() return + else + square.cooldown:Resume() end - if (endTime and endTime < GetTime()) then + if (not endTime or endTime < GetTime()) then CooldownFrame_Clear(square.cooldown) - square.cooldown:Hide() return end if (inCooldown) then local duration = endTime - startTime - CooldownFrame_Set(square.cooldown, startTime, duration, duration > 0, true) - square.cooldown:Show() - + local curStart, curDuration = square.cooldown:GetCooldownTimes() + if curStart ~= startTime or duration * 1000 ~= curDuration then + CooldownFrame_Set(square.cooldown, startTime, duration, duration > 0, true) + end else CooldownFrame_Clear(square.cooldown) - square.cooldown:Hide() end end @@ -378,8 +382,8 @@ local function CreatePluginFrames() local cooldownFrame = CreateFrame("cooldown", "$parentCooldown", newSquare, "CooldownFrameTemplate, BackdropTemplate") cooldownFrame:SetAllPoints() cooldownFrame:EnableMouse(false) - cooldownFrame:SetHideCountdownNumbers(true) newSquare.cooldown = cooldownFrame + StreamOverlay.squares[#StreamOverlay.squares+1] = newSquare newSquare.in_use = 1 @@ -456,7 +460,6 @@ local function CreatePluginFrames() end FauxScrollFrame_Update(autoscroll, StreamOverlay.total_lines, StreamOverlay.total_lines, 20) - for index = 1, StreamOverlay.total_lines do --> here gets the bar and the table with the information to shown on the bar local data = StreamOverlay.battle_content [index] @@ -539,12 +542,16 @@ local function CreatePluginFrames() if (castinfo.Success) then line.spark:SetVertexColor(1, 1, 1, 0.4) line.spark:SetPoint("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * percent) - 8, 0) + line.statusbar_texture:SetVertexColor(0, 1, 0, 0.4) elseif (castinfo.Interrupted) then line.spark:SetVertexColor(1, 0, 0, 0.4) line.spark:SetPoint("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * percent) - 8, 0) + line.statusbar_texture:SetVertexColor(1, 0, 0, 0.4) + else + line.statusbar_texture:SetVertexColor(unpack(StreamOverlay.db.row_color)) end - + line.in_use = data.CastStart StreamOverlay:RefreshInUse (line) else @@ -562,7 +569,9 @@ local function CreatePluginFrames() --CastStart from the cast_send table.insert (StreamOverlay.battle_content, 1, {icon1, text1, color1, icon2, icon2coords, text2, color2, backgroundcolor, bordercolor, CastID = ID, CastStart = CastStart, startTime = startTime, endTime = endTime}) - table.remove (StreamOverlay.battle_content, StreamOverlay.total_lines+1) + while #StreamOverlay.battle_content > StreamOverlay.total_lines do + table.remove (StreamOverlay.battle_content, StreamOverlay.total_lines+1) + end if (StreamOverlay.db.use_square_mode) then StreamOverlay:UpdateSquares() @@ -1049,9 +1058,9 @@ function StreamOverlay:CastStart (castGUID) else color2 = DefaultColor end - + target = parse_target_name (target) - + StreamOverlay:NewText (spellicon, spellname, color1, icon2, icon2coords, target, color2, backgroundcolor, bordercolor, castGUID, caststart, startTime, endTime) end @@ -1090,7 +1099,6 @@ function StreamOverlay:CastFinished (castid) end target = parse_target_name (target) - StreamOverlay:NewText (spellicon, spellname, nil, icon2, icon2coords, target, color2, backgroundcolor, bordercolor, castid, caststart, GetTime(), GetTime()+1.2) end end @@ -1113,12 +1121,14 @@ eventFrame.track_spell_cast = function() castinfo.Percent = 100 line.statusbar:SetValue (100) line.spark:SetPoint ("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * 100) - 8, 0) + line.statusbar_texture:SetVertexColor(0, 1, 0, 0.4) --line.spark:Hide() elseif (castinfo.Interrupted) then --> has been interrupted castinfo.Done = true line.spark:SetVertexColor (1, 0.7, 0) + line.statusbar_texture:SetVertexColor(1, 0, 0, 0.4) elseif (castinfo.IsChanneled) then --> casting a channeled spell @@ -1143,10 +1153,10 @@ eventFrame.track_spell_cast = function() line.spark:SetVertexColor(1, 1, 1, 1) line.spark:SetPoint("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * percent) - 6, 0) end - + line.statusbar_texture:SetVertexColor(unpack(StreamOverlay.db.row_color)) else --> still casting - local spell, displayName, icon, startTime, endTime, isTradeSkill, castID, interrupt = UnitCastingInfo("player") + local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, castID, interrupt = UnitCastingInfo("player") if (spell) then startTime = startTime / 1000 endTime = endTime / 1000 @@ -1165,6 +1175,7 @@ eventFrame.track_spell_cast = function() line.spark:SetVertexColor(1, 1, 1, 1) line.spark:SetPoint("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * percent) - 6, 0) end + line.statusbar_texture:SetVertexColor(unpack(StreamOverlay.db.row_color)) end else @@ -1174,6 +1185,7 @@ eventFrame.track_spell_cast = function() castinfo.Percent = 100 line.statusbar:SetValue (100) line.spark:SetPoint ("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * 100) - 8, 0) + line.statusbar_texture:SetVertexColor(0, 1, 0, 0.4) --line.spark:Hide() else local startTime = castinfo.CastStart @@ -1194,6 +1206,7 @@ eventFrame.track_spell_cast = function() line.spark:SetVertexColor (1, 1, 1, 1) line.spark:SetPoint ("left", line.statusbar, "left", (line.statusbar:GetWidth() / 100 * percent) - 6, 0) + line.statusbar_texture:SetVertexColor(unpack(StreamOverlay.db.row_color)) end end @@ -1243,7 +1256,7 @@ eventFrame.track_spell_cast = function() else --> still casting - local spell, displayName, icon, startTime, endTime, isTradeSkill, castID, interrupt = UnitCastingInfo ("player") + local spell, rank, displayName, icon, startTime, endTime, isTradeSkill, castID, interrupt = UnitCastingInfo ("player") if (spell) then startTime = startTime / 1000 endTime = endTime / 1000 @@ -1278,7 +1291,7 @@ eventFrame.track_spell_cast = function() elseif (castinfo.Done and line) then if (castinfo.Interrupted and castinfo.InterruptedPct) then - StreamOverlay:UpdateCooldownFrame(line, true, castinfo.CastTimeStart, castinfo.InterruptedTime, castinfo) + StreamOverlay:UpdateCooldownFrame(line, true, castinfo.CastStart, castinfo.InterruptedTime, castinfo) end end end @@ -1297,11 +1310,6 @@ function eventFrame:RegisterMyEvents() eventFrame:RegisterEvent ("UNIT_SPELLCAST_CHANNEL_STOP") eventFrame:RegisterEvent ("UNIT_SPELLCAST_CHANNEL_UPDATE") eventFrame:RegisterEvent ("UNIT_SPELLCAST_STOP") - - if (not DetailsFramework.IsTBCWow() and not DetailsFramework.IsWotLKWow()) then - eventFrame:RegisterEvent ("UNIT_SPELLCAST_INTERRUPTIBLE") - eventFrame:RegisterEvent ("UNIT_SPELLCAST_NOT_INTERRUPTIBLE") - end end function eventFrame:UnregisterMyEvents() @@ -1316,14 +1324,9 @@ function eventFrame:UnregisterMyEvents() eventFrame:UnregisterEvent ("UNIT_SPELLCAST_CHANNEL_STOP") eventFrame:UnregisterEvent ("UNIT_SPELLCAST_CHANNEL_UPDATE") eventFrame:UnregisterEvent ("UNIT_SPELLCAST_STOP") - - if (not DetailsFramework.IsTBCWow() and not DetailsFramework.IsWotLKWow()) then - eventFrame:UnregisterEvent ("UNIT_SPELLCAST_INTERRUPTIBLE") - eventFrame:UnregisterEvent ("UNIT_SPELLCAST_NOT_INTERRUPTIBLE") - end end -local lastspell, lastcastid, lastchannelid, ischanneling, lastspellID +local lastspell, lastcastid, lastchannelid, ischanneling, lastspellID, lastCastSentTime, lastTarget local channelspells = {} local lastChannelSpell = "" @@ -1340,7 +1343,10 @@ APM_FRAME:RegisterEvent ("PLAYER_STOPPED_MOVING") APM_FRAME:SetScript ("OnEvent", function() ACTIONS = ACTIONS + 1 end) - +local GetSpellID = function (spellName, spellRank) + local spellID = tonumber(string.match(GetSpellLink(spellName, spellRank) or "", "Hspell:(%d+)")) + return spellID +end eventFrame:SetScript ("OnEvent", function (self, event, ...) if (event ~= "UNIT_SPELLCAST_SENT" and event ~= "UNIT_SPELLCAST_SUCCEEDED" and ACTIONS_EVENT_TIME [event] ~= GetTime()) then ACTIONS = ACTIONS + 1 @@ -1348,36 +1354,34 @@ eventFrame:SetScript ("OnEvent", function (self, event, ...) end if (event == "UNIT_SPELLCAST_SENT") then - local unitID, target, castGUID, spellID = ... - --local unitID, spell, rank, target, id = ... - local spell = GetSpellInfo (spellID) - + local unitID, spellName, spellRank, target = ... if (unitID == "player") then - CastsTable [castGUID] = {Target = target or "", Id = castGUID, CastStart = GetTime()} - lastChannelSpell = castGUID - lastspell = spell - lastspellID = spellID - lastcastid = castGUID + local spellID = GetSpellID(spellName, spellRank) + if spellID then + lastTarget = target + lastspellID = spellID + lastchannelid = spellID + lastCastSentTime = GetTime() + end end elseif (event == "UNIT_SPELLCAST_START") then - --spell, rank, id, - local unitID, castGUID, spellID = ... - - if (unitID == "player" and CastsTable [castGUID]) then - CastsTable [castGUID].SpellId = spellID - CastsTable [castGUID].HasCastTime = true + local unitID, spellName, spellRank, castGUID = ... + local spellID = GetSpellID(spellName, spellRank) + if (unitID == "player" and lastspellID == spellID) then + CastsTable [castGUID] = {Target = lastTarget or "", Id = castGUID, SpellId = spellID, CastStart = lastCastSentTime, HasCastTime = true} + lastChannelSpell = castGUID + lastspell = spell + lastcastid = castGUID - local name, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible, spellId = UnitCastingInfo("player") + local name, rank, displayName, texture, startTime, endTime, isTradeSkill, castID, notInterruptible, spellId = UnitCastingInfo("player") CastsTable [castGUID].CastTimeStart = startTime / 1000 CastsTable [castGUID].CastTimeEnd = endTime / 1000 - StreamOverlay:CastStart(castGUID) end elseif (event == "UNIT_SPELLCAST_INTERRUPTED") then - --local unitID, spell, rank, id, spellID = ... - local unitID, castGUID, spellID = ... + local unitID, spellName, spellRank, castGUID = ... if (unitID == "player" and CastsTable [castGUID]) then CastsTable [castGUID].Interrupted = true @@ -1386,8 +1390,7 @@ eventFrame:SetScript ("OnEvent", function (self, event, ...) --> channels isn't passing the CastID / cast id for channels is always Zero. elseif (event == "UNIT_SPELLCAST_CHANNEL_STOP") then - --local unitID, spell, rank, id, spellID = ... - local unitID, castGUID, spellID = ... + local unitID, spellName, spellRank, castGUID = ... if (unitID == "player") then castGUID = lastchannelid @@ -1406,10 +1409,10 @@ eventFrame:SetScript ("OnEvent", function (self, event, ...) elseif (event == "UNIT_SPELLCAST_CHANNEL_START") then - local unitID, castGUID, spellID = ... - + local unitID, spellName, spellRank = ... + local spellID = GetSpellID(spellName, spellRank) if (unitID == "player" and (CastsTable [castGUID] or spellID == lastspellID)) then - if (castGUID == "" or not castGUID) then + if (not castGUID) then castGUID = lastcastid end @@ -1441,19 +1444,18 @@ eventFrame:SetScript ("OnEvent", function (self, event, ...) elseif (event == "UNIT_SPELLCAST_SUCCEEDED") then --local unitID, spell, rank, id, spellID = ... - local unitID, castGUID, spellID = ... - local spell = GetSpellInfo (spellID) - - if (unitID == "player" and CastsTable[castGUID] and not channelspells [spell]) then - if (CastsTable[castGUID].HasCastTime and not CastsTable[castGUID].IsChanneled) then - --> a cast (non channeled) just successful finished - CastsTable [castGUID].Success = true - StreamOverlay:CastFinished (castGUID) - - elseif (not CastsTable[castGUID].HasCastTime) then - --> instant cast finished - CastsTable [castGUID].SpellId = spellID - CastsTable [castGUID].Success = true + local unitID, spellName, spellRank, castGUID = ... + local spellID = GetSpellID(spellName, spellRank) + if (unitID == "player" and lastspellID == spellID and not channelspells [spellName]) then + if (CastsTable[castGUID]) then + if (CastsTable[castGUID].HasCastTime and not CastsTable[castGUID].IsChanneled) then + --> a cast (non channeled) just successful finished + CastsTable [castGUID].Success = true + StreamOverlay:CastFinished (castGUID) + end + else + --> instant cast + CastsTable [castGUID] = {Target = lastTarget or "", Id = castGUID, SpellId = spellID, CastStart = lastCastSentTime, HasCastTime = false, Success = true } StreamOverlay:CastFinished (castGUID) end end @@ -1465,16 +1467,15 @@ local format_time = function (v) return "-" .. format ("%.2f", v) end --when the player die, show the events before the death function StreamOverlay.OnDeath (_, token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, death_table, last_cooldown, death_at_combattime, max_health) - if (alvo_serial ~= UnitGUID ("player")) then return end StreamOverlay:ClearAll() - - for i = 1, #death_table do - local ev = death_table [i] - if (ev and type (ev) == "table" and ev[1] and type (ev[1]) == "boolean") then + local lastEvents = death_table[1] + for i = #lastEvents, 1, -1 do + local ev = lastEvents[i] + if (ev and type (ev) == "table" and type(ev[1]) == "boolean") then --> it's a damage local spellid = ev[2] local amount = ev[3] @@ -1525,7 +1526,7 @@ function StreamOverlay.OnDeath (_, token, time, who_serial, who_name, who_flags, --adds the text to the line StreamOverlay:NewText (spellicon, at .. " | " .. damage_color .. StreamOverlay:ToK2 (amount) .. "|r (" .. spellname .. ")", {1, 1, 1, 1}, classIcon, {l, r, t, b}, source, {r=1, g=1, b=1}, {1, 1, 1, 0.6}, {0, 0, 0}, CastInfoIndex, GetTime()) - + break -- :NewText (icon1, text1, color1, icon2, icon2coords, text2, color2, backgroundcolor, bordercolor, ID, CastStart) end end @@ -2435,13 +2436,6 @@ function StreamOverlay:OnEvent (_, event, ...) if (StreamOverlay.db.is_first_run and not Details:GetTutorialCVar ("STREAMER_PLUGIN_FIRSTRUN")) then local show_frame = function() - - if ("Don't Show The Welcome Screen") then - StreamOverlay.db.is_first_run = false - Details:DisablePlugin ("DETAILS_PLUGIN_STREAM_OVERLAY") - return - end - if ((DetailsWelcomeWindow and DetailsWelcomeWindow:IsShown()) or not StreamOverlay.db.is_first_run) then return end diff --git a/plugins/Details_Streamer/Details_Streamer.toc b/plugins/Details_Streamer/Details_Streamer.toc index 9cf4f6c8..81310381 100644 --- a/plugins/Details_Streamer/Details_Streamer.toc +++ b/plugins/Details_Streamer/Details_Streamer.toc @@ -7,8 +7,4 @@ ## X-Wago-ID: VBNB9MGx -#@no-lib-strip@ -embeds.xml -#@end-no-lib-strip@ - Details_Streamer.lua diff --git a/plugins/Details_Streamer/Libs/LibStub/LibStub.lua b/plugins/Details_Streamer/Libs/LibStub/LibStub.lua deleted file mode 100644 index ae1900e6..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/LibStub.lua +++ /dev/null @@ -1,51 +0,0 @@ --- $Id: LibStub.lua 76 2007-09-03 01:50:17Z mikk $ --- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info --- LibStub is hereby placed in the Public Domain --- Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke -local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS! -local LibStub = _G[LIBSTUB_MAJOR] - --- Check to see is this version of the stub is obsolete -if not LibStub or LibStub.minor < LIBSTUB_MINOR then - LibStub = LibStub or {libs = {}, minors = {} } - _G[LIBSTUB_MAJOR] = LibStub - LibStub.minor = LIBSTUB_MINOR - - -- LibStub:NewLibrary(major, minor) - -- major (string) - the major version of the library - -- minor (string or number ) - the minor version of the library - -- - -- returns nil if a newer or same version of the lib is already present - -- returns empty library object or old library object if upgrade is needed - function LibStub:NewLibrary(major, minor) - assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)") - minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.") - - local oldminor = self.minors[major] - if oldminor and oldminor >= minor then return nil end - self.minors[major], self.libs[major] = minor, self.libs[major] or {} - return self.libs[major], oldminor - end - - -- LibStub:GetLibrary(major, [silent]) - -- major (string) - the major version of the library - -- silent (boolean) - if true, library is optional, silently return nil if its not found - -- - -- throws an error if the library can not be found (except silent is set) - -- returns the library object if found - function LibStub:GetLibrary(major, silent) - if not self.libs[major] and not silent then - error(("Cannot find a library instance of %q."):format(tostring(major)), 2) - end - return self.libs[major], self.minors[major] - end - - -- LibStub:IterateLibraries() - -- - -- Returns an iterator for the currently registered libraries - function LibStub:IterateLibraries() - return pairs(self.libs) - end - - setmetatable(LibStub, { __call = LibStub.GetLibrary }) -end diff --git a/plugins/Details_Streamer/Libs/LibStub/LibStub.toc b/plugins/Details_Streamer/Libs/LibStub/LibStub.toc deleted file mode 100644 index b963a952..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/LibStub.toc +++ /dev/null @@ -1,13 +0,0 @@ -## Interface: 40200 -## Title: Lib: LibStub -## Notes: Universal Library Stub -## Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel -## X-Website: http://www.wowace.com/addons/libstub/ -## X-Category: Library -## X-License: Public Domain -## X-Curse-Packaged-Version: r95 -## X-Curse-Project-Name: LibStub -## X-Curse-Project-ID: libstub -## X-Curse-Repository-ID: wow/libstub/mainline - -LibStub.lua diff --git a/plugins/Details_Streamer/Libs/LibStub/tests/test.lua b/plugins/Details_Streamer/Libs/LibStub/tests/test.lua deleted file mode 100644 index 276ddabb..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/tests/test.lua +++ /dev/null @@ -1,41 +0,0 @@ -debugstack = debug.traceback -strmatch = string.match - -loadfile("../LibStub.lua")() - -local lib, oldMinor = LibStub:NewLibrary("Pants", 1) -- make a new thingy -assert(lib) -- should return the library table -assert(not oldMinor) -- should not return the old minor, since it didn't exist - --- the following is to create data and then be able to check if the same data exists after the fact -function lib:MyMethod() -end -local MyMethod = lib.MyMethod -lib.MyTable = {} -local MyTable = lib.MyTable - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", 1) -- try to register a library with the same version, should silently fail -assert(not newLib) -- should not return since out of date - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", 0) -- try to register a library with a previous, should silently fail -assert(not newLib) -- should not return since out of date - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", 2) -- register a new version -assert(newLib) -- library table -assert(rawequal(newLib, lib)) -- should be the same reference as the previous -assert(newOldMinor == 1) -- should return the minor version of the previous version - -assert(rawequal(lib.MyMethod, MyMethod)) -- verify that values were saved -assert(rawequal(lib.MyTable, MyTable)) -- verify that values were saved - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", "Blah 3 Blah") -- register a new version with a string minor version (instead of a number) -assert(newLib) -- library table -assert(newOldMinor == 2) -- previous version was 2 - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", "Blah 4 and please ignore 15 Blah") -- register a new version with a string minor version (instead of a number) -assert(newLib) -assert(newOldMinor == 3) -- previous version was 3 (even though it gave a string) - -local newLib, newOldMinor = LibStub:NewLibrary("Pants", 5) -- register a new library, using a normal number instead of a string -assert(newLib) -assert(newOldMinor == 4) -- previous version was 4 (even though it gave a string) \ No newline at end of file diff --git a/plugins/Details_Streamer/Libs/LibStub/tests/test2.lua b/plugins/Details_Streamer/Libs/LibStub/tests/test2.lua deleted file mode 100644 index eae71720..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/tests/test2.lua +++ /dev/null @@ -1,27 +0,0 @@ -debugstack = debug.traceback -strmatch = string.match - -loadfile("../LibStub.lua")() - -for major, library in LibStub:IterateLibraries() do - -- check that MyLib doesn't exist yet, by iterating through all the libraries - assert(major ~= "MyLib") -end - -assert(not LibStub:GetLibrary("MyLib", true)) -- check that MyLib doesn't exist yet by direct checking -assert(not pcall(LibStub.GetLibrary, LibStub, "MyLib")) -- don't silently fail, thus it should raise an error. -local lib = LibStub:NewLibrary("MyLib", 1) -- create the lib -assert(lib) -- check it exists -assert(rawequal(LibStub:GetLibrary("MyLib"), lib)) -- verify that :GetLibrary("MyLib") properly equals the lib reference - -assert(LibStub:NewLibrary("MyLib", 2)) -- create a new version - -local count=0 -for major, library in LibStub:IterateLibraries() do - -- check that MyLib exists somewhere in the libraries, by iterating through all the libraries - if major == "MyLib" then -- we found it! - count = count +1 - assert(rawequal(library, lib)) -- verify that the references are equal - end -end -assert(count == 1) -- verify that we actually found it, and only once diff --git a/plugins/Details_Streamer/Libs/LibStub/tests/test3.lua b/plugins/Details_Streamer/Libs/LibStub/tests/test3.lua deleted file mode 100644 index 30f7b941..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/tests/test3.lua +++ /dev/null @@ -1,14 +0,0 @@ -debugstack = debug.traceback -strmatch = string.match - -loadfile("../LibStub.lua")() - -local proxy = newproxy() -- non-string - -assert(not pcall(LibStub.NewLibrary, LibStub, proxy, 1)) -- should error, proxy is not a string, it's userdata -local success, ret = pcall(LibStub.GetLibrary, proxy, true) -assert(not success or not ret) -- either error because proxy is not a string or because it's not actually registered. - -assert(not pcall(LibStub.NewLibrary, LibStub, "Something", "No number in here")) -- should error, minor has no string in it. - -assert(not LibStub:GetLibrary("Something", true)) -- shouldn't've created it from the above statement \ No newline at end of file diff --git a/plugins/Details_Streamer/Libs/LibStub/tests/test4.lua b/plugins/Details_Streamer/Libs/LibStub/tests/test4.lua deleted file mode 100644 index 43eb3380..00000000 --- a/plugins/Details_Streamer/Libs/LibStub/tests/test4.lua +++ /dev/null @@ -1,41 +0,0 @@ -debugstack = debug.traceback -strmatch = string.match - -loadfile("../LibStub.lua")() - - --- Pretend like loaded libstub is old and doesn't have :IterateLibraries -assert(LibStub.minor) -LibStub.minor = LibStub.minor - 0.0001 -LibStub.IterateLibraries = nil - -loadfile("../LibStub.lua")() - -assert(type(LibStub.IterateLibraries)=="function") - - --- Now pretend that we're the same version -- :IterateLibraries should NOT be re-created -LibStub.IterateLibraries = 123 - -loadfile("../LibStub.lua")() - -assert(LibStub.IterateLibraries == 123) - - --- Now pretend that a newer version is loaded -- :IterateLibraries should NOT be re-created -LibStub.minor = LibStub.minor + 0.0001 - -loadfile("../LibStub.lua")() - -assert(LibStub.IterateLibraries == 123) - - --- Again with a huge number -LibStub.minor = LibStub.minor + 1234567890 - -loadfile("../LibStub.lua")() - -assert(LibStub.IterateLibraries == 123) - - -print("OK") \ No newline at end of file diff --git a/plugins/Details_Streamer/embeds.xml b/plugins/Details_Streamer/embeds.xml deleted file mode 100644 index 72997e54..00000000 --- a/plugins/Details_Streamer/embeds.xml +++ /dev/null @@ -1,6 +0,0 @@ - - -