GroupList() public static method

Sends group list to client.
public static GroupList ( MsgrClient client, ICollection groups ) : void
client MsgrClient
groups ICollection
return void
Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }

            // Notify guild members
            var guild = MsgrServer.Instance.GuildManager.FindGuildWithMember(user.CharacterId);

            if (guild != null)
            {
                var member = guild.GetMember(user.CharacterId);
                GuildManager.ForOnlineMembers(guild, memberUser => Send.GuildMemberState(memberUser.Client, guild, member, user, user.Status));
            }
        }