Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///<summary> Прослушиватель UDP </summary>
- static void Receiver()
- {
- try
- {
- bool Enabled = true;
- while (Enabled)
- {
- Thread.Sleep(0);
- while (VoiceIsGoing) { } byte[] data = Net.Udp.Receive(ref Net.End);
- string Message = Net.Crypt.DecodeString(Encoding.UTF8.GetString(data));
- //Console.WriteLine("Принято: " + Message);
- if (Message.Contains(CommandChar))
- {
- #region Голос
- //|voice|SERVERTITLE|USER|БАЙТЫ
- if (Message.Contains("voice"))
- {
- VoiceIsGoing = true;
- Message = Message.Substring(7);
- string title = Message.Substring(0, Message.IndexOf(CommandChar));
- Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
- byte[] voice = Net.Udp.Receive(ref Net.End);
- foreach (User user in GetServer(title).NowOnServer)
- {
- if (user.IsOnServer && user.Login != Message)
- {
- Net.Send(CommandChar + "voice" + CommandChar, user.IP);
- Thread.Sleep(10);
- Net.Send(voice, user.IP);
- }
- }
- VoiceIsGoing = false;
- }
- #endregion
- #region Авторизация
- //|auth|ЛОГИН|ПАРОЛЬ
- if (Message.Contains("auth"))
- {
- Message = Message.Substring(6);
- string login = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
- string password = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
- User ThisUser = new User { Login = login, Password = password };
- if (CheckUser(ThisUser, true))
- {
- foreach (User user in Users)
- {
- if (user.Login == ThisUser.Login)
- {
- if (!user.IsOnServer)
- {
- Net.Send("true");
- user.IP = Net.End;
- }
- else Net.Send("false");
- break;
- }
- }
- }
- else Net.Send("false");
- }
- #endregion
- #region Подсоединение к серверу
- //|connect|ИМЯСЕРВЕРА|ЛОГИН
- if (Message.Contains("connect"))
- {
- Message = Message.Substring(9);
- string server = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
- string login = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
- Server serv = GetServer(server);
- User user = GetUser(login);
- if (!user.IsOnServer)
- {
- Net.Send(CommandChar + "connect" + CommandChar + "true");
- Users[Users.IndexOf(user)].IsOnServer = true;
- user.IsOnServer = true;
- //User us = new User { Login = login, IP = Net.End, IsOnServer = true };
- serv.NowOnServer.Add(user);
- serv.OnConnect(user.Login);
- }
- else
- {
- Net.Send(CommandChar + "connect" + CommandChar + "false");
- }
- }
- #endregion
- #region История
- //|history|SERVERTITLE
- if (Message.Contains("history"))
- {
- Message = Message.Substring(9);
- Server serv = GetServer(Message);
- Net.Send(serv.GetMessages());
- }
- #endregion
- #region Регистрация
- //|register|ЛОГИН|ПАРОЛЬ
- if (Message.Contains("register"))
- {
- Message = Message.Substring(10);
- string login = Message.Substring(0, Message.IndexOf(CommandChar.ToString()));
- string password = Message.Substring(Message.IndexOf(CommandChar.ToString()) + 1);
- User ThisUser = new User { Login = login, Password = password };
- if (!CheckUser(ThisUser))
- {
- Users.Add(ThisUser);
- ColorMessage("Пользователь " + ThisUser.Login + " был успешно добавлен в базу данных! ", ConsoleColor.Green);
- SaveDatabase();
- Net.Send("true");
- }
- else Net.Send("false");
- }
- #endregion
- #region Текст
- //|text|SERVERTITLE|ЛОГИН|ТЕКСТ
- if (Message.Contains("text"))
- {
- Message = Message.Substring(6);
- string Title = Message.Substring(0, Message.IndexOf(CommandChar));
- Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
- string Login = Message.Substring(0, Message.IndexOf(CommandChar));
- Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
- Console.WriteLine("Новое сообщение от {0}: {1}", Net.End.Address, Message);
- GetServer(Title).OnNewMessage(Message, MessageType.User, GetUser(Login));
- }
- #endregion
- #region Онлайн
- //|isonline|USERNAME|BOOLEAN
- if (Message.Contains("isonline"))
- {
- Message = Message.Substring(10);
- string Name = Message.Substring(0, Message.IndexOf(CommandChar));
- Message = Message.Substring(Message.IndexOf(CommandChar) + 1);
- User user = GetUser(Name);
- foreach (Server serv in Servers)
- {
- if (serv.NowOnServer.Contains(user))
- {
- serv.NowOnServer[serv.NowOnServer.IndexOf(user)].IsOnServer = bool.Parse(Message);
- Users[Users.IndexOf(user)].IsOnServer = bool.Parse(Message);
- break;
- }
- }
- }
- #endregion
- #region Обновление
- //|version|ВЕРСИЯ
- if (Message.Contains("version"))
- {
- Message = Message.Substring(9);
- string version = Message;
- if (version != Library.version) Net.Send("false");
- else Net.Send("true");
- }
- #endregion
- #region Получение серверов
- //|servers|
- if (Message == CommandChar + "servers" + CommandChar)
- {
- string str = "";
- foreach (Server serv in Servers)
- {
- str += serv.Title + CommandChar;
- }
- Net.Send(str);
- }
- #endregion
- #region Скачивание
- //|update|
- if (Message.Contains("update")) Net.SendFile();
- #endregion
- }
- }
- }
- catch (Exception e)
- {
- ColorMessage("Что-то пошло не так: " + e.Message, ConsoleColor.Red);
- }
- }
Add Comment
Please, Sign In to add comment