/
local function SetTranslations(...) |
local L = {} |
for i=1, select("#",...), 2 do |
local k,v = select(i,...) |
L[k] = v |
end |
_G.ABGF_TC = L |
end |
local l = GetLocale() |
if l == "deDE" then |
SetTranslations( "Hexenmeister", "WARLOCK", "Krieger", "WARRIOR", "J\195\164ger", "HUNTER", "Magier", "MAGE", "Priester", "PRIEST", "Druide", "DRUID", "Paladin", "PALADIN", "Schamane", "SHAMAN", "Schurke", "ROGUE", "Todesritter", "DEATHKNIGHT", "Hexenmeisterin", "WARLOCK", "Kriegerin", "WARRIOR", "J\195\164gerin", "HUNTER", "Magierin", "MAGE", "Priesterin", "PRIEST", "Druidin", "DRUID", "Paladin", "PALADIN", "Schamanin", "SHAMAN", "Schurkin", "ROGUE", "Todesritter", "DEATHKNIGHT" ) |
elseif l == "frFR" then |
SetTranslations( "Démoniste", "WARLOCK", "Guerrier", "WARRIOR", "Chasseur", "HUNTER", "Mage", "MAGE", "Prêtre", "PRIEST", "Druide", "DRUID", "Paladin", "PALADIN", "Chaman", "SHAMAN", "Voleur", "ROGUE", "Chevalier de la mort", "DEATHKNIGHT", "Guerrière", "WARRIOR", "Chasseresse", "HUNTER", "Prêtresse", "PRIEST", "Druidesse", "DRUID", "Chamane", "SHAMAN", "Voleuse", "ROGUE" ) |
elseif l == "zhCN" then |
SetTranslations( "æ¯å£«", "WARLOCK", "æ士", "WARRIOR", "ç人", "HUNTER", "æ³å¸", "MAGE", "ç§å¸", "PRIEST", "å¾·é²ä¼", "DRUID", "å£éªå£«", "PALADIN", "è¨æ»¡ç¥å¸", "SHAMAN", "æ½è¡è ", "ROGUE", "æ»äº¡éªå£«", "DEATHKNIGHT", "æ¯å£«", "WARLOCK", "æ士", "WARRIOR", "ç人", "HUNTER", "æ³å¸", "MAGE", "ç§å¸", "PRIEST", "å¾·é²ä¼", "DRUID", "å£éªå£«", "PALADIN", "è¨æ»¡ç¥å¸", "SHAMAN", "æ½è¡è ", "ROGUE", "æ»äº¡éªå£«", "DEATHKNIGHT" ) |
elseif l == "zhTW" then |
SetTranslations( "è¡å£«", "WARLOCK", "æ°å£«", "WARRIOR", "çµäºº", "HUNTER", "æ³å¸«", "MAGE", "ç§å¸«", "PRIEST", "å¾·é¯ä¼", "DRUID", "èé¨å£«", "PALADIN", "è©æ»¿", "SHAMAN", "çè³", "ROGUE", "æ»äº¡é¨å£«", "DEATHKNIGHT", "è¡å£«", "WARLOCK", "æ°å£«", "WARRIOR", "çµäºº", "HUNTER", "æ³å¸«", "MAGE", "ç§å¸«", "PRIEST", "å¾·é¯ä¼", "DRUID", "èé¨å£«", "PALADIN", "è©æ»¿", "SHAMAN", "çè³", "ROGUE", "æ»äº¡é¨å£«", "DEATHKNIGHT" ) |
elseif l == "koKR" then |
SetTranslations( "íë§ë²ì¬", "WARLOCK", "ì ì¬", "WARRIOR", "ì¬ë¥ê¾¼", "HUNTER", "ë§ë²ì¬", "MAGE", "ì¬ì ", "PRIEST", "ë루ì´ë", "DRUID", "ì±ê¸°ì¬", "PALADIN", "주ì ì¬", "SHAMAN", "ëì ", "ROGUE", "죽ìì 기ì¬", "DEATHKNIGHT", "íë§ë²ì¬", "WARLOCK", "ì ì¬", "WARRIOR", "ì¬ë¥ê¾¼", "HUNTER", "ë§ë²ì¬", "MAGE", "ì¬ì ", "PRIEST", "ë루ì´ë", "DRUID", "ì±ê¸°ì¬", "PALADIN", "주ì ì¬", "SHAMAN", "ëì ", "ROGUE", "죽ìì 기ì¬", "DEATHKNIGHT" ) |
elseif l == "esES" then |
SetTranslations( "Brujo", "WARLOCK", "Guerrero", "WARRIOR", "Cazador", "HUNTER", "Mago", "MAGE", "Sacerdote", "PRIEST", "Druida", "DRUID", "Palad\195\173n", "PALADIN", "Cham\195\161n", "SHAMAN", "P\195\173caro", "ROGUE", "Bruja", "WARLOCK", "Guerrera", "WARRIOR", "Cazadora", "HUNTER", "Maga", "MAGE", "Sacerdotisa", "PRIEST", "Druida", "DRUID", "Palad\195\173n", "PALADIN", "Cham\195\161n", "SHAMAN", "P\195\173cara", "ROGUE" ) |
elseif l == "ruRU" then |
SetTranslations( "ЧеÑнокнижник", "WARLOCK", "Ðоин", "WARRIOR", "ÐÑ Ð¾Ñник", "HUNTER", "Ðаг", "MAGE", "ÐÑеÑ", "PRIEST", "ÐÑÑид", "DRUID", "Ðаладин", "PALADIN", "Шаман", "SHAMAN", "Разбойник", "ROGUE", "Ð ÑÑаÑÑ Ð¡Ð¼ÐµÑÑи", "DEATHKNIGHT", "ЧеÑнокнижниÑа", "WARLOCK", "ÐÑ Ð¾ÑниÑа", "HUNTER", "ÐÑиÑа", "PRIEST", "Шаманка", "SHAMAN", "РазбойниÑа", "ROGUE", "Ð ÑÑаÑÑ Ð¡Ð¼ÐµÑÑи", "DEATHKNIGHT" ) |
end |
local defaultConfig = { showGuildNotes = true, showGuildName = true, sortType = "class", sortDESC = false, fontSize=12 } |
local guildEntries, friendEntries = {}, {} |
local format, strfind, GetGuildRosterInfo, GetFriendInfo, RAID_CLASS_COLORS, CLASS_BUTTONS = |
format, strfind, GetGuildRosterInfo, GetFriendInfo, RAID_CLASS_COLORS, CLASS_BUTTONS |
local format, strfind, strupper, GetGuildRosterInfo, GetFriendInfo, RAID_CLASS_COLORS, CLASS_BUTTONS = |
format, strfind, strupper, GetGuildRosterInfo, GetFriendInfo, RAID_CLASS_COLORS, CLASS_BUTTONS |
local L = setmetatable( _G.ABGF_TC or {}, { __index = function(t,k) return strupper(k) end } ) |
local orgReloadUI = ReloadUI |
ReloadUI = function(...) |
config.reloading = true |
friendEntries[1] = new( nil, "Name", "", "Lv", "Zone", "Notes" ) |
end |
online = online + 1 |
friendEntries[online+1] = new( name, status ~= "" and format("%s %s", tostring(status), tostring(name)) or name, class:gsub(" ",""):upper(), level, zone or "Unknown", note and format("[%s]",note) or "-" ) |
friendEntries[online+1] = new( name, status ~= "" and format("%s %s", tostring(status), tostring(name)) or name, class, level, zone or "Unknown", note and format("[%s]",note) or "-" ) |
end |
end |
f.FriendsBlock.text = format(" %d/%d", online, total) |
return fs |
end |
buttons = setmetatable( { }, { __index = function( table, key ) |
local buttons = setmetatable( { }, { __index = function( table, key ) |
local button = CreateFrame( "Button", nil, f ) |
table[key] = button |
button.index = key |
if( key == 0 )then |
button.fontName:SetJustifyV"TOP" |
else |
button.check = button:CreateTexture() |
button.check:SetTexture(key>1 and "Interface\\Buttons\\UI-CheckBox-Check" or "") |
button.check:SetTexCoord(.15,.85,.15,.85) |
button.check:SetWidth(ICON_SIZE) button.check:SetHeight(ICON_SIZE) |
button.check:SetPoint("LEFT",button,"LEFT") |
button.icon = button:CreateTexture() |
button.icon:SetWidth( ICON_SIZE ) button.icon:SetHeight( ICON_SIZE ) |
button.icon:SetPoint( "LEFT", button, "LEFT", ICON_SIZE+TEXT_OFFSET, 0 ) |
button.icon:SetPoint( "LEFT", button, "LEFT" ) |
button.fontName:SetPoint( "LEFT", button.icon, "LEFT", ICON_SIZE+TEXT_OFFSET, 0 ) |
button.fontName:SetPoint( "LEFT", button.icon, "RIGHT", TEXT_OFFSET, 0 ) |
button.fontLevel = CreateFS( key, button, "CENTER", button.fontName ) |
button.fontZone = CreateFS( key, button, "CENTER", button.fontLevel ) |
button.fontNotes = CreateFS( key, button, "CENTER", button.fontZone ) |
return button |
end } ) |
local function SetButtonData( index, name, class, level, zone, notes, rank, isGrouped ) |
local function SetButtonData( index, name, class, level, zone, notes, rank, inGroup, isGrouped ) |
local button = buttons[index] |
button:Show() |
button.fontName:SetText( name or "" ) |
if( class )then |
if( index > 1 )then |
local classIcon = CLASS_BUTTONS[class] |
if( classIcon )then |
button.icon:SetTexture"Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes" |
local offset, left, right, bottom, top = 0.025, unpack( classIcon ) |
button.icon:SetTexCoord( left+offset, right-offset, bottom+offset, top-offset ) |
button.check:SetAlpha(isGrouped and 1 or 0) |
local color = RAID_CLASS_COLORS[class] |
class = isGuild and class or L[class] |
local color = RAID_CLASS_COLORS[class] |
if( color )then |
button.fontName:SetTextColor( color.r, color.g, color.b ) |
else -- friend entry with non english client |
if( inGroup )then |
button.icon:SetTexture(isGrouped and "Interface\\Buttons\\UI-CheckBox-Check" or "") |
button.icon:SetTexCoord(.15,.85,.15,.85) |
else |
local classIcon = CLASS_BUTTONS[class] |
button.icon:SetTexture"Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes" |
local offset, left, right, bottom, top = 0.025, unpack( classIcon ) |
button.icon:SetTexCoord( left+offset, right-offset, bottom+offset, top-offset ) |
end |
else |
button.fontName:SetTextColor( 1,1,0 ) |
button.icon:SetTexture"" |
button.fontName:SetTextColor( 1,1,0 ) |
end |
color = GetDifficultyColor(level) |
button.fontLevel:SetTextColor( color.r, color.g, color.b ) |
local function EditMOTD() |
f:Hide() |
block = nil |
GuildMOTDEditButton:Click() |
end |
local cols, colspace = { "class", "name", "level", "zone", "note", "rank" }, {} |
local cols, colspace = { "class", "name", "level", "zone", "note", "rank" }, { ICON_SIZE } |
local function OnGuildmateClick( self, button ) |
if( not( self and self.unit ) )then return end |
local isGrouped = GetNumRaidMembers()>0 and UnitInRaid or GetNumPartyMembers()>0 and UnitInParty or nil |
for i, entry in ipairs(entries) do |
button, nameW, levelW, zoneW, notesW, rankW = SetButtonData( i, entry[2], entry[3], entry[4], entry[5], entry[6], entry[7], isGrouped and isGrouped(entry[1] or "") ) |
button, nameW, levelW, zoneW, notesW, rankW = SetButtonData( i, entry[2], entry[3], entry[4], entry[5], entry[6], entry[7], isGrouped, isGrouped and entry[1] and isGrouped(entry[1]), isGrouped ) --MOD |
button.unit = entry[1] |
button:SetScript( "OnClick", OnGuildmateClick ) |
if( nameW > nameC )then nameC = nameW end |
if( nameW > nameC )then nameC = nameW end |
if( levelW and levelW>0 )then |
if( levelW > levelC )then levelC = levelW end |
if( zoneW > zoneC )then zoneC = zoneW end |
if( rankW > rankC )then rankC = rankW end |
if( hideNotes )then button.fontNotes:Hide() else button.fontNotes:Show() end |
button.fontRank:SetPoint( "LEFT", hideNotes and button.fontZone or button.fontNotes, "RIGHT", GAP, 0 ) |
if( isGrouped )then button.check:Show() else button.check:Hide() end |
button.icon:SetPoint( "LEFT", button, "LEFT", isGrouped and ICON_SIZE+TEXT_OFFSET or 0, 0 ) |
end |
end |
button.fontNotes:SetWidth(notesC) |
button.fontRank:SetWidth(rankC) |
end |
colspace[1] = isGrouped and ICON_SIZE*2 + TEXT_OFFSET or ICON_SIZE |
colspace[2], colspace[3], colspace[4], colspace[5], colspace[6] = nameC, levelC, zoneC, notesC, rankC |
f:SetWidth( maxWidth + GAP*2 ) |
f:RegisterEvent"FRIENDLIST_UPDATE" |
f:RegisterEvent"CHAT_MSG_SYSTEM" |
RAID_CLASS_COLORS["DEATH KNIGHT"] = RAID_CLASS_COLORS.DEATHKNIGHT |
CLASS_BUTTONS["DEATH KNIGHT"] = CLASS_BUTTONS.DEATHKNIGHT |
ShowFriends() |
if( IsInGuild() )then GuildRoster() else t.guildTimer = 0 end |
f:GuildOnEnter(true) |
## Interface: 30000 |
## Title: |cFFFFB366Ara|r - Guild & Friends |
## Version: r9 |
## Version: r11 |
## Author: Ara |
## Notes: A Data Broker plugin that provides guildmates & friends informations and interactions. |
## SavedVariables: AraBrokerGuildFriendsDB |
## OptionalDeps: Skinner |
## OptionalDeps: SharedMedia, Skinner |
## X-Credits: Tekkub (picoGuild) |
## LoadManagers: AddonLoader |
libs\CallbackHandler-1.0.lua |
libs\LibDataBroker-1.1.lua |
LocalizedClasses.lua |
Ara_Broker_Guild_Friends.lua |