예제 #1
0
 /// <summary>
 /// Sends a message to all guild members.
 /// </summary>
 /// <param name="data">The <see cref="BitStream"/> containing the data to send.</param>
 public void Send(BitStream data)
 {
     foreach (var member in OnlineMembers.OfType <INetworkSender>())
     {
         member.Send(data, ServerMessageType.GUIChat);
     }
 }
 /// <summary>
 /// Removes a connected user from the group.
 /// The user reconnects at the next session.
 /// </summary>
 /// <param name="pUsername">Client</param>
 public void Disconnect(NetComUser pUser)
 {
     if (OnlineMembers.Contains(pUser))
     {
         OnlineMembers.Remove(pUser);
     }
 }
        // ╔════╤════════════════════════════════════════════════════════╗
        // ║ 4d │ M E T H O D S   ( P U B L I C )                        ║
        // ╟────┴────────────────────────────────────────────────────────╢
        // ║ N O N - S T A T I C   &   S T A T I C                       ║
        // ╚═════════════════════════════════════════════════════════════╝

        #region ═╣ M E T H O D S   ( P U B L I C ) ╠═

        /// <summary>
        /// Adds a already connected user to the group.
        /// The user reconnects at the next session.
        /// </summary>
        /// <param name="pUser">Client</param>
        public void AddUser(NetComUser pUser)
        {
            if (!OnlineMembers.Contains(pUser))
            {
                OnlineMembers.Add(pUser);
            }
            if (!GroupMembers.Contains(pUser.Username.ToLower()))
            {
                GroupMembers.Add(pUser.Username.ToLower());
            }
        }
예제 #4
0
        /// <summary>
        /// When overridden in the derived class, displays the online members of the guild to the <paramref name="invoker"/>.
        /// </summary>
        /// <param name="invoker">The guild member that invoked the event.</param>
        /// <returns>True if the <paramref name="invoker"/> successfully viewed the online member list; otherwise false.</returns>
        protected override bool InternalTryViewOnlineMembers(IGuildMember invoker)
        {
            var user = invoker as INetworkSender;

            if (user == null)
            {
                return(false);
            }

            var members = OnlineMembers.OrderBy(x => (int)x.GuildRank).Select(x => new GuildMemberNameRank(x.Name, x.GuildRank));

            SendGuildMemberList(user, "Online guild members:", members);

            return(true);
        }