public void RaidLeave(ClientSession session)
 {
     if (Raids != null)
     {
         Raid raid = Instance.Raids.FirstOrDefault(s => s.IsMemberOfRaid(session.Character.CharacterId));
         if (raid != null)
         {
             if (raid.CharacterCount > 0)
             {
                 if (raid.Leader == session)
                 {
                     raid.Leader = raid.Characters.ElementAt(0);
                     raid.LeaveRaid(raid.Leader);
                     raid.Leader.SendPacket($"say 1 {raid.Leader.Character.CharacterId} 10 {Language.Instance.GetMessageFromKey("RAID_NEW_LEADER")}");
                     raid.Leader.SendPacket(raid.Leader.Character.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_NEW_LEADER"), 0));
                 }
                 raid.LeaveRaid(session);
                 foreach (ClientSession gs in raid.Characters)
                 {
                     gs.SendPacket(gs.Character.GeneratePinit());
                     gs.SendPacket(gs.Character.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("LEAVE_RAID"), session.Character.Name), 0));
                 }
                 session.SendPacket("raid 1 0");
                 session.SendPacket("raid 2 - 1");
                 session.SendPacket(session.Character.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_LEFT"), 0));
             }
             else
             {
                 RaidDisolve(session, raid);
             }
             raid.UpdateVisual();
         }
     }
 }
 public void RaidDisolve(ClientSession session, Raid raid = null)
 {
     if (raid == null)
     {
         raid = Instance.Raids.FirstOrDefault(s => s.IsMemberOfRaid(session.Character.CharacterId));
     }
     if (raid != null)
     {
         raid.Leader.SendPacket("raid 1 0");
         raid.Leader.SendPacket("raid 2 -1");
         raid.Leader.SendPacket(raid.Leader.Character.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_CLOSED"), 0));
         raid.LeaveRaid(raid.Leader);
         foreach (ClientSession targetSession in raid.Characters)
         {
             targetSession.SendPacket("raid 1 0");
             targetSession.SendPacket("raid 2 -1");
             targetSession.SendPacket(targetSession.Character.GenerateMsg(Language.Instance.GetMessageFromKey("RAID_CLOSED"), 0));
             raid.LeaveRaid(targetSession);
         }
         RemoveRaid(raid);
     }
 }