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

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