The /chatlist command isn't showing everyone in the channel, and it's a pain having to keep checking it and adding people to your friends list manually.
This might be of some use:
Make a folder inside your Addons folder called "f2ptwinknames"
Inside it make 3 text files, then copy/paste the following into them and rename them as below:
f2ptwinknames.toc
Code:
## Interface: 40200
## Title: f2ptwinknames
## Notes: every 5 minutes asks the server for the list of members in the channel 'f2ptwink' and adds them to your friends list
f2ptwinknames.lua
f2ptwinknames.xml
f2ptwinknames.xml
Code:
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
<Script File="f2ptwinknames.lua"/>
<Frame name="F2PTwinkNamesFrame">
<Scripts>
<OnLoad function="F2PTwinkNames_OnLoad"/>
<OnUpdate function="F2PTwinkNames_OnUpdate"/>
</Scripts>
</Frame>
</Ui>
f2ptwinknames.lua
Code:
local channelname = "f2ptwink"
local throttle = 300
local counter = 0
local friends = {}
function F2PTwinkNames_OnLoad(self)
print("F2PTwinkNames loaded");
self:RegisterEvent("CHAT_MSG_CHANNEL_LIST");
F2PTwinkNames_OnUpdate(self,throttle);
end
function F2PTwinkNames_OnUpdate(self, elapsed)
counter = counter + elapsed;
if counter >= throttle then
counter = 0;
if (#friends == 0) then
if (GetNumFriends() > 0) then
--print("Populating list of existing friends")
--print ("----------------");
f_num = GetNumFriends();
table.insert(friends, GetUnitName("player",0));
for y = 1, f_num do
local name, level, class, loc, connected, status = GetFriendInfo(y);
table.insert(friends, name);
--print(name);
end
--print ("----------------");
end
end
if ( GetNumChannelMembers(GetChannelName(channelname)) ) then
i = GetNumChannelMembers(GetChannelName(channelname))
--print (i.." members:");
--print ("----------------");
for x = 1, i do
channel_member = GetChannelRosterInfo(GetChannelName(channelname), x);
exists = 0;
for y = 1, #friends do
if (friends[y] == channel_member) then
exists = 1;
--print(channel_member.." already exists in friends list. Skipping.");
end
end
if (exists == 0) then
print ("F2PTwinkNames adding "..channel_member.." to friends list");
AddFriend(channel_member);
table.insert(friends, channel_member);
end
end
--print ("----------------");
end
end
end
You've now got an addon that automatically adds everyone who joins that channel as a friend (if someone wants to make turn it into a .zip file people can download, go ahead. It's not really worth the effort for me to do it when it should take as long to copy/paste/rename as save/download/unzip).
The only problem is the friends list is limited to 50 people. If we get that many I could have the addon save a longer list to a text file when it exits, and then keep adding/removing people to/from the friends list as they log in and out (with a delay, in case they're just swapping to an alt for a sec).
It'd help a bit for chat in game and assembling groups, but I think xfire/vent would be a better solution in the long term.