vanilla-wow-addons – Rev 1
?pathlinks?
-- Version 0.31
-- 12.05.2005
-- For updates visit http://www.curse-gaming.com/mod.php?addid=1103
TITAN_FRIENDSX_ID = "FriendsX"
NumFriendsOnline = 0;
NumGuildsOnline = 0;
NumFriends = 0;
NumGuilds = 0;
function TitanPanelFriendsXButton_OnLoad()
this.registry = {
id = TITAN_FRIENDSX_ID,
menuText = FRIENDSX_MENU_TEXT,
buttonTextFunction = "TitanPanelFriendsXButton_GetButtonText",
tooltipTitle = FRIENDSX_TOOLTIP,
tooltipTextFunction = "TitanPanelFriendsXButton_GetTooltipText",
savedVariables = {
ShowLabelText = 1,
FriendsCount = 1,
FriendsShowOnline = 1,
FriendsMarkArea = 1,
GuildCount = 1,
GuildShowOnline = 1,
GuildMarkArea = 1,
}
};
this:RegisterEvent("FRIENDLIST_SHOW");
this:RegisterEvent("FRIENDLIST_UPDATE");
this:RegisterEvent("GUILD_ROSTER_SHOW");
this:RegisterEvent("GUILD_ROSTER_UPDATE");
--this:RegisterEvent("VARIABLES_LOADED");
--this:RegisterEvent("PLAYER_GUILD_UPDATE");
end
function TitanPanelFriendsXButton_OnEnter()
--Sea.IO.print("FriendsXButton_OnEnter Event");
ShowFriends();
end
function TitanPanelFriendsXButton_OnEvent(event)
--TitanPanelButton_UpdateTooltip();
--if (event == "VARIABLES_LOADED") then
-- GuildRoster();
-- Sea.IO.print("VARIABLES_LOADED Event");
-- ShowFriends();
--else
-- Sea.IO.print(event);
TitanPanelButton_UpdateButton(TITAN_FRIENDSX_ID);
--end
end
function TitanPanelFriendsXButton_GetButtonText(id)
local id = TitanUtils_GetButton(id, true);
NumFriends = GetNumFriends();
NumFriendsOnline = 0;
NumGuilds = GetNumGuildMembers();
NumGuildsOnline = 0;
local FriendInSameArea = 0;
local GuildInSameArea = 0;
local buttonRichText = "";
local friend_name, friend_level, friend_class, friend_area, friend_connected
local guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online
local friendIndex
local guildIndex
local CharName = "";
CharName = UnitName("player");
-- get a count of the number of online friends
for friendIndex=1, NumFriends do
friend_name, friend_level, friend_class, friend_area, friend_connected = GetFriendInfo(friendIndex);
if (CharName ~= friend_name) then
if ( friend_connected ) then
NumFriendsOnline = NumFriendsOnline + 1;
end
if (friend_area == GetZoneText()) then
FriendInSameArea = FriendInSameArea + 1;
end
end
end
-- get a count of the number of online guild members
for guildIndex=1, NumGuilds do
guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online = GetGuildRosterInfo(guildIndex);
if (CharName ~= guild_name) then
if ( guild_online ) then
NumGuildsOnline = NumGuildsOnline + 1;
if (guild_zone == GetZoneText()) then
GuildInSameArea = GuildInSameArea + 1;
end
end
end
end
-- Create Button Text depending on options
if ((TitanGetVar(TITAN_FRIENDSX_ID, "FriendsCount")) and (TitanGetVar(TITAN_FRIENDSX_ID, "GuildCount"))) then
--Sea.IO.print("Beide Counts an");
buttonRichText = format(FRIENDSX_BUTTON_TEXT, TitanUtils_GetGreenText(NumFriendsOnline+NumGuildsOnline), TitanUtils_GetHighlightText(NumFriends+NumGuilds), TitanUtils_GetRedText(GuildInSameArea + FriendInSameArea));
elseif ((TitanGetVar(TITAN_FRIENDSX_ID, "FriendsCount")) and (TitanGetVar(TITAN_FRIENDSX_ID, "GuildCount") == nil)) then
buttonRichText = format(FRIENDSX_BUTTON_TEXT, TitanUtils_GetGreenText(NumFriendsOnline), TitanUtils_GetHighlightText(NumFriends), TitanUtils_GetRedText(FriendInSameArea));
--Sea.IO.print("Nur Friend Count an");
elseif ((TitanGetVar(TITAN_FRIENDSX_ID, "FriendsCount") == nil) and (TitanGetVar(TITAN_FRIENDSX_ID, "GuildCount"))) then
--Sea.IO.print("nur gild count an");
buttonRichText = format(FRIENDSX_BUTTON_TEXT, TitanUtils_GetGreenText(NumGuildsOnline), TitanUtils_GetHighlightText(NumGuilds), TitanUtils_GetRedText(GuildInSameArea));
else
buttonRichText = format(FRIENDSX_BUTTON_TEXT, TitanUtils_GetGreenText("-"), TitanUtils_GetHighlightText("-"), TitanUtils_GetRedText("-"));
end
return FRIENDSX_BUTTON_LABEL, buttonRichText;
end
function TitanPanelFriendsXButton_GetTooltipText()
--local NumFriends = GetNumFriends();
--local NumGuilds = GetNumGuildMembers();
local tooltipRichText = "";
local friend_name, friend_level, friend_class, friend_area, friend_connected;
local friendIndex;
local guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online;
local guildIndex;
local CharName = "";
CharName = UnitName("player");
if (TitanGetVar(TITAN_FRIENDSX_ID, "FriendsShowOnline")) then
if (NumFriendsOnline > 0) then
tooltipRichText = tooltipRichText.."\n"..TitanUtils_GetGreenText(FRIENDSX_FRIENDS).."\n";
for friendIndex=1, NumFriends do
friend_name, friend_level, friend_class, friend_area, friend_connected = GetFriendInfo(friendIndex);
if (CharName ~= friend_name) then
if (friend_connected) then
if ((friend_area == GetZoneText()) and (TitanGetVar(TITAN_FRIENDSX_ID, "FriendsMarkArea"))) then
tooltipRichText = tooltipRichText..TitanUtils_GetRedText(friend_name)..TitanUtils_GetHighlightText(" - "..friend_area.." ["..friend_level.." "..friend_class.."]").."\n";
else
tooltipRichText = tooltipRichText..TitanUtils_GetNormalText(friend_name)..TitanUtils_GetHighlightText(" - "..friend_area.." ["..friend_level.." "..friend_class.."]").."\n";
end
end
end
end
end
end
if (TitanGetVar(TITAN_FRIENDSX_ID, "GuildShowOnline")) then
if (NumGuildsOnline > 0) then
tooltipRichText = tooltipRichText.."\n"..TitanUtils_GetGreenText(FRIENDSX_GUILD).."\n";
for guildIndex=1, NumGuilds do
guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online = GetGuildRosterInfo(guildIndex);
if (CharName ~= guild_name) then
if ( (guild_online)) then
if ((guild_zone == GetZoneText()) and (TitanGetVar(TITAN_FRIENDSX_ID, "GuildMarkArea"))) then
tooltipRichText = tooltipRichText..TitanUtils_GetRedText(guild_name)..TitanUtils_GetHighlightText(" - "..guild_zone.." ["..guild_level.." "..guild_class.."]").."\n";
else
tooltipRichText = tooltipRichText..TitanUtils_GetNormalText(guild_name)..TitanUtils_GetHighlightText(" - "..guild_zone.." ["..guild_level.." "..guild_class.."]").."\n";
end
end
end
end
end
end
if (tooltipRichtext == TITAN_FRIENDSX_ID) then
tooltipRichText = tooltipRichText..TitanUtils_GetNormalText(FRIENDSX_NOBODY_ONLINE_TOOLTIP);
else
-- remove the last \n
tooltipRichText = string.sub(tooltipRichText, 1, string.len(tooltipRichText)-1);
end
return tooltipRichText;
end
function Whisper()
-- yes its the same like kragusĀ“ one :) nice job!
if ( not ChatFrameEditBox:IsVisible() ) then
ChatFrame_OpenChat("/w "..this.value.." ");
else
ChatFrameEditBox:SetText("/w "..this.value.." ");
end
end
function invite()
InviteByName(this.value);
end
function TitanPanelRightClickMenu_PrepareFriendsXMenu()
if (IsShiftKeyDown() ) then
-- Creater Wisper menu
local guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online
local friend_name, friend_level, friend_class, friend_area, friend_connected;
local Index = 0;
local CharName = "";
CharName = UnitName("player");
info = {};
info.text = TitanUtils_GetNormalText("Whisper");
info.notClickable = 1;
UIDropDownMenu_AddButton(info);
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_FRIENDS);
info.notClickable = 1;
UIDropDownMenu_AddButton(info);
-- get online friends
for Index=1, NumFriends do
friend_name, friend_level, friend_class, friend_area, friend_connected = GetFriendInfo(Index);
if ( friend_connected and CharName ~= friend_name) then
info = {};
info.text = friend_name;
info.func = Whisper;
info.value = friend_name;
UIDropDownMenu_AddButton(info);
end
end
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_GUILD);
info.notClickable = 1
UIDropDownMenu_AddButton(info);
-- get online guild people
for Index=1, NumGuilds do
guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online = GetGuildRosterInfo(Index);
if ( guild_online and CharName ~= guild_name) then
info = {};
info.text = guild_name;
info.func = Whisper;
info.value = guild_name;
UIDropDownMenu_AddButton(info);
end
end
elseif (IsControlKeyDown() ) then
-- Create invite menu
local guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online
local friend_name, friend_level, friend_class, friend_area, friend_connected;
local Index = 0;
local CharName = "";
CharName = UnitName("player");
info = {};
info.text = TitanUtils_GetNormalText("Invite");
info.notClickable = 1;
UIDropDownMenu_AddButton(info);
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_FRIENDS);
info.notClickable = 1;
UIDropDownMenu_AddButton(info);
-- get online friends
for Index=1, NumFriends do
friend_name, friend_level, friend_class, friend_area, friend_connected = GetFriendInfo(Index);
if ( friend_connected and CharName ~= friend_name) then
info = {};
info.text = friend_name;
info.func = invite;
info.value = friend_name;
UIDropDownMenu_AddButton(info);
end
end
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_GUILD);
info.notClickable = 1
UIDropDownMenu_AddButton(info);
-- get online guild people
for Index=1, NumGuilds do
guild_name, guild_rank, guild_rankIndex, guild_level, guild_class, guild_zone, guild_group, guild_note, guild_officernote, guild_online = GetGuildRosterInfo(Index);
if ( guild_online and CharName ~= guild_name) then
info = {};
info.text = guild_name;
info.func = invite;
info.value = guild_name_name;
UIDropDownMenu_AddButton(info);
end
end
else
local id = "FriendsX";
local info;
TitanPanelRightClickMenu_AddTitle(TitanPlugins[id].menuText);
-- FRIEND OPTIONS
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_FRIENDS_OPTIONS);
info.notClickable = 1
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_FRIENDS_OPTIONS_COUNT;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "FriendsCount");
--TitanPanelSettings.FriendsCount = TitanUtils_Toggle(TitanPanelSettings.FriendsCount);
TitanPanelButton_UpdateButton(TITAN_FRIENDSX_ID);
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "FriendsCount");
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_FRIENDS_OPTIONS_SHOW_ONLINE_TOOLTIP;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "FriendsShowOnline");
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "FriendsShowOnline");
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_FRIENDS_OPTIONS_MARK_AREA;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "FriendsMarkArea");
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "FriendsMarkArea");
UIDropDownMenu_AddButton(info);
-- GUILD OPTIONS
info = {};
info.text = TitanUtils_GetGreenText(FRIENDSX_GUILD_OPTIONS);
info.notClickable = 1;
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_GUILD_OPTIONS_COUNT;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "GuildCount");
TitanPanelButton_UpdateButton(TITAN_FRIENDSX_ID);
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "GuildCount");
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_GUILD_OPTIONS_SHOW_ONLINE_TOOLTIP;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "GuildShowOnline");
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "GuildShowOnline");
UIDropDownMenu_AddButton(info);
info = {};
info.text = FRIENDSX_GUILD_OPTIONS_MARK_AREA;
info.func = function()
TitanToggleVar(TITAN_FRIENDSX_ID, "GuildMarkArea");
end
info.keepShownOnClick = 1;
info.checked = TitanGetVar(TITAN_FRIENDSX_ID, "GuildMarkArea");
UIDropDownMenu_AddButton(info);
TitanPanelRightClickMenu_AddSpacer();
TitanPanelRightClickMenu_AddToggleLabelText(TITAN_FRIENDSX_ID);
TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, id, TITAN_PANEL_MENU_FUNC_HIDE);
end
end
Generated by GNU Enscript 1.6.5.90.