public void FriendListRequest(MsgrClient client, Packet packet)
{
var user = client.User;
// Lists are sorted alphabetically by the client
var groups = MsgrServer.Instance.Database.GetGroups(user);
var friends = MsgrServer.Instance.Database.GetFriends(user);
user.Groups.Clear();
foreach (var group in groups)
{
user.Groups.Add(group.Id);
}
user.Friends.Clear();
user.Friends.AddRange(friends);
Send.GroupList(client, groups);
Send.FriendListRequestR(client, friends);
// Notify friends about user going online
var friendUsers = MsgrServer.Instance.UserManager.Get(user.GetNormalFriendIds());
if (friendUsers.Count != 0)
{
Send.FriendOnline(friendUsers, user);
}
// Notify user about online friends
friendUsers = MsgrServer.Instance.UserManager.Get(user.GetFriendIds());
foreach (var friendUser in friendUsers.Where(a => a.GetFriendshipStatus(user.Id) == FriendshipStatus.Normal))
{
Send.FriendOnline(client.User, friendUser);
}
}