You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
509 lines
16 KiB
509 lines
16 KiB
|
5 years ago
|
local SLE, T, E, L, V, P, G = unpack(select(2, ...))
|
||
|
|
local DT = E.DataTexts
|
||
|
|
local LibQTip = LibStub('LibQTip-1.0')
|
||
|
|
local DT_myrealm = gsub(E.myrealm,"[%s%-]","")
|
||
|
|
|
||
|
|
-- GLOBALS: unpack, select
|
||
|
|
local _G = _G
|
||
|
|
local format = format
|
||
|
|
local UnitInRaid, UnitInParty = UnitInRaid, UnitInParty
|
||
|
|
local IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown = IsShiftKeyDown, IsControlKeyDown, IsAltKeyDown
|
||
|
|
local StaticPopup_Show = StaticPopup_Show
|
||
|
|
--[[ Might use to mimic ElvUI rep bar in tooltip
|
||
|
|
local GetGuildFactionInfo = GetGuildFactionInfo
|
||
|
|
local COMBAT_FACTION_CHANGE = COMBAT_FACTION_CHANGE
|
||
|
|
local standingString = E:RGBToHex(ttsubh.r, ttsubh.g, ttsubh.b).."%s:|r |cFFFFFFFF%s/%s (%s%%)"
|
||
|
|
--]]
|
||
|
|
--local RequestInviteFromUnit = RequestInviteFromUnit --Might use for feature later on to make shortcut to request an invite
|
||
|
|
|
||
|
|
local LoadAddOn = LoadAddOn
|
||
|
|
local GUILD = GUILD
|
||
|
|
local GUILD_MOTD = GUILD_MOTD
|
||
|
|
local REMOTE_CHAT = REMOTE_CHAT
|
||
|
|
local C_GuildInfo_GuildRoster = C_GuildInfo.GuildRoster
|
||
|
|
local tthead, ttsubh, ttoff = {r=0.4, g=0.78, b=1}, {r=0.75, g=0.9, b=1}, {r=.3,g=1,b=.3}
|
||
|
|
local activezone, inactivezone = {r=0.3, g=1.0, b=0.3}, {r=0.65, g=0.65, b=0.65}
|
||
|
|
local displayString = ""
|
||
|
|
local displayTotalsString = ""
|
||
|
|
local noGuildString = ""
|
||
|
|
local guildInfoString = "%s"
|
||
|
|
local guildInfoString2 = GUILD..": %d/%d"
|
||
|
|
local nameString = "|cff%02x%02x%02x%s|r"
|
||
|
|
local onoteString = "|cff%02x%02x%02x[%s]|r"
|
||
|
|
local guildTable, guildMotD, lastPanel = {}, ""
|
||
|
|
local tooltip
|
||
|
|
local LDB_ANCHOR
|
||
|
|
local GROUP_CHECKMARK = "|TInterface\\Buttons\\UI-CheckBox-Check:0|t"
|
||
|
|
local AWAY_ICON = "|TInterface\\FriendsFrame\\StatusIcon-Away:18|t"
|
||
|
|
local BUSY_ICON = "|TInterface\\FriendsFrame\\StatusIcon-DnD:18|t"
|
||
|
|
local MOBILE_ICON = "|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:18|t"
|
||
|
|
local MINIMIZE = "|TInterface\\BUTTONS\\UI-PlusButton-Up:0|t"
|
||
|
|
local OnEnter
|
||
|
|
|
||
|
|
--[[ Might look into adding these from ElvUI, unsure yet
|
||
|
|
local mobilestatus = {
|
||
|
|
[0] = "|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat:14:14:0:0:16:16:0:16:0:16:73:177:73|t",
|
||
|
|
[1] = "|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat-AwayMobile:14:14:0:0:16:16:0:16:0:16|t",
|
||
|
|
[2] = "|TInterface\\ChatFrame\\UI-ChatIcon-ArmoryChat-BusyMobile:14:14:0:0:16:16:0:16:0:16|t",
|
||
|
|
}--]]
|
||
|
|
|
||
|
|
-- Setup the Title Font. 14
|
||
|
|
local ttTitleFont = CreateFont("ttTitleFont")
|
||
|
|
ttTitleFont:SetTextColor(1,0.823529,0)
|
||
|
|
|
||
|
|
-- Setup the Header Font. 12
|
||
|
|
local ttHeaderFont = CreateFont("ttHeaderFont")
|
||
|
|
ttHeaderFont:SetTextColor(0.4,0.78,1)
|
||
|
|
|
||
|
|
-- Setup the Regular Font. 12
|
||
|
|
local ttRegFont = CreateFont("ttRegFont")
|
||
|
|
ttRegFont:SetTextColor(1,0.823529,0)
|
||
|
|
|
||
|
|
local list_sort = {
|
||
|
|
TOONNAME = function(a, b)
|
||
|
|
if not a.name or not b.name then return false end
|
||
|
|
return a.name < b.name
|
||
|
|
end,
|
||
|
|
LEVEL = function(a, b)
|
||
|
|
if not a.level or not b.level then
|
||
|
|
return false
|
||
|
|
elseif a.level < b.level then
|
||
|
|
return true
|
||
|
|
elseif a.level > b.level then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
RANKINDEX = function(a, b)
|
||
|
|
if not a.rankIndex or not b.rankIndex then
|
||
|
|
return false
|
||
|
|
elseif a.rankIndex > b.rankIndex then
|
||
|
|
return true
|
||
|
|
elseif a.rankIndex < b.rankIndex then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
ZONENAME = function(a, b)
|
||
|
|
if not a.zone or not b.zone then
|
||
|
|
return false
|
||
|
|
elseif a.zone < b.zone then
|
||
|
|
return true
|
||
|
|
elseif a.zone > b.zone then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
revTOONNAME = function(a, b)
|
||
|
|
if a.name or not b.name then return false end
|
||
|
|
return a.name > b.name
|
||
|
|
end,
|
||
|
|
revLEVEL = function(a, b)
|
||
|
|
if not a.level or not b.level then
|
||
|
|
return false
|
||
|
|
elseif a.level > b.level then
|
||
|
|
return true
|
||
|
|
elseif a.level < b.level then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
revRANKINDEX = function(a, b)
|
||
|
|
if not a.rankIndex or not b.rankIndex then
|
||
|
|
return false
|
||
|
|
elseif a.rankIndex < b.rankIndex then
|
||
|
|
return true
|
||
|
|
elseif a.rankIndex > b.rankIndex then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
revZONENAME = function(a, b)
|
||
|
|
if not a.zone or not b.zone then
|
||
|
|
return false
|
||
|
|
elseif a.zone > b.zone then
|
||
|
|
return true
|
||
|
|
elseif a.zone < b.zone then
|
||
|
|
return false
|
||
|
|
else -- TOONNAME
|
||
|
|
return a.name < b.name
|
||
|
|
end
|
||
|
|
end
|
||
|
|
}
|
||
|
|
|
||
|
|
local function nameShorten(name)
|
||
|
|
local shortName, realmName = strsplit("-", name)
|
||
|
|
realmName = gsub(realmName,"[%s%-]","")
|
||
|
|
|
||
|
|
return shortName, realmName
|
||
|
|
end
|
||
|
|
|
||
|
|
local function inGroup(name)
|
||
|
|
local shortName, realmName = nameShorten(name)
|
||
|
|
|
||
|
|
if DT_myrealm == realmName then name = shortName end
|
||
|
|
if GetNumSubgroupMembers() > 0 and UnitInParty(name) then
|
||
|
|
return true
|
||
|
|
elseif GetNumGroupMembers() > 0 and UnitInRaid(name) then
|
||
|
|
return true
|
||
|
|
end
|
||
|
|
|
||
|
|
return false
|
||
|
|
end
|
||
|
|
|
||
|
|
local function onServer(name)
|
||
|
|
local shortName, realmName = nameShorten(name)
|
||
|
|
if DT_myrealm == realmName then
|
||
|
|
return shortName
|
||
|
|
else
|
||
|
|
return name
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function nametoindex(name)
|
||
|
|
local nameFromRoster
|
||
|
|
|
||
|
|
for i = 1, GetNumGuildMembers() do
|
||
|
|
nameFromRoster = GetGuildRosterInfo(i)
|
||
|
|
|
||
|
|
if name == nameFromRoster then
|
||
|
|
return i
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function ColoredLevel(level)
|
||
|
|
if level ~= "" then
|
||
|
|
local color = GetQuestDifficultyColor(level)
|
||
|
|
return format("|cff%02x%02x%02x%d|r", color.r * 255, color.g * 255, color.b * 255, level)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function Entry_OnMouseUp(_, fullName, button)
|
||
|
|
if button == "LeftButton" then
|
||
|
|
if IsControlKeyDown() then
|
||
|
|
C_PartyInfo.InviteUnit(fullName) --Invite Player
|
||
|
|
return
|
||
|
|
end
|
||
|
|
if IsShiftKeyDown() then
|
||
|
|
SetItemRef("player:"..fullName, "|Hplayer:"..fullName.."|h["..fullName.."|h", "LeftButton") --Who Player
|
||
|
|
return
|
||
|
|
end
|
||
|
|
|
||
|
|
SetItemRef( "player:"..fullName, format("|Hplayer:%1$s|h[%1$s]|h", fullName), "LeftButton" ) --Whisper Player
|
||
|
|
elseif button == "RightButton" then
|
||
|
|
if IsControlKeyDown() then
|
||
|
|
if C_GuildInfo.CanEditOfficerNote() then
|
||
|
|
SetGuildRosterSelection(nametoindex(fullName))
|
||
|
|
StaticPopup_Show("SET_GUILDOFFICERNOTE") --Set Officer Note
|
||
|
|
end
|
||
|
|
return
|
||
|
|
end
|
||
|
|
if IsShiftKeyDown() then
|
||
|
|
|
||
|
|
end
|
||
|
|
|
||
|
|
if (fullName == E.mynameRealm:gsub(' ','')) or CanEditPublicNote() then
|
||
|
|
SetGuildRosterSelection(nametoindex(fullName))
|
||
|
|
StaticPopup_Show("SET_GUILDPLAYERNOTE") --Set Public Guild Note
|
||
|
|
return
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function HideOnMouseUp(cell, section)
|
||
|
|
E.db.sle.dt.guild[section] = not E.db.sle.dt.guild[section]
|
||
|
|
OnEnter(LDB_ANCHOR)
|
||
|
|
end
|
||
|
|
|
||
|
|
local function SetGuildSort(cell, sortsection)
|
||
|
|
if E.db.sle.dt.guild["sortGuild"] == sortsection then
|
||
|
|
E.db.sle.dt.guild["sortGuild"] = "rev" .. sortsection
|
||
|
|
else
|
||
|
|
E.db.sle.dt.guild["sortGuild"] = sortsection
|
||
|
|
end
|
||
|
|
OnEnter(LDB_ANCHOR)
|
||
|
|
end
|
||
|
|
|
||
|
|
local function BuildGuildTable()
|
||
|
|
wipe(guildTable)
|
||
|
|
local statusInfo
|
||
|
|
local totalMembers = GetNumGuildMembers()
|
||
|
|
for i = 1, totalMembers do
|
||
|
|
local name, rank, rankIndex, level, _, zone, note, officerNote, connected, memberstatus, className, _, _, isMobile, _, _, guid = GetGuildRosterInfo(i)
|
||
|
|
if not name then return end
|
||
|
|
|
||
|
|
if memberstatus == 1 then
|
||
|
|
statusInfo = AWAY_ICON
|
||
|
|
elseif memberstatus == 2 then
|
||
|
|
statusInfo = BUSY_ICON
|
||
|
|
elseif memberstatus == 0 then
|
||
|
|
statusInfo = ''
|
||
|
|
end
|
||
|
|
|
||
|
|
if isMobile then
|
||
|
|
statusInfo = MOBILE_ICON
|
||
|
|
--zone = REMOTE_CHAT
|
||
|
|
end
|
||
|
|
|
||
|
|
--local statusInfo = isMobile and mobilestatus[memberstatus] or onlinestatus[memberstatus]
|
||
|
|
zone = (isMobile and not connected) and REMOTE_CHAT or zone
|
||
|
|
|
||
|
|
if connected or isMobile then
|
||
|
|
guildTable[#guildTable + 1] = {
|
||
|
|
name = name, --1
|
||
|
|
rank = rank, --2
|
||
|
|
level = level, --3
|
||
|
|
zone = zone, --4
|
||
|
|
note = note, --5
|
||
|
|
officerNote = officerNote, --6
|
||
|
|
online = connected, --7
|
||
|
|
status = statusInfo, --8
|
||
|
|
class = className, --9
|
||
|
|
rankIndex = rankIndex, --10
|
||
|
|
isMobile = isMobile, --11
|
||
|
|
guid = guid --12
|
||
|
|
}
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function UpdateGuildMessage()
|
||
|
|
guildMotD = GetGuildRosterMOTD()
|
||
|
|
end
|
||
|
|
|
||
|
|
local resendRequest = false
|
||
|
|
local eventHandlers = {
|
||
|
|
["PLAYER_GUILD_UPDATE"] = C_GuildInfo_GuildRoster,
|
||
|
|
["CHAT_MSG_SYSTEM"] = function(_, arg1)
|
||
|
|
if FRIEND_ONLINE ~= nil and arg1 and strfind(arg1, FRIEND_ONLINE) then
|
||
|
|
resendRequest = true
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
-- when we enter the world and guildframe is not available then
|
||
|
|
-- load guild frame, update guild message and guild xp
|
||
|
|
["PLAYER_ENTERING_WORLD"] = function()
|
||
|
|
if not _G.GuildFrame and IsInGuild() then
|
||
|
|
LoadAddOn("Blizzard_GuildUI")
|
||
|
|
C_GuildInfo_GuildRoster()
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
-- Guild Roster updated, so rebuild the guild table
|
||
|
|
["GUILD_ROSTER_UPDATE"] = function(self)
|
||
|
|
if(resendRequest) then
|
||
|
|
resendRequest = false
|
||
|
|
return C_GuildInfo_GuildRoster()
|
||
|
|
else
|
||
|
|
BuildGuildTable()
|
||
|
|
UpdateGuildMessage()
|
||
|
|
if GetMouseFocus() == self then
|
||
|
|
self:GetScript("OnEnter")(self, nil, true)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end,
|
||
|
|
-- our guild message of the day changed
|
||
|
|
["GUILD_MOTD"] = function (self, arg1)
|
||
|
|
guildMotD = arg1
|
||
|
|
end,
|
||
|
|
}
|
||
|
|
|
||
|
|
local function OnEvent(self, event, ...)
|
||
|
|
lastPanel = self
|
||
|
|
|
||
|
|
if IsInGuild() then
|
||
|
|
-- eventHandlers[event](self, ...)
|
||
|
|
local func = eventHandlers[event]
|
||
|
|
if func then func(self, ...) end
|
||
|
|
|
||
|
|
local totalMembers = GetNumGuildMembers()
|
||
|
|
local textStyle = E.db.sle.dt.guild.textStyle == "Default" and GUILD..": " or E.db.sle.dt.guild.textStyle == "NoText" and "" or E.db.sle.dt.guild.textStyle == "Icon" and "|TInterface\\ICONS\\Achievement_Reputation_01:12|t: " or ""
|
||
|
|
if E.db.sle.dt.guild.totals then
|
||
|
|
self.text:SetFormattedText(displayTotalsString, textStyle, #guildTable, totalMembers)
|
||
|
|
else
|
||
|
|
self.text:SetFormattedText(displayString, textStyle, #guildTable)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
self.text:SetText(noGuildString)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function OnClick(self, button)
|
||
|
|
if button == "LeftButton" then
|
||
|
|
ToggleGuildFrame(1)
|
||
|
|
end
|
||
|
|
|
||
|
|
if button == "RightButton" then
|
||
|
|
E:ToggleOptionsUI()
|
||
|
|
E.Libs["AceConfigDialog"]:SelectGroup("ElvUI", "sle", "modules", "datatext", "sldatatext", "slguild")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function OnEnter(self, _, noUpdate)
|
||
|
|
if not IsInGuild() then return end
|
||
|
|
if E.db.sle.dt.guild.combat and InCombatLockdown() then return end
|
||
|
|
local hexColor = E:RGBToHex(unpack(E.media.rgbvaluecolor))
|
||
|
|
|
||
|
|
LDB_ANCHOR = self
|
||
|
|
|
||
|
|
if LibQTip:IsAcquired("ShadowLightGuild") then
|
||
|
|
tooltip:Clear()
|
||
|
|
else
|
||
|
|
tooltip = LibQTip:Acquire("ShadowLightGuild", 8, "RIGHT", "RIGHT", "LEFT", "LEFT", "CENTER", "CENTER", "RIGHT")
|
||
|
|
|
||
|
|
ttHeaderFont:SetFont(GameTooltipHeaderText:GetFont())
|
||
|
|
ttRegFont:SetFont(GameTooltipText:GetFont())
|
||
|
|
tooltip:SetHeaderFont(ttHeaderFont)
|
||
|
|
tooltip:SetFont(ttRegFont)
|
||
|
|
|
||
|
|
tooltip:SmartAnchorTo(self)
|
||
|
|
tooltip:SetAutoHideDelay(E.db.sle.dt.guild.tooltipAutohide, self)
|
||
|
|
tooltip:SetScript("OnShow", function(ttskinself) ttskinself:SetTemplate('Transparent') end)
|
||
|
|
end
|
||
|
|
|
||
|
|
local line = tooltip:AddLine()
|
||
|
|
if not E.db.sle.dt.guild.hide_titleline then
|
||
|
|
ttTitleFont:SetFont(GameTooltipText:GetFont())
|
||
|
|
tooltip:SetCell(line, 1, "Shadow & Light Guild", ttTitleFont, "CENTER", 0)
|
||
|
|
tooltip:AddLine()
|
||
|
|
end
|
||
|
|
|
||
|
|
local guildName, guildRank = GetGuildInfo('player')
|
||
|
|
local total, _, online = GetNumGuildMembers()
|
||
|
|
if #guildTable == 0 then BuildGuildTable() end
|
||
|
|
sort(guildTable, list_sort[E.db.sle.dt.guild["sortGuild"]])
|
||
|
|
|
||
|
|
if guildName and guildRank then
|
||
|
|
--Displays guild name
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 1, format(guildInfoString, guildName), ttHeaderFont, "LEFT", 4)
|
||
|
|
tooltip:SetCell(line, 5, format(guildInfoString2, online, total), ttHeaderFont, "RIGHT", 4)
|
||
|
|
|
||
|
|
--Displays guild rank
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 1, guildRank)
|
||
|
|
tooltip:AddLine(" ")
|
||
|
|
end
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.hide_gmotd then
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
if not E.db.sle.dt.guild.minimize_gmotd then
|
||
|
|
tooltip:SetCell(line, 1, "|cffffffff" .. _G.CHAT_GUILD_MOTD_SEND .. "|r", "LEFT", 3)
|
||
|
|
else
|
||
|
|
tooltip:SetCell(line, 1, "|cffffffff".. MINIMIZE .. _G.CHAT_GUILD_MOTD_SEND .. "|r", "LEFT", 3)
|
||
|
|
end
|
||
|
|
tooltip:SetCellScript(line, 1, "OnMouseUp", HideOnMouseUp, "minimize_gmotd")
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.minimize_gmotd then
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 1, "|cff00ff00"..GetGuildRosterMOTD().."|r", "LEFT", 0, nil, nil, nil, 100)
|
||
|
|
end
|
||
|
|
|
||
|
|
tooltip:AddLine(" ")
|
||
|
|
end
|
||
|
|
|
||
|
|
--Don't plan on using the hold shift on mouseover but i can use the function to sort the guild by rank or name most likely
|
||
|
|
--SortGuildTable(IsShiftKeyDown())
|
||
|
|
--[[ Maybe play with this after the rewrite
|
||
|
|
local _, _, standingID, barMin, barMax, barValue = GetGuildFactionInfo()
|
||
|
|
if standingID ~= 8 then -- Not Max Rep
|
||
|
|
--barMax = barMax - barMin
|
||
|
|
--barValue = barValue - barMin
|
||
|
|
--DT.tooltip:AddLine(format(standingString, COMBAT_FACTION_CHANGE, E:ShortValue(barValue), E:ShortValue(barMax), ceil((barValue / barMax) * 100)))
|
||
|
|
end
|
||
|
|
--]]
|
||
|
|
|
||
|
|
line = tooltip:AddHeader()
|
||
|
|
line = tooltip:SetCell(line, 1, " ")
|
||
|
|
tooltip:SetCellScript(line, 1, "OnMouseUp", SetGuildSort, "LEVEL")
|
||
|
|
line = tooltip:SetCell(line, 3, _G.NAME)
|
||
|
|
tooltip:SetCellScript(line, 3, "OnMouseUp", SetGuildSort, "TOONNAME")
|
||
|
|
line = tooltip:SetCell(line, 5, _G.ZONE)
|
||
|
|
tooltip:SetCellScript(line, 5, "OnMouseUp", SetGuildSort, "ZONENAME")
|
||
|
|
line = tooltip:SetCell(line, 6, _G.RANK)
|
||
|
|
tooltip:SetCellScript(line, 6, "OnMouseUp", SetGuildSort, "RANKINDEX")
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.hide_guild_onotes then
|
||
|
|
line = tooltip:SetCell(line, 7, _G.NOTE_COLON)
|
||
|
|
else
|
||
|
|
line = tooltip:SetCell(line, 7, MINIMIZE .. _G.NOTE_COLON)
|
||
|
|
end
|
||
|
|
|
||
|
|
tooltip:SetCellScript(line, 7, "OnMouseUp", HideOnMouseUp, "hide_guild_onotes")
|
||
|
|
tooltip:AddSeparator()
|
||
|
|
|
||
|
|
for _, info in ipairs(guildTable) do
|
||
|
|
local classc = (_G.CUSTOM_CLASS_COLORS and _G.CUSTOM_CLASS_COLORS[info.class]) or _G.RAID_CLASS_COLORS[info.class]
|
||
|
|
local onoteColor = E.db.sle.dt.guild.onoteColor
|
||
|
|
local noteColor = E.db.sle.dt.guild.noteColor
|
||
|
|
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
line = tooltip:SetCell(line, 1, ColoredLevel(info.level))
|
||
|
|
line = tooltip:SetCell(line, 2, info.status)
|
||
|
|
line = tooltip:SetCell(line, 3, format(nameString, classc.r*255,classc.g*255,classc.b*255, onServer(info.name)) .. (inGroup(info.name) and GROUP_CHECKMARK or ""))
|
||
|
|
line = tooltip:SetCell(line, 5, info.zone or "???")
|
||
|
|
line = tooltip:SetCell(line, 6, info.rank)
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.hide_guild_onotes then
|
||
|
|
line = tooltip:SetCell(line, 7, format(nameString, noteColor.r*255, noteColor.g*255, noteColor.b*255, info.note or ""))
|
||
|
|
if (info.officerNote and info.officerNote ~= "") then
|
||
|
|
-- line = tooltip:SetCell(line, 7, info.note)
|
||
|
|
line = tooltip:SetCell(line, 8, format(onoteString, onoteColor.r*255, onoteColor.g*255, onoteColor.b*255, info.officerNote or ""))
|
||
|
|
-- line = tooltip:SetCell(line, 8, "[" .. info.officerNote .. "]")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
tooltip:SetLineScript(line, "OnMouseUp", Entry_OnMouseUp, info.name)
|
||
|
|
end
|
||
|
|
tooltip:AddLine(" ")
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.hide_hintline then
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
if not E.db.sle.dt.guild.minimize_hintline then
|
||
|
|
tooltip:SetCell(line, 1, "Hint:", "LEFT", 3)
|
||
|
|
else
|
||
|
|
tooltip:SetCell(line, 1, MINIMIZE .. "Hint:", "LEFT", 3)
|
||
|
|
end
|
||
|
|
tooltip:SetCellScript(line, 1, "OnMouseUp", HideOnMouseUp, "minimize_hintline")
|
||
|
|
|
||
|
|
if not E.db.sle.dt.guild.minimize_hintline then
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 2, L["%sLeft Click|r a person's line to whisper them."]:format(hexColor), "LEFT", 3)
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 2, L["%sShift+Left Click|r a person's line to perform a lookup."]:format(hexColor), "LEFT", 3)
|
||
|
|
tooltip:SetCell(line, 5, L["%sShift+Right Click|r a line to edit public note."]:format(hexColor), "LEFT", 3)
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 2, L["%sCtrl+Left Click|r a person's line to invite them."]:format(hexColor), "LEFT", 3)
|
||
|
|
tooltip:SetCell(line, 5, L["%sCtrl+Right Click|r a line to edit officer note."]:format(hexColor), "LEFT", 3)
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
line = tooltip:AddLine()
|
||
|
|
tooltip:SetCell(line, 2, L["%sLeft Click|r datatext panel to open guild list."]:format(hexColor), "LEFT", 3)
|
||
|
|
tooltip:SetCell(line, 5, L["%sRight Click|r datatext panel to customize."]:format(hexColor), "LEFT", 3)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
tooltip:UpdateScrolling()
|
||
|
|
tooltip:Show()
|
||
|
|
|
||
|
|
if not noUpdate then
|
||
|
|
C_GuildInfo.GuildRoster()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function ValueColorUpdate(hex)
|
||
|
|
displayString = strjoin("", "%s", hex, "%d|r")
|
||
|
|
displayTotalsString = strjoin("", "%s", hex, "%d/%d|r")
|
||
|
|
noGuildString = hex..L["No Guild"]
|
||
|
|
|
||
|
|
if lastPanel ~= nil then
|
||
|
|
OnEvent(lastPanel, 'ELVUI_COLOR_UPDATE')
|
||
|
|
end
|
||
|
|
end
|
||
|
|
E.valueColorUpdateFuncs[ValueColorUpdate] = true
|
||
|
|
|
||
|
|
DT:RegisterDatatext('S&L Guild', 'S&L', {'CHAT_MSG_SYSTEM', "GUILD_ROSTER_UPDATE", "PLAYER_GUILD_UPDATE", "GUILD_MOTD"}, OnEvent, nil, OnClick, OnEnter)
|