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.
105 lines
2.4 KiB
105 lines
2.4 KiB
local _;
|
|
|
|
VUHDO_BUDDY_NAME_MODEL = { };
|
|
VUHDO_SELECTED_COMBO_BUDDY = "";
|
|
VUHDO_NONE_SELECTED_BUDDY = "Enter Player Name";
|
|
|
|
|
|
--
|
|
local function VUHDO_addBuddyNameToComboModel(aName)
|
|
if (VUHDO_strempty(aName) or aName == VUHDO_PLAYER_NAME) then
|
|
return;
|
|
end
|
|
|
|
for _, tInfo in pairs(VUHDO_BUDDY_NAME_MODEL) do
|
|
if (tInfo[2] == aName) then
|
|
return;
|
|
end
|
|
end
|
|
|
|
tinsert(VUHDO_BUDDY_NAME_MODEL, { aName, aName } );
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_initBuddyNameModel()
|
|
table.wipe(VUHDO_BUDDY_NAME_MODEL);
|
|
|
|
-- Target
|
|
if (UnitIsFriend("player", "target") and UnitIsPlayer("target")) then
|
|
VUHDO_addBuddyNameToComboModel(UnitName("target"));
|
|
end
|
|
|
|
-- Raid/Party
|
|
for tUnit, tInfo in pairs(VUHDO_RAID) do
|
|
if (not tInfo["isPet"] and tInfo["connected"] and UnitIsPlayer(tUnit)) then
|
|
VUHDO_addBuddyNameToComboModel(tInfo["name"]);
|
|
end
|
|
end
|
|
|
|
-- Friends
|
|
local tNumFriends = C_FriendList.GetNumFriends();
|
|
local tFriendInfo;
|
|
for tCnt = 1, tNumFriends do
|
|
tFriendInfo = C_FriendList.GetFriendInfoByIndex(tCnt);
|
|
|
|
if (tFriendInfo.connected) then
|
|
VUHDO_addBuddyNameToComboModel(tFriendInfo.name);
|
|
end
|
|
end
|
|
|
|
-- Guild
|
|
tNumFriends = GetNumGuildMembers();
|
|
for tCnt = 1, tNumFriends do
|
|
tName, _, _, _, _, _, _, _, tIsOnline = GetGuildRosterInfo(tCnt);
|
|
if (tIsOnline) then
|
|
VUHDO_addBuddyNameToComboModel(tName);
|
|
end
|
|
end
|
|
|
|
table.sort(VUHDO_BUDDY_NAME_MODEL,
|
|
function(anInfo, anotherInfo)
|
|
return anInfo[1] < anotherInfo[1];
|
|
end
|
|
);
|
|
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_hookBuddyUpdater(aScrollPanel)
|
|
aScrollPanel:SetScript("OnShow",
|
|
function(self)
|
|
VUHDO_initBuddyNameModel();
|
|
VUHDO_lnfComboBoxInitFromModel(self:GetParent());
|
|
end
|
|
);
|
|
end
|
|
|
|
|
|
|
|
--
|
|
function VUHDO_optionsExecShare(aPanel)
|
|
local tSelection = _G[aPanel:GetAttribute("model")[2]];
|
|
if (VUHDO_strempty(tSelection)) then
|
|
VUHDO_Msg("You must select an item to share.", 1, 0.4, 0.4);
|
|
return false;
|
|
end
|
|
|
|
if (VUHDO_strempty(VUHDO_SELECTED_COMBO_BUDDY)
|
|
or VUHDO_SELECTED_COMBO_BUDDY == VUHDO_NONE_SELECTED_BUDDY) then
|
|
VUHDO_Msg("You must select a player name.", 1, 0.4, 0.4);
|
|
return false;
|
|
end
|
|
|
|
if (VUHDO_SELECTED_COMBO_BUDDY == VUHDO_PLAYER_NAME) then
|
|
VUHDO_Msg("You can't share stuff with yourself.", 1, 0.4, 0.4);
|
|
return false;
|
|
end
|
|
|
|
|
|
_G[aPanel:GetAttribute("model")[1]](VUHDO_SELECTED_COMBO_BUDDY, tSelection);
|
|
return true;
|
|
end
|
|
|