/// <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()); } }
/// <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); }