Index: LibHealComm-3.0.lua =================================================================== --- LibHealComm-3.0.lua (revision 42) +++ LibHealComm-3.0.lua (working copy) @@ -5,6 +5,7 @@ if not lib then return end local playerName = UnitName('player'); +local playerRealm = GetRealmName(); local playerClass = select(2, UnitClass('player')); local isHealer = (playerClass == "PRIEST") or (playerClass == "SHAMAN") or (playerClass == "DRUID") or (playerClass == "PALADIN"); @@ -151,6 +152,40 @@ end end +local function extractRealm(name) + return name:match("^[^%-]+%-(.+)$"); +end + +local function fixRealm(name, defaultRealm) + if defaultRealm == playerRealm or defaultRealm == "" then + defaultRealm = nil; + end + + local targetName, targetRealm = name:match("^([^%-]+)%-(.*)$"); + + targetName = targetName or name; + + if defaultRealm and ( not targetRealm or targetRealm == "" ) then + targetRealm = defaultRealm; + end + + if targetRealm == playerRealm or targetRealm == "" then + targetRealm = nil; + end + + if targetRealm then + return targetName .. "-" .. targetRealm; + else + return targetName; + end +end + +local function fixRealmTable(nameTable, defaultRealm) + for k, targetName in pairs(nameTable) do + nameTable[k] = fixRealm(targetName, defaultRealm); + end +end + local function commSend(contents, distribution, target) SendAddonMessage("HealComm", contents, distribution or (InBattlegroundOrArena and "BATTLEGROUND" or "RAID"), target); end @@ -1210,6 +1245,8 @@ local endTime = select(6, UnitCastingInfo(sender)); if (endTime) then + local senderRealm = extractRealm(sender); + targetName = fixRealm(targetName, senderRealm); endTime = endTime / 1000; entryUpdate(sender, targetName, healSize, endTime); self.Callbacks:Fire("HealComm_DirectHealStart", sender, healSize, endTime, targetName); @@ -1231,6 +1268,8 @@ local endTime = select(6, UnitCastingInfo(sender)); if (endTime) then + local senderRealm = extractRealm(sender); + fixRealmTable(targetNames, senderRealm); endTime = endTime / 1000; tinsert(targetNames, 1, sender); entryUpdate(sender, targetNames, healSize, endTime);