private IEnumerable <ChatFormat> ParseChatLinks(WorldSession session, ClientChat chat) { foreach (ChatFormat format in chat.Formats) { switch (format.FormatModel) { case ChatFormatItemGuid chatFormatItemGuid: { Item item = session.Player.Inventory.GetItem(chatFormatItemGuid.Guid); // TODO: this probably needs to be a full item response yield return(new ChatFormat { Type = ChatFormatType.ItemItemId, StartIndex = 0, StopIndex = 0, FormatModel = new ChatFormatItemId { ItemId = item.Entry.Id } }); break; } default: yield return(format); break; } } }
public async void RegistraClient(TcpClient client) { //mclient.Add(client); NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; Debug.WriteLine("Pronto ad ascoltare..."); int nBytes = await reader.ReadAsync(buff, 0, buff.Length); string Nickname = new string(buff, 0, nBytes); Debug.WriteLine("Returned bytes: {0}. Nickname: {1}", nBytes, Nickname); ClientChat newclient = new ClientChat(); newclient.Nickname = Nickname; newclient.Client = client; mclient.Add(newclient); } catch (Exception ex) { Debug.WriteLine(ex.Message); } }
public async void RegistraClient(TcpClient client) { NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; int nBytes = 0; Console.WriteLine("In attesa di Nickname..."); //ricezione del nickname nBytes = await reader.ReadAsync(buff, 0, buff.Length); string recvText = new string(buff, 0, nBytes); Console.WriteLine("Nickname: {0}", recvText); ClientChat newclient = new ClientChat(); newclient.Nickname = recvText; newclient.Client = client; mClients.Add(newclient); } catch (Exception ex) { Console.WriteLine("Errore: " + ex.Message); } }
private void Login_Click(object sender, EventArgs e) { //criar a conexao SqlConnection con = new SqlConnection(conString); //abrir base de dados con.Open(); //comando para comparar os dados escritos com as colunas utilizador e passe da base de dados SqlCommand cmd = new SqlCommand("select * from tblContas where Utilizador = '" + LoginUT.Text + "' and Passe = '" + LoginPass.Text + "'", con); SqlDataReader dr; dr = cmd.ExecuteReader(); int count = 0; while (dr.Read()) { count += 1; } if (count == 1) { ClientChat c1 = new ClientChat(); c1.ShowDialog(); } else { //mensagem de erro caso a conta nao esteja na base de dados MessageBox.Show("Password ou Nome de Utilizador nao estao corretos"); } Clear(); }
private void RimuoviClient(TcpClient client) { ClientChat nm = mClients.Where(riga => riga.Client == client).FirstOrDefault(); if (nm != null) { mClients.Remove(nm); } }
public static void HandleChat(WorldSession session, ClientChat chat) { if (chat.Message.StartsWith("!")) { CommandManager.ParseCommand(chat.Message, out string command, out string[] parameters); CommandHandlerDelegate handler = CommandManager.GetCommandHandler(command); handler?.Invoke(session, parameters); } }
private static async Task StartChat(ClientService clientService, string userName, int portNo) { using (var socket = new ClientWebSocket()) { try { await clientService.Connect(socket, Connection + ":" + portNo); var input = userName + " connected!"; ChatMessage chatMessage = new ChatMessage() { User = "", Message = input }; await clientService.Send(socket, chatMessage); Console.WriteLine("Type leaveChat for exit!"); chatMessage.User = userName; bool exit = false; do { await ClientChat.Receive(socket); input = Console.ReadLine(); switch (input) { case "leaveChat": chatMessage.Message = userName + " disconnected!"; await clientService.Send(socket, chatMessage); await clientService.Disconnect(socket, chatMessage.Message); exit = true; break; case "": case "exit": break; default: chatMessage.Message = input; await ClientChat.Send(socket, chatMessage); break; } } while (!exit); } catch (Exception ex) { Console.WriteLine($"ERROR - {ex.Message}"); } } }
public async Task <IActionResult> PutChat(int id, ClientChat cc) { Chat chat = new Chat(cc, true); if (id != chat.ChatId) { return(BadRequest()); } _context.Entry(chat).State = EntityState.Modified; if (chat.Users != null && chat.Users.Count != 0) { foreach (Participation p in chat.Users) { _context.Entry(p).State = EntityState.Modified; Participation similar = _context.Participations.Where(pa => pa.ChatId == p.ChatId && pa.UserId == p.UserId).FirstOrDefault(); if (similar == default) { _context.Participations.Add(p); } _context.Entry(p.User).State = EntityState.Modified; } } if (chat.Messages != null && chat.Messages.Count != 0) { foreach (Message m in chat.Messages) { _context.Entry(m).State = EntityState.Modified; } } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ChatExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <ClientChat> > GetChat(int id) { var chat = await _context.Chats.Include(c => c.Messages).Include(c => c.Users).SingleOrDefaultAsync(c => c.ChatId == id); var clientChat = new ClientChat(chat, _context, true); if (chat == null) { return(NotFound()); } return(clientChat); }
public static void HandleChat(WorldSession session, ClientChat chat) { if (chat.Message.StartsWith(".")) { CommandManager.ParseCommand(chat.Message.Remove(0, 1), out string command, out string[] parameters); if (CommandManager.GetCommand(session, command, parameters, out CommandManager.CommandHandler handler)) { handler.Invoke(session, parameters); } } else { // TODO } }
private void RemoveClient(TcpClient client) { // LINQ è una libreria in cui posso usare "cose" peculiari del SQL su Liste<> in c# // LINQ in forma SQL //ClientChat cc = (from riga in mClients where riga.Client == client select riga).FirstOrDefault(); // LINQ in forma c# ClientChat cc = mClients.Where(riga => riga.Client == client).FirstOrDefault(); if (cc != null) { mClients.Remove(cc); } }
public static void HandleChat(WorldSession session, ClientChat chat) { if (chat.Message.StartsWith(CommandPrefix)) { try { CommandManager.ParseCommand(chat.Message, out string command, out string[] parameters); CommandHandlerDelegate handler = CommandManager.GetCommandHandler(command); handler?.Invoke(session, parameters); } catch (Exception e) { log.Warn(e.Message); } } }
public async Task <ActionResult <ClientChat> > PostChat(ClientChat clientChat) { Chat chat = new Chat(clientChat, true); List <Participation> parts = chat.Users; chat.Users = null; _context.Chats.Add(chat); foreach (Participation p in parts) { _context.Participations.Attach(p); } await _context.SaveChangesAsync(); return(new ClientChat(chat, _context, true)); }
/// <summary> /// Process and delegate a <see cref="ClientChat"/> message from <see cref="WorldSession"/>, this is called directly from a packet hander. /// </summary> public void HandleClientChat(WorldSession session, ClientChat chat) { if (chatChannelHandlers.ContainsKey(chat.Channel)) { chatChannelHandlers[chat.Channel](session, chat); } else { log.Info($"ChatChannel {chat.Channel} has no handler implemented."); session.EnqueueMessageEncrypted(new ServerChat { Channel = ChatChannel.Debug, Name = "SocialManager", Text = "Currently not implemented", }); } }
public static void HandleChat(WorldSession session, ClientChat chat) { if (chat.Message.StartsWith(CommandPrefix)) { try { CommandManager.Instance.HandleCommand(session, chat.Message, true); } catch (Exception e) { log.Warn(e.Message); } } else { SocialManager.Instance.HandleClientChat(session, chat); } }
public async Task <List <ClientChat> > FindAllChatsByEmailAsync(string email) { List <ClientChat> clients = new List <ClientChat>(); foreach (Chat chat in await _chatRepository.FindAllChatsByEmailAsync(email)) { if (!chat.To.Equals(email)) { Client client = await _clientRepository.FindByIdAsync(chat.To); ClientChat clientChat = new ClientChat(); clientChat.ClientName = client.ClientName; clientChat.ClientEmail = client.ClientEmail; clientChat.Chat = chat; clients.Add(clientChat); } } return(clients); }
public static void HandleChat(WorldSession session, ClientChat chat) { if (chat.Message.StartsWith(CommandPrefix)) { try { var target = session.Player.GetVisible <WorldEntity>(session.Player.TargetGuid); var context = new WorldSessionCommandContext(session.Player, target); CommandManager.Instance.HandleCommand(context, chat.Message.Substring(CommandPrefix.Length)); } catch (Exception e) { log.Warn($"{e.Message}: {e.StackTrace}"); } } else { SocialManager.Instance.HandleClientChat(session, chat); } }
private void HandleLocalChat(WorldSession session, ClientChat chat) { var serverChat = new ServerChat { Guid = session.Player.Guid, Channel = chat.Channel, Name = session.Player.Name, Text = chat.Message, Formats = ParseChatLinks(session, chat).ToList(), }; session.Player.Map.Search( session.Player.Position, LocalChatDistace, new SearchCheckRangePlayerOnly(session.Player.Position, LocalChatDistace, session.Player), out List <GridEntity> intersectedEntities ); intersectedEntities.ForEach(e => ((Player)e).Session.EnqueueMessageEncrypted(serverChat)); SendChatAccept(session); }
public async void RegisterClient(TcpClient client) { // Data del primo client connesso if (mClients.Count == 0) { FirstDate = DateTime.Now; } // Lettura nickname NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; // Ricezione effettiva int nBytes = await reader.ReadAsync(buff, 0, buff.Length); string Nickname = new string(buff, 0, nBytes); ClientChat NewClient = new ClientChat(); NewClient.Nickname = Nickname; NewClient.Client = client; // Aggiunta client alla lista mClients.Add(NewClient); Console.WriteLine($"Returned bytes {nBytes}, Messaggio: {Nickname}"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine($"Client connessi: {mClients.Count}. Client connesso: {client.Client.RemoteEndPoint}."); }
public async void RiceviMessaggio(TcpClient client) { NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; int nBytes = 0; while (true) { Console.WriteLine("In attesa di un messaggio"); //ricezione messaggio asincrono nBytes = await reader.ReadAsync(buff, 0, buff.Length); if (nBytes == 0) { RimuoviClient(client); Console.WriteLine("Client Disconnesso"); break; } string recvText = new string(buff, 0, nBytes); ClientChat nickClient = mClients.Where(e => e.Client == client).FirstOrDefault(); string risp = $"{nickClient.Nickname}: {recvText}"; InviaTutti(risp); } } catch (Exception ex) { RimuoviClient(client); Console.WriteLine("Errore: " + ex.Message); } }
public async void ReceiveMessage(TcpClient client) { NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; // Ricezione effettiva while (keep) { Console.WriteLine("Pronto ad ascoltare..."); int nBytes = await reader.ReadAsync(buff, 0, buff.Length); if (nBytes == 0) { RemoveClient(client); Console.WriteLine("Client disconnesso."); break; } string recvMessage = new string(buff, 0, nBytes); ClientChat cc = mClients.Where(riga => riga.Client == client).FirstOrDefault(); string replyToSend = $"({DateTime.Now.Hour}:{DateTime.Now.Minute}) {cc.Nickname}: {recvMessage}"; SendToAll(replyToSend); Console.WriteLine($"Returned bytes {nBytes}, Messaggio: {recvMessage}"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public async void RiceviMessaggi(TcpClient client) { NetworkStream stream = null; StreamReader reader = null; try { stream = client.GetStream(); reader = new StreamReader(stream); char[] buff = new char[512]; //ricezione effettiva while (continua) { Debug.WriteLine("Pronto ad ascoltare..."); int nBytes = await reader.ReadAsync(buff, 0, buff.Length); if (nBytes == 0) { rimuoviClient(client); Debug.WriteLine("Client disconnesso."); break; } string recvMessage = new string(buff, 0, nBytes); Debug.WriteLine("Returned bytes: {0}. Messaggio: {1}", nBytes, recvMessage); ClientChat nickClient = mclient.Where(e => e.Client == client).FirstOrDefault(); string risposta = $"{nickClient.Nickname}: " + recvMessage; inviaATutti(risposta); } } catch (Exception ex) { Debug.WriteLine(ex.Message); rimuoviClient(client); } }
private void Login_Click(object sender, EventArgs e) { // verify if the fields are empty if (LoginUT.Text == "" && LoginPass.Text == "") { MessageBox.Show("Empty fields"); } else { //Query created to access the required data string query = "SELECT * FROM AccountsT where Username = @LoginUT AND Password =@LoginPass"; //Connection link to data base SQLiteConnection conn = new SQLiteConnection(connectionString); //open connection conn.Open(); SQLiteCommand cmd = new SQLiteCommand(query, conn); //Read Values to compare to DB cmd.Parameters.AddWithValue("@LoginUt", LoginUT.Text); cmd.Parameters.AddWithValue("@LoginPass", LoginPass.Text); SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { //if the parameters are correct opens the chat window ClientChat c1 = new ClientChat(); c1.ShowDialog(); } else { MessageBox.Show("Username or Password are Incorrect"); } //Function to clean text boxes Clear(); } void Clear() { LoginUT.Text = LoginPass.Text = ""; } #region V1method /////////////////////////////////////////////////////////////////////////// /// Method used to Login using SQL Local DB on Managment Studio /// /////////////////////////////////////////////////////////////////////////// /* * //Link to connect program to local data base * string conString = @"Data Source=DESKTOP-I0BR7JC;Initial Catalog=Contas CD;Integrated Security=True"; * * //Create connexion * SqlConnection con = new SqlConnection(conString); * //abrir base de dados * con.Open(); * //command to compare thge writen data to the username and passwords collums on data base * SqlCommand cmd = new SqlCommand("select * from tblContas where Utilizador = '" + LoginUT.Text + "' and Passe = '" + LoginPass.Text + "'", con); * SqlDataReader dr; * dr = cmd.ExecuteReader(); * int count = 0; * while (dr.Read()) * { * count += 1; * } * if (count == 1) * { * //if the parameters are correct opens the chat window * ClientChat c1 = new ClientChat(); * c1.ShowDialog(); * } * else * { * // error message in case of wrng pass or username * MessageBox.Show("Username or Passowrd are Incorrect "); * } * * //Function to clean text boxes * Clear(); * */ #endregion }
void Start() { clientchat = GetComponent <ClientChat>(); }