updated lib RaidStatus and general bug fixes; ToC Updates

This commit is contained in:
Tercio Jose
2021-07-01 18:46:46 -03:00
parent 2da8f23489
commit 07a60b42ec
15 changed files with 306 additions and 111 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details! Damage Meter
## Notes: Essential tool to impress that chick in your raid.
## SavedVariables: _detalhes_global
+94 -32
View File
@@ -1,6 +1,6 @@
local major = "LibRaidStatus-1.0"
local CONST_LIB_VERSION = 16
local CONST_LIB_VERSION = 17
LIB_RAID_STATUS_CAN_LOAD = false
--declae the library within the LibStub
@@ -27,7 +27,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
local CONST_COMM_GEARINFO_DURABILITY_PREFIX = "R"
local CONST_COMM_PLAYER_DEAD_PREFIX = "D"
local CONST_COMM_PLAYER_ALIVE_PREFIX = "A"
local CONST_COMM_PLAYER_INFO_PREFIX = "P"
local CONST_COMM_PLAYERINFO_PREFIX = "P"
local CONST_COMM_PLAYERINFO_TALENTS_PREFIX = "T"
local CONST_ONE_SECOND = 1.0
local CONST_TWO_SECONDS = 2.0
@@ -117,7 +118,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
end
end
--transform a table index a string dividing values with a comma
--transform a table index into a string dividing values with a comma
--@table: an indexed table with unknown size
function raidStatusLib.PackTable(table)
local tableSize = #table
@@ -251,7 +252,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
[CONST_COMM_GEARINFO_DURABILITY_PREFIX] = {}, --an update of the player gear durability
[CONST_COMM_PLAYER_DEAD_PREFIX] = {}, --player is dead
[CONST_COMM_PLAYER_ALIVE_PREFIX] = {}, --player is alive
[CONST_COMM_PLAYER_INFO_PREFIX] = {}, --info about the player
[CONST_COMM_PLAYERINFO_PREFIX] = {}, --info about the player
[CONST_COMM_PLAYERINFO_TALENTS_PREFIX] = {}, --cooldown info
}
function raidStatusLib.commHandler.RegisterComm(prefix, func)
@@ -366,6 +368,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
"GearUpdate",
"GearDurabilityUpdate",
"PlayerUpdate",
"TalentUpdate",
}
--save build the table to avoid lose registered events on older versions
@@ -539,11 +542,25 @@ LIB_RAID_STATUS_CAN_LOAD = false
end,
["PLAYER_REGEN_DISABLED"] = function(...)
--entered in combat
end,
["PLAYER_REGEN_ENABLED"] = function(...)
--left combat
raidStatusLib.Schedules.NewUniqueTimer(10 + math.random(0, 4), raidStatusLib.gearManager.SendDurability, "gearManager", "sendDurability_Schedule")
end,
["UPDATE_INVENTORY_DURABILITY"] = function(...)
--an item has changed its durability
--do not trigger this event while in combat
if (not InCombatLockdown()) then
raidStatusLib.Schedules.NewUniqueTimer(5 + math.random(0, 4), raidStatusLib.gearManager.SendDurability, "gearManager", "sendDurability_Schedule")
end
end,
["PLAYER_EQUIPMENT_CHANGED"] = function(...)
--player changed an equipment
raidStatusLib.Schedules.NewUniqueTimer(4 + math.random(0, 5), raidStatusLib.gearManager.SendAllGearInfo, "gearManager", "sendAllGearInfo_Schedule")
end,
}
@@ -552,6 +569,8 @@ LIB_RAID_STATUS_CAN_LOAD = false
eventFrame:RegisterEvent("PLAYER_ENTERING_WORLD")
eventFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
eventFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
eventFrame:RegisterEvent("UPDATE_INVENTORY_DURABILITY")
eventFrame:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
--eventFrame:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED")
if (not isTimewalkWoW()) then
@@ -743,12 +762,12 @@ LIB_RAID_STATUS_CAN_LOAD = false
unitCooldownTable[spellId] = spellIdTable
end
function raidStatusLib.cooldownManager.GetCooldownTable()
function raidStatusLib.cooldownManager.GetAllPlayersCooldown()
return raidStatusLib.cooldownManager.playerData
end
--@playerName: name of the player
function raidStatusLib.cooldownManager.GetPlayerCooldownTable(playerName)
function raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
return raidStatusLib.cooldownManager.playerData[playerName]
end
@@ -760,12 +779,13 @@ LIB_RAID_STATUS_CAN_LOAD = false
--get the cooldown time for this spell
local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(spellId)
local playerName = UnitName("player")
local playerCooldownTable = raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
--update the time left
singleCooldownUpdate(playerName, spellId, timeLeft, charges, startTime, duration)
--trigger a public callback
raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, startTime, duration, raidStatusLib.cooldownManager.playerData)
raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, startTime, duration, playerCooldownTable, raidStatusLib.cooldownManager.playerData)
--send to comm
raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges, startTime, duration)
@@ -842,7 +862,7 @@ LIB_RAID_STATUS_CAN_LOAD = false
raidStatusLib.TCopy(unitCooldownTable, cooldownsTable)
--trigger a public callback
raidStatusLib.publicCallback.TriggerCallback("CooldownListUpdate", unitName, raidStatusLib.cooldownManager.playerData)
raidStatusLib.publicCallback.TriggerCallback("CooldownListUpdate", unitName, unitCooldownTable, raidStatusLib.cooldownManager.playerData)
end
--check if a player cooldown is ready or if is in cooldown
@@ -972,7 +992,7 @@ C_Timer.After(0.1, function()
if (UnitInParty(unit) or UnitInRaid(unit)) then
local unitName = UnitName(unit)
local cooldownInfo = allCooldownsFromLib[spellId]
if (cooldownInfo and unitName and not raidStatusLib.cooldownManager.GetPlayerCooldownTable(unitName)) then
if (cooldownInfo and unitName and not raidStatusLib.cooldownManager.GetPlayerCooldowns(unitName)) then
--check for cast_success spam from channel spells
local unitCastCooldown = recentCastedSpells[UnitGUID(unit)]
if (not unitCastCooldown) then
@@ -1009,11 +1029,11 @@ end)
playerData = {},
}
function raidStatusLib.gearManager.GetGearTable()
function raidStatusLib.gearManager.GetAllPlayersGear()
return raidStatusLib.gearManager.playerData
end
function raidStatusLib.gearManager.GetPlayerGearTable(playerName, createNew)
function raidStatusLib.gearManager.GetPlayerGear(playerName, createNew)
local playerGearInfo = raidStatusLib.gearManager.playerData[playerName]
if (not playerGearInfo and createNew) then
playerGearInfo = {
@@ -1090,10 +1110,10 @@ end)
--on receive the durability (sent when the player get a ress)
function raidStatusLib.gearManager.UpdateUnitGearDurability(playerName, durability)
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName)
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGear(playerName)
if (playerGearInfo) then
playerGearInfo.durability = durability
raidStatusLib.publicCallback.TriggerCallback("GearDurabilityUpdate", playerName, durability, raidStatusLib.gearManager.GetGearTable())
raidStatusLib.publicCallback.TriggerCallback("GearDurabilityUpdate", playerName, durability, playerGearInfo, raidStatusLib.gearManager.GetAllPlayersGear())
end
end
@@ -1222,7 +1242,7 @@ end)
--when received the gear update from another player, store it and trigger a callback
function raidStatusLib.gearManager.AddUnitGearInfoList(playerName, itemLevel, durability, weaponEnchant, noEnchantTable, noGemsTable)
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName, true)
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGear(playerName, true)
playerGearInfo.ilevel = itemLevel
playerGearInfo.durability = durability
@@ -1230,7 +1250,7 @@ end)
playerGearInfo.noGems = noGemsTable
playerGearInfo.noEnchants = noEnchantTable
raidStatusLib.publicCallback.TriggerCallback("GearUpdate", playerName, playerGearInfo, raidStatusLib.gearManager.GetGearTable())
raidStatusLib.publicCallback.TriggerCallback("GearUpdate", playerName, playerGearInfo, raidStatusLib.gearManager.GetAllPlayersGear())
end
--triggered when the lib receives a gear information from another player in the raid
@@ -1281,7 +1301,7 @@ end)
--------------------------------------------------------------------------------------------------------------------------------
--> ~player general info
--> ~player general ~info
raidStatusLib.playerInfoManager = {
--structure:
@@ -1289,11 +1309,11 @@ end)
playerData = {},
}
function raidStatusLib.playerInfoManager.GetPlayerInfo()
function raidStatusLib.playerInfoManager.GetAllPlayersInfo()
return raidStatusLib.playerInfoManager.playerData
end
function raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName, createNew)
function raidStatusLib.playerInfoManager.GetPlayerInfo(playerName, createNew)
local playerInfo = raidStatusLib.playerInfoManager.playerData[playerName]
if (not playerInfo and createNew) then
playerInfo = {
@@ -1309,15 +1329,15 @@ end)
end
function raidStatusLib.playerInfoManager.AddPlayerInfo(playerName, specId, renown, covenantId, talentsTableUnpacked, conduitsTableUnpacked)
local playerInfoTable = raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName, true)
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(playerName, true)
playerInfoTable.specId = specId
playerInfoTable.renown = renown
playerInfoTable.covenantId = covenantId
playerInfoTable.talents = talentsTableUnpacked
playerInfoTable.conduits = conduitsTableUnpacked
playerInfo.specId = specId
playerInfo.renown = renown
playerInfo.covenantId = covenantId
playerInfo.talents = talentsTableUnpacked
playerInfo.conduits = conduitsTableUnpacked
raidStatusLib.publicCallback.TriggerCallback("PlayerUpdate", playerName, raidStatusLib.playerInfoManager.playerData[playerName], raidStatusLib.playerInfoManager.GetPlayerInfo())
raidStatusLib.publicCallback.TriggerCallback("PlayerUpdate", playerName, raidStatusLib.playerInfoManager.playerData[playerName], raidStatusLib.playerInfoManager.GetAllPlayersInfo())
end
--triggered when the lib receives a gear information from another player in the raid
@@ -1338,15 +1358,15 @@ end)
--unpack the conduits data as a ipairs table
local conduitsTableUnpacked = raidStatusLib.UnpackTable(data, conduitsTableIndex, false, false, conduitsSize)
--add to the list of player information
--add to the list of players information and also trigger a public callback
raidStatusLib.playerInfoManager.AddPlayerInfo(source, specId, renown, covenantId, talentsTableUnpacked, conduitsTableUnpacked)
end
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYER_INFO_PREFIX, raidStatusLib.playerInfoManager.OnReceivePlayerFullInfo)
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYERINFO_PREFIX, raidStatusLib.playerInfoManager.OnReceivePlayerFullInfo)
function raidStatusLib.playerInfoManager.SendAllPlayerInfo()
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerFullInfo()
local dataToSend = CONST_COMM_PLAYER_INFO_PREFIX .. ","
local dataToSend = CONST_COMM_PLAYERINFO_PREFIX .. ","
dataToSend = dataToSend .. playerInfo[1] .. "," --spec id
dataToSend = dataToSend .. playerInfo[2] .. "," --renown
dataToSend = dataToSend .. playerInfo[3] .. "," --covenantId
@@ -1387,7 +1407,7 @@ function raidStatusLib.playerInfoManager.GetPlayerFullInfo()
local talents = {0, 0, 0, 0, 0, 0, 0}
for talentTier = 1, 7 do
for talentColumn = 1, 3 do
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1, true, "player")
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
if (selected) then
talents[talentTier] = talentId
break
@@ -1471,7 +1491,6 @@ function raidStatusLib.playerInfoManager.GetPlayerFullInfo()
["spellID"] = 0
}
--]=]
end
function raidStatusLib.playerInfoManager.onEnterWorld()
@@ -1479,6 +1498,49 @@ function raidStatusLib.playerInfoManager.onEnterWorld()
end
raidStatusLib.internalCallback.RegisterCallback("onEnterWorld", raidStatusLib.playerInfoManager.onEnterWorld)
--talent update
function raidStatusLib.playerInfoManager.sendTalentUpdate()
--talents
local talentsToSend = {0, 0, 0, 0, 0, 0, 0}
for talentTier = 1, 7 do
for talentColumn = 1, 3 do
local talentId, name, texture, selected, available = GetTalentInfo(talentTier, talentColumn, 1)
if (selected) then
talentsToSend[talentTier] = talentId
break
end
end
end
local dataToSend = CONST_COMM_PLAYERINFO_TALENTS_PREFIX .. ","
local talentsString = raidStatusLib.PackTable(talentsToSend)
dataToSend = dataToSend .. talentsString
--send the data
raidStatusLib.commHandler.SendCommData(dataToSend)
diagnosticComm("SendTalentUpdateData| " .. dataToSend) --debug
end
function raidStatusLib.playerInfoManager.scheduleTalentUpdate()
raidStatusLib.Schedules.NewUniqueTimer(1 + math.random(0, 1), raidStatusLib.playerInfoManager.sendTalentUpdate, "playerInfoManager", "sendTalent_Schedule")
end
raidStatusLib.internalCallback.RegisterCallback("talentUpdate", raidStatusLib.playerInfoManager.scheduleTalentUpdate)
function raidStatusLib.playerInfoManager.OnReceiveTalentsUpdate(data, source)
local talentsTableUnpacked = raidStatusLib.UnpackTable(data, 1, false, false, 7)
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(source)
if (playerInfo) then
playerInfo.talents = talentsTableUnpacked
--trigger public callback event
raidStatusLib.publicCallback.TriggerCallback("TalentUpdate", source, playerInfo, raidStatusLib.playerInfoManager.GetAllPlayersInfo())
end
end
raidStatusLib.commHandler.RegisterComm(CONST_COMM_PLAYERINFO_TALENTS_PREFIX, raidStatusLib.playerInfoManager.OnReceiveTalentsUpdate)
--------------------------------------------------------------------------------------------------------------------------------
--> data
+180 -54
View File
@@ -1,100 +1,154 @@
Raid Status is a library to share the player information while playing in a group or raid.
Install:
Place the library at your addon folder/libs/LibRaidStatus/
Inside LibRaidStatus there's 5 files.
Add <Include file="Libs\LibRaidStatus\lib.xml"/> to your libs.xml located in the root folder of the addon or
<Include file="LibRaidStatus\lib.xml"/> if it is located inside the Libs folder.
Close and open the game client.
Inside your lua file, get the library object, you need to do this in order to grab a reference of the library:
local raidStatusLib = LibStub:GetLibrary("LibRaidStatus-1.0")
With this object, you can start querying the library for information.
Functions:
local playerGearInfo = raidStatusLib.gearManager.GetPlayerGearTable(playerName)
playerGearInfo = {
local allPlayersGear = raidStatusLib.gearManager.GetAllPlayersGear()
allPlayersGear = {
["playerName1"] = playerGear,
["playerName2"] = playerGear,
["playerName3"] = playerGear,
}
local playerGear = raidStatusLib.gearManager.GetPlayerGear(playerName)
playerGear = {
.durability = number
.ilevel = number
.noGems = {socketId}
.noEnchants = {socketId}
.weaponEnchant = number (oils)
}
local playerInformation = raidStatusLib.playerInfoManager.GetPlayerInfoTable(playerName)
playerInformation = {
local allPlayersCooldowns = raidStatusLib.cooldownManager.GetAllPlayersCooldown()
allPlayersCooldowns = {
["playerName1"] = playerCooldows,
["playerName2"] = playerCooldows,
["playerName3"] = playerCooldows,
}
local playerCooldows = raidStatusLib.cooldownManager.GetPlayerCooldowns(playerName)
playerCooldows = {
[cooldownSpellId] = {
[1] = time left (number),
[2] = charges (number),
[3] = start time (number),
[4] = duration (number)
}
}
local allPlayersInfo = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
allPlayersInfo = {
["playerName1"] = playerInfo,
["playerName2"] = playerInfo,
["playerName3"] = playerInfo,
}
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo(playerName)
playerInfo = {
.specId = number
.renown = number,
.covenantId = number,
.talents = {talentId},
.conduits = {spellId},
}
local playerCooldows = raidStatusLib.cooldownManager.GetPlayerCooldownTable(playerName)
playerCooldows = {
[cooldownSpellId] = {
.timeLeft,
.charges
}
}
Callbacks available
Callbacks:
===================================================================================================================================
"CooldownListUpdate": triggers when the lib received a list of cooldowns from another player in the group.
===================================================================================================================================
function MyAddonObject.OnReceiveCooldownListUpdate(unitName, cooldownTable)
function MyAddonObject.OnReceiveCooldownListUpdate(unitName, playerCooldows, allPlayersCooldowns)
--foreach player in the cooldown table
for unitName, playerCooldownTable in pairs(cooldownTable) do
for spellId, cooldownInfoTable in pairs(playerCooldownTable) do
--if timeLeft is zero, the spell is ready
for unitName, playerCooldows in pairs(allPlayersCooldowns) do
for spellId, cooldownInfoTable in pairs(playerCooldows) do
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
local timeLeft = cooldownInfoTable[1]
--in some cases the spell is on cooldown but there's a charge to use
local charges = cooldownInfoTable[2]
--cooldown start time
local startTime = cooldownInfoTable[3]
--cooldown duration, e.g. 180 for 3 minutes cooldown
local totalDuration = cooldownInfoTable[4]
end
end
--get the cooldowns for the unit which got the cooldown update
local unitCooldownTable = cooldownTable[unitName]
for spellId, cooldownInfoTable in pairs(unitCooldownTable) do
--if timeLeft is zero, the spell is ready
local timeLeft = cooldownInfoTable[1]
--in some cases the spell is on cooldown but there's a charge to use
local charges = cooldownInfoTable[2]
local playerCooldows = allPlayersCooldowns[unitName]
for spellId, cooldownInfoTable in pairs(playerCooldows) do
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
local timeLeft = cooldownInfoTable[1]
--in some cases the spell is on cooldown but there's a charge to use
local charges = cooldownInfoTable[2]
--cooldown start time
local startTime = cooldownInfoTable[3]
--cooldown duration, e.g. 180 for 3 minutes cooldown
local totalDuration = cooldownInfoTable[4]
end
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownListUpdate", "OnReceiveCooldownListUpdate")
===================================================================================================================================
"CooldownUpdate": triggered when any unit in the group used a cooldown or the timeleft got an update
===================================================================================================================================
function MyAddonObject.OnReceiveCooldownUpdate(unitName, spellId, cooldownTimeLeft, charges, playerCooldownTable)
local unitCooldowns = cooldownTable[unitName]
local cooldownTimeLeft2 = unitCooldowns[spellId]
print("is iqual:", cooldownTimeLeft == cooldownTimeLeft2)
function MyAddonObject.OnReceiveCooldownUpdate(unitName, spellId, cooldownTimeLeft, charges, startTime, totalDuration, playerCooldows, allPlayersCooldowns)
local unitCooldowns = allPlayersCooldowns[unitName] --is the same as using just 'playerCooldows' variable
--get the cooldowns for the unit which got the cooldown update
for spellId, cooldownInfoTable in pairs(playerCooldownTable) do
--if timeLeft is zero, the spell is ready
local timeLeft = cooldownInfoTable[1]
--in some cases the spell is on cooldown but there's a charge to use
local charges = cooldownInfoTable[2]
for spellId, cooldownInfoTable in pairs(playerCooldows) do
--time left for the cooldown be ready to use, if time left is zero, the spell is ready
local timeLeft = cooldownInfoTable[1]
--in some cases the spell is on cooldown but there's a charge to use
local charges = cooldownInfoTable[2]
--cooldown start time
local startTime = cooldownInfoTable[3]
--cooldown duration, e.g. 180 for 3 minutes cooldown
local totalDuration = cooldownInfoTable[4]
end
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownUpdate", "OnReceiveCooldownUpdate")
===================================================================================================================================
"CooldownListWiped": when the list of cooldowns get a wipe, usually when the player leave the group
===================================================================================================================================
function MyAddonObject.OnCooldownListWipe(cooldownTable)
print ("is nil:", next(cooldownTable))
function MyAddonObject.OnCooldownListWipe(allPlayersCooldowns)
--print ("is nil:", next(allPlayersCooldowns))
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "CooldownListWiped", "OnCooldownListWipe")
"GearDurabilityUpdate": when a player in the group revives, the gear durability is sent
function MyAddonObject.OnGearDurabilityUpdate(playerName, durability, gearTable)
print(playerName .. " durability is now " .. durability)
end
raidStatusLib.RegisterCallback(MyAddonObject, "GearDurabilityUpdate", "OnGearDurabilityUpdate")
===================================================================================================================================
"GearUpdate": when received an update from a player with all information about the gear
===================================================================================================================================
function MyAddonObject.OnGearUpdate(playerName, playerGearInfo, gearTable)
local itemLevelNumber = playerGearInfo.ilevel
local durabilityNumber = playerGearInfo.durability
function MyAddonObject.OnGearUpdate(playerName, playerGear, allPlayersGear)
local itemLevelNumber = playerGear.ilevel
local durabilityNumber = playerGear.durability
--hasWeaponEnchant is 1 have enchant or 0 is don't
local hasWeaponEnchantNumber = playerGearInfo.weaponEnchant
local noEnchantTable = playerGearInfo.noEnchants
local noGemsTable = playerGearInfo.noGems
local hasWeaponEnchantNumber = playerGear.weaponEnchant
local noEnchantTable = playerGear.noEnchants
local noGemsTable = playerGear.noGems
for index, slotIdWithoutEnchant in ipairs (noEnchantTable) do
end
@@ -102,12 +156,84 @@ function MyAddonObject.OnGearUpdate(playerName, playerGearInfo, gearTable)
for index, slotIdWithEmptyGemSocket in ipairs (noGemsTable) do
end
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "GearUpdate", "OnGearUpdate")
===================================================================================================================================
"GearDurabilityUpdate": when the gear durability of a player in the group changes
===================================================================================================================================
"GearListWiped": when the list of gear get a wipe, usually when the player leave the group
function MyAddonObject.OnGearListWiped(gearTable)
print ("is nil:", next(gearTable))
function MyAddonObject.OnGearDurabilityUpdate(playerName, durability, playerGear, allPlayersGear)
--print(playerName .. " durability is now " .. durability)
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "GearDurabilityUpdate", "OnGearDurabilityUpdate")
===================================================================================================================================
"GearListWiped": when the list of gear get a wipe, usually when the player leave the group
===================================================================================================================================
function MyAddonObject.OnGearListWiped(allPlayersGear)
--print ("is nil:", next(allPlayersGear))
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "GearListWiped", "OnGearListWiped")
===================================================================================================================================
"PlayerUpdate": received a player information about its spec, talents, etc...
===================================================================================================================================
function MyAddonObject.OnPlayerUpdate(playerName, playerInfo, allPlayersInfo)
for unitName, playerInfo in pairs(allPlayersInfo) do
local specId = playerInfo.specId
local renown = playerInfo.renown
local covenantId = playerInfo.covenantId
local talents = playerInfo.talents
local conduits = playerInfo.conduits
end
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "PlayerUpdate", "OnPlayerUpdate")
===================================================================================================================================
"TalentsUpdate": when a unit changed a talent
===================================================================================================================================
function MyAddonObject.OnTalentUpdate(playerName, talents, playerInfo, allPlayersInfo)
for i = 1, 7 do
local talentId = talents[i]
local talentID, name, texture, selected, available = GetTalentInfoByID(talentId)
print(name)
end
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "TalentUpdate", "OnTalentUpdate")
===================================================================================================================================
"OnPlayerDeath": when a player dies
===================================================================================================================================
function MyAddonObject.OnPlayerDeath(playerName)
print(playerName .. " died.")
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "OnPlayerDeath", "OnPlayerDeath")
===================================================================================================================================
"OnPlayerRess": when a player revives
===================================================================================================================================
function MyAddonObject.OnPlayerRess(playerName)
print(playerName .. " is alive.")
end
--registering the callback:
raidStatusLib.RegisterCallback(MyAddonObject, "OnPlayerRess", "OnPlayerRess")
+3 -3
View File
@@ -6,9 +6,9 @@
local version, build, date, tocversion = GetBuildInfo()
_detalhes.build_counter = 8637
_detalhes.alpha_build_counter = 8637 --if this is higher than the regular counter, use it instead
_detalhes.bcc_counter = 23
_detalhes.build_counter = 8697
_detalhes.alpha_build_counter = 8697 --if this is higher than the regular counter, use it instead
_detalhes.bcc_counter = 24
_detalhes.dont_open_news = true
_detalhes.game_version = version
_detalhes.userversion = version .. _detalhes.build_counter
+3 -3
View File
@@ -128,12 +128,12 @@ function Details.CooldownTracking.ProcessUnitCooldowns(unitId, statusBarFrameId,
return
end
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo()
local allPlayersInfo = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
local allCooldownsFromLib = LIB_RAID_STATUS_COOLDOWNS_BY_SPEC
local cooldownsEnabled = Details.ocd_tracker.cooldowns
local unitName = UnitName(unitId)
local thisPlayerInfo = playerInfo[unitName]
local thisPlayerInfo = allPlayersInfo[unitName]
local GUID = UnitGUID(unitId)
local _, unitClassEng, classId = UnitClass(unitId)
local unitSpec = (thisPlayerInfo and thisPlayerInfo.specId) or (Details:GetSpecFromSerial(GUID)) or 0
@@ -261,7 +261,7 @@ function Details.CooldownTracking.RefreshCooldowns()
--local cache saved with the character savedVariables
local cooldownCache = screenPanel.cooldownCache
local cooldownStatus = raidStatusLib.cooldownManager.GetCooldownTable()
local cooldownStatus = raidStatusLib.cooldownManager.GetAllPlayersCooldown()
local cooldownIndex = 1
for unitName, allPlayerCooldowns in pairs(cooldownStatus) do
+5 -3
View File
@@ -2163,10 +2163,12 @@ local icon_frame_on_enter = function (self)
_detalhes:AddTooltipHeaderStatusbar()
local talent_string = ""
if (talents) then
if (talents and not DetailsFramework.IsTBCWow()) then
for i = 1, #talents do
--local talentID, name, texture, selected, available = GetTalentInfoByID (talents [i])
--talent_string = talent_string .. " |T" .. texture .. ":" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t"
local talentID, name, texture, selected, available = GetTalentInfoByID(talents [i])
if (texture) then
talent_string = talent_string .. " |T" .. texture .. ":" .. 24 .. ":" .. 24 ..":0:0:64:64:4:60:4:60|t"
end
end
end
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Storage
## Notes: Stores information for Details! Damage Meter
## DefaultState: Enabled
@@ -1480,7 +1480,8 @@ function EncounterDetails:OpenAndRefresh (_, segment)
local jaFoi = {}
for id, tabela in _pairs (habilidades_usadas) do
local spellname = GetSpellInfo (tabela [4])
local spellname = Details.GetSpellInfo(tabela [4])
if (not jaFoi [spellname]) then
tabela [5] = spellname
tabela_em_ordem [#tabela_em_ordem+1] = tabela
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Encounter Breakdown (plugin)
## Notes: Show detailed information about a boss encounter. Also provide damage per phase, graphic charts, easy weakauras creation.
## RequiredDeps: Details
@@ -67,7 +67,7 @@ end
tinsert (UISpecialFrames, "Details_RaidCheck")
DetailsRaidCheck:SetPluginDescription (Loc ["STRING_RAIDCHECK_PLUGIN_DESC"])
local version = "v2.0"
local version = "v3.0.1"
local debugmode = false
--local debugmode = true
@@ -380,8 +380,9 @@ end
data = dataInOrder
local raidStatusLib = LibStub:GetLibrary("LibRaidStatus-1.0")
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo()
local gearInfo = raidStatusLib.gearManager.GetGearTable()
--get the information of all players
local playersInfoData = raidStatusLib.playerInfoManager.GetAllPlayersInfo()
local playersGearData = raidStatusLib.gearManager.GetAllPlayersGear()
local libRaidStatus = 0
@@ -393,7 +394,7 @@ end
local line = self:GetLine (i)
if (line) then
local thisPlayerInfo = playerInfo[playerTable.UnitNameRealm]
local thisPlayerInfo = playersInfoData[playerTable.UnitNameRealm]
if (thisPlayerInfo) then
local playerCovenantId = thisPlayerInfo.covenantId
if (playerCovenantId > 0) then
@@ -407,7 +408,7 @@ end
end
--repair status
local thisPlayerGearInfo = gearInfo[playerTable.UnitNameRealm]
local thisPlayerGearInfo = playersGearData[playerTable.UnitNameRealm]
if (thisPlayerGearInfo) then
line.RepairStatus:SetText(thisPlayerGearInfo.durability .. "%")
else
@@ -615,6 +616,7 @@ end
end)
local update_panel = function (self, elapsed)
show_panel.NextUpdate = show_panel.NextUpdate - elapsed
if (show_panel.NextUpdate > 0) then
@@ -684,9 +686,11 @@ end
local talentsTable = _detalhes:GetTalents (unitSerial)
unitClassID = ((unitClassID + 128) ^ 4) + tonumber (string.byte (unitName, 1) .. "" .. string.byte (unitName, 2))
local unitNameWithRealm = GetUnitName(unitID, true)
tinsert (PlayerData, {unitName, unitClassID,
Name = unitName,
UnitNameRealm = unitNameWithRealm,
Class = unitClass,
Serial = unitSerial,
Role = unitRole,
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Raid Check (plugin)
## Notes: Show talents and item level for all members in your group, also shows food and flask state.
## RequiredDeps: Details
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Streamer (plugin)
## Notes: Show which spells you are casting, viewers can see what are you doing and follow your steps.
## RequiredDeps: Details
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Tiny Threat (plugin)
## Notes: Threat meter plugin, show threat for group members in the window. Select it from the Plugin menu in the Orange Cogwheel.
## RequiredDeps: Details
@@ -1,4 +1,4 @@
## Interface: 90005
## Interface: 90100
## Title: Details!: Vanguard (plugin)
## Notes: Show the health and debuffs for tanks in your group.
## SavedVariablesPerCharacter: _detalhes_databaseVanguard
+2 -2
View File
@@ -533,7 +533,7 @@ function Details:StartMeUp() --I'll never stop!
end)
end
if (DetailsFramework.IsTBCWow()) then
if (DetailsFramework.IsTBCWow() and not _G.CONFIG_OPTION_DONT_MOVE_BATTLEGROUND_MINIMAP_ICON_ON_ERROR) then
--remover isso em versões mais atualizadas
if (_detalhes.bcc_counter == 18 or _detalhes.bcc_counter == 19) then
@@ -564,7 +564,7 @@ function Details:StartMeUp() --I'll never stop!
taintWarning:Show()
taintWarning:SetPoint ("topleft", StaticPopup1, "bottomleft", 0, -10)
if (MiniMapBattlefieldFrame:IsShown())then
if (MiniMapBattlefieldFrame:IsShown() and not Details.DontMoveMininapIconOnBattlegroundError)then
if (not originalPosition) then
local a = {}