/// <summary> /// When overridden in the derived class, allows for additional handling for when a group member /// leaves the group the <see cref="GroupMemberInfo{T}.Owner"/> is currently in. /// </summary> /// <param name="groupMember">The group member that joined the group. This will never be equal to /// the <see cref="GroupMemberInfo{T}.Owner"/>. That is, we will only receive events related to other /// group members in our group.</param> protected override void OnGroupMemberLeft(IGroupable groupMember) { using (var pw = ServerPacket.GroupInfo(x => UserGroupInformation.WriteRemoveMember(x, groupMember))) { Owner.Send(pw, ServerMessageType.GUI); } Owner.Send(GameMessage.GroupMemberLeft, ServerMessageType.GUI, GetGroupMemberName(groupMember)); }