Guest User

Untitled

a guest
Oct 12th, 2017
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.63 KB | None | 0 0
  1.         ///<summary> Прослушиватель UDP </summary>
  2.         static void Receiver()
  3.         {
  4.             try
  5.             {
  6.                 bool Enabled = true;
  7.  
  8.                 while (Enabled)
  9.                 {                
  10.                     Thread.Sleep(0);
  11.                     while (VoiceIsGoing) { } byte[] data = Net.Udp.Receive(ref Net.End);
  12.  
  13.                     string Message = Net.Crypt.DecodeString(Encoding.UTF8.GetString(data));
  14.                     //Console.WriteLine("Принято: " + Message);
  15.                     if (Message.Contains(CommandChar))
  16.                     {
  17.                         #region Голос
  18.                         //|voice|SERVERTITLE|USER|БАЙТЫ
  19.                         if (Message.Contains("voice"))
  20.                         {
  21.                             VoiceIsGoing = true;
  22.                             Message = Message.Substring(7);
  23.                             string title = Message.Substring(0, Message.IndexOf(CommandChar));
  24.                             Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
  25.                             byte[] voice = Net.Udp.Receive(ref Net.End);
  26.  
  27.                             foreach (User user in GetServer(title).NowOnServer)
  28.                             {
  29.                                 if (user.IsOnServer && user.Login != Message)
  30.                                 {
  31.                                     Net.Send(CommandChar + "voice" + CommandChar, user.IP);
  32.                                     Thread.Sleep(10);
  33.                                     Net.Send(voice, user.IP);
  34.                                 }
  35.                             }
  36.                             VoiceIsGoing = false;
  37.                         }
  38.                         #endregion
  39.                         #region Авторизация          
  40.                         //|auth|ЛОГИН|ПАРОЛЬ
  41.                         if (Message.Contains("auth"))
  42.                         {
  43.                             Message = Message.Substring(6);
  44.                             string login = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
  45.                             string password = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
  46.  
  47.                             User ThisUser = new User { Login = login, Password = password };
  48.                             if (CheckUser(ThisUser, true))
  49.                             {
  50.                                 foreach (User user in Users)
  51.                                 {
  52.                                     if (user.Login == ThisUser.Login)
  53.                                     {
  54.                                         if (!user.IsOnServer)
  55.                                         {
  56.                                             Net.Send("true");
  57.                                             user.IP = Net.End;
  58.                                         }
  59.                                         else Net.Send("false");
  60.                                         break;
  61.                                     }
  62.                                 }
  63.                             }
  64.                             else Net.Send("false");
  65.                         }
  66.                         #endregion
  67.                         #region Подсоединение к серверу          
  68.                         //|connect|ИМЯСЕРВЕРА|ЛОГИН
  69.                         if (Message.Contains("connect"))
  70.                         {
  71.                             Message = Message.Substring(9);
  72.                             string server = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
  73.                             string login = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
  74.                             Server serv = GetServer(server);
  75.                             User user = GetUser(login);
  76.                             if (!user.IsOnServer)
  77.                             {
  78.                                 Net.Send(CommandChar + "connect" + CommandChar + "true");
  79.                                 Users[Users.IndexOf(user)].IsOnServer = true;
  80.                                 user.IsOnServer = true;
  81.                                 //User us = new User { Login = login, IP = Net.End, IsOnServer = true };
  82.                                 serv.NowOnServer.Add(user);
  83.                                 serv.OnConnect(user.Login);      
  84.                             }
  85.                             else
  86.                             {
  87.                                 Net.Send(CommandChar + "connect" + CommandChar + "false");
  88.                             }
  89.                         }
  90.                         #endregion
  91.                         #region История
  92.                         //|history|SERVERTITLE
  93.                         if (Message.Contains("history"))
  94.                         {
  95.                             Message = Message.Substring(9);
  96.                             Server serv = GetServer(Message);
  97.                             Net.Send(serv.GetMessages());
  98.                         }
  99.                         #endregion
  100.                         #region Регистрация
  101.                         //|register|ЛОГИН|ПАРОЛЬ
  102.                         if (Message.Contains("register"))
  103.                         {
  104.                             Message = Message.Substring(10);
  105.                             string login = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
  106.                             string password = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
  107.                             User ThisUser = new User { Login = login, Password = password };
  108.  
  109.                             if (!CheckUser(ThisUser))
  110.                             {
  111.                                 Users.Add(ThisUser);
  112.                                 ColorMessage("Пользователь " + ThisUser.Login + " был успешно добавлен в базу данных! ", ConsoleColor.Green);
  113.                                 SaveDatabase();
  114.                                 Net.Send("true");
  115.                             }
  116.                             else Net.Send("false");
  117.                         }
  118.                         #endregion                      
  119.                         #region Текст
  120.                         //|text|SERVERTITLE|ЛОГИН|ТЕКСТ
  121.                         if (Message.Contains("text"))
  122.                         {
  123.                             Message = Message.Substring(6);
  124.                             string Title = Message.Substring(0, Message.IndexOf(CommandChar));
  125.  
  126.                             Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
  127.                             string Login = Message.Substring(0, Message.IndexOf(CommandChar));
  128.  
  129.                             Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
  130.                             Console.WriteLine("Новое сообщение от {0}: {1}", Net.End.Address, Message);
  131.                             GetServer(Title).OnNewMessage(Message, MessageType.User, GetUser(Login));
  132.                         }
  133.  
  134.                         #endregion
  135.                         #region Онлайн
  136.                         //|isonline|USERNAME|BOOLEAN
  137.                         if (Message.Contains("isonline"))
  138.                         {
  139.                             Message = Message.Substring(10);
  140.                             string Name = Message.Substring(0, Message.IndexOf(CommandChar));
  141.                             Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
  142.                             User user = GetUser(Name);
  143.  
  144.                             foreach (Server serv in Servers)
  145.                             {
  146.                                 if (serv.NowOnServer.Contains(user))
  147.                                 {
  148.                                     serv.NowOnServer[serv.NowOnServer.IndexOf(user)].IsOnServer = bool.Parse(Message);
  149.                                     Users[Users.IndexOf(user)].IsOnServer = bool.Parse(Message);
  150.                                     break;
  151.                                 }
  152.                             }
  153.                         }
  154.                         #endregion
  155.                         #region Обновление
  156.                         //|version|ВЕРСИЯ
  157.                         if (Message.Contains("version"))
  158.                         {
  159.                             Message = Message.Substring(9);
  160.                             string version = Message;
  161.  
  162.                             if (version != Library.version) Net.Send("false");
  163.                             else Net.Send("true");
  164.                         }
  165.                         #endregion
  166.                         #region Получение серверов          
  167.                         //|servers|
  168.                         if (Message == CommandChar + "servers" + CommandChar)
  169.                         {
  170.                             string str = "";
  171.                             foreach (Server serv in Servers)
  172.                             {
  173.                                 str += serv.Title + CommandChar;
  174.                             }
  175.                             Net.Send(str);
  176.                         }
  177.                         #endregion
  178.                         #region Скачивание
  179.                         //|update|
  180.                         if (Message.Contains("update")) Net.SendFile();
  181.                         #endregion
  182.                     }
  183.                 }
  184.             }
  185.             catch (Exception e)
  186.             {
  187.                 ColorMessage("Что-то пошло не так: " + e.Message, ConsoleColor.Red);
  188.             }      
  189.         }
Add Comment
Please, Sign In to add comment