/// <summary> /// Send party social list, this shows the party in the social window. /// </summary> public override void SendSocialList(Player recipient, ushort sequence) { var socialList = new ServerSocialList { ListType = SocialListType.Party, Sequence = sequence }; foreach (Member member in Members) { Player player = MapManager.FindPlayer(member.Name); var socialMember = player != null ? new ServerSocialList.Member(player) : new ServerSocialList.Member(member); if (member == Leader) { socialMember.OnlineStatusMask.Set(36, true); } if (player != null) { socialMember.OnlineStatusMask.Set(37, true); } socialList.SocialMembers.Add(socialMember); } recipient.Session.Send(socialList); }
public static void HandleSocialList(WorldSession session, ClientSocialList socialList) { switch (socialList.ListType) { case SocialListType.Party: { // party if (session.Player.Party != null) { session.Player.Party.SendSocialList(session.Player, socialList.Sequence); } // solo else { ServerSocialList serverSocialList = new ServerSocialList { ListType = SocialListType.Party, Sequence = socialList.Sequence }; serverSocialList.SocialMembers.Add(new ServerSocialList.Member(session.Player)); session.Send(serverSocialList); } break; } default: { // throw new NotImplementedException($"Unhandled SocialListType {socialList.ListType}!"); #if DEBUG Console.WriteLine($"Unhandled SocialListType {socialList.ListType}"); #endif break; } } }