From f1901f0c351dd54ead6742242615a82a3818c75c Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 19 Oct 2020 23:07:48 +0200 Subject: [PATCH 01/18] added something to the user --- Server/Models/ServerCommunication.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server/Models/ServerCommunication.cs b/Server/Models/ServerCommunication.cs index ce6c70d..8bfdcc1 100644 --- a/Server/Models/ServerCommunication.cs +++ b/Server/Models/ServerCommunication.cs @@ -117,14 +117,14 @@ namespace Server.Models } } - public void AddToLobby(Lobby lobby, string username) + public void AddToLobby(Lobby lobby, User user) { foreach (Lobby l in lobbies) { if (l == lobby) { bool succ; - l.AddUser(username, out succ); + l.AddUser(user, out succ); if (!succ) { // TODO send lobby full message From 55425bbec4f7698507f18ce6f8786398597ee246 Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 20 Oct 2020 13:03:04 +0200 Subject: [PATCH 02/18] for some reason, didnt added this stuff-_- --- SharedClientServer/User.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/SharedClientServer/User.cs b/SharedClientServer/User.cs index c639071..f25efbf 100644 --- a/SharedClientServer/User.cs +++ b/SharedClientServer/User.cs @@ -8,11 +8,13 @@ namespace SharedClientServer { private string _username; private int _score; + private bool _host; - public User(string username, int score) + public User(string username, int score, bool host) { _username = username; _score = score; + _host = host; } public string Username @@ -26,5 +28,11 @@ namespace SharedClientServer get { return _score; } set { _score = value; } } + + public bool Host + { + get { return _host; } + set { _host = value; } + } } } From 3aaff90178e1176fcabbd88fe238ecb4be9e4475 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 20 Oct 2020 15:14:48 +0200 Subject: [PATCH 03/18] [EDIT] fixed some user stuff --- Server/Models/ServerCommunication.cs | 4 +++- SharedClientServer/Lobby.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Server/Models/ServerCommunication.cs b/Server/Models/ServerCommunication.cs index 8bfdcc1..afc9a14 100644 --- a/Server/Models/ServerCommunication.cs +++ b/Server/Models/ServerCommunication.cs @@ -18,6 +18,7 @@ namespace Server.Models public List lobbies; private Dictionary> serverClientsInlobbies; public Action newClientAction; + /// /// use a padlock object to make sure the singleton is thread-safe @@ -132,7 +133,8 @@ namespace Server.Models { foreach(ServerClient sc in serverClients) { - if (sc.Username == username) + + if (sc.Username == user.Username) { serverClientsInlobbies[l].Add(sc); break; diff --git a/SharedClientServer/Lobby.cs b/SharedClientServer/Lobby.cs index 6961ca6..06dec00 100644 --- a/SharedClientServer/Lobby.cs +++ b/SharedClientServer/Lobby.cs @@ -41,7 +41,7 @@ namespace Client succes = false; if (_users.Count < _maxPlayers) { - _users.Add(new User(username, 0)); + _users.Add(new User(username, 0,false)); succes = true; } } From 1e11bc5416c64f4b4a8960ccf0f57789632e1845 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 20 Oct 2020 15:21:11 +0200 Subject: [PATCH 04/18] [FIX] removed bad getter for model --- Client/ViewModels/ViewModel.cs | 3 --- Client/Views/MainWindow.xaml | 6 ++---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Client/ViewModels/ViewModel.cs b/Client/ViewModels/ViewModel.cs index 241b520..5498197 100644 --- a/Client/ViewModels/ViewModel.cs +++ b/Client/ViewModels/ViewModel.cs @@ -43,9 +43,6 @@ namespace Client { get { - if (_model == null) - _model = new Model(); - return _model; } diff --git a/Client/Views/MainWindow.xaml b/Client/Views/MainWindow.xaml index 7830f07..64a1fb1 100644 --- a/Client/Views/MainWindow.xaml +++ b/Client/Views/MainWindow.xaml @@ -12,7 +12,7 @@ - + @@ -34,7 +34,6 @@ public partial class MainWindow : Window { + ClientData data = ClientData.Instance; public MainWindow() { + this.DataContext = new ViewModel(); InitializeComponent(); + + usernameTextbox.Text = data.User.Username; } private void Button_Click(object sender, RoutedEventArgs e) diff --git a/Server/Models/ServerCommunication.cs b/Server/Models/ServerCommunication.cs index 8bfdcc1..be3a8f8 100644 --- a/Server/Models/ServerCommunication.cs +++ b/Server/Models/ServerCommunication.cs @@ -132,7 +132,7 @@ namespace Server.Models { foreach(ServerClient sc in serverClients) { - if (sc.Username == username) + if (sc.Username == user.Username) { serverClientsInlobbies[l].Add(sc); break; diff --git a/SharedClientServer/Lobby.cs b/SharedClientServer/Lobby.cs index 6961ca6..5a69627 100644 --- a/SharedClientServer/Lobby.cs +++ b/SharedClientServer/Lobby.cs @@ -41,7 +41,7 @@ namespace Client succes = false; if (_users.Count < _maxPlayers) { - _users.Add(new User(username, 0)); + _users.Add(new User(username, 0, false)); succes = true; } } From 33574a7b23a854e51a5bf07dd56c7acbc6281dc3 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 20 Oct 2020 17:43:28 +0200 Subject: [PATCH 11/18] [FIX] fixed server client message structure --- Client/Client.cs | 9 ++++++--- Client/ViewModels/ViewModel.cs | 2 +- Client/Views/LoginScreen.xaml.cs | 4 ++-- Client/Views/MainWindow.xaml | 2 +- Client/Views/MainWindow.xaml.cs | 2 +- Server/Models/ServerClient.cs | 16 ++++++++++++---- Server/Models/ServerCommunication.cs | 2 +- SharedClientServer/JSONConvert.cs | 23 ++++++++++++++++++----- 8 files changed, 42 insertions(+), 18 deletions(-) diff --git a/Client/Client.cs b/Client/Client.cs index 5152afe..d6e1220 100644 --- a/Client/Client.cs +++ b/Client/Client.cs @@ -16,11 +16,11 @@ namespace Client private int totalBufferReceived = 0; public int Port = 5555; public bool Connected = false; - //TODO send login packet to server with ClientServerUtil.createpayload(0x01,dynamic json with username) - public string Username { get; } + private string username; - public Client() + public Client(string username) { + this.username = username; this.tcpClient = new TcpClient(); Debug.WriteLine("Starting connect to server"); tcpClient.BeginConnect("localhost", Port, new AsyncCallback(OnConnect), null); @@ -31,6 +31,7 @@ namespace Client Debug.Write("finished connecting to server"); this.tcpClient.EndConnect(ar); this.stream = tcpClient.GetStream(); + SendMessage(JSONConvert.ConstructUsernameMessage(username)); this.stream.BeginRead(buffer, 0, buffer.Length, new AsyncCallback(OnReadComplete),null); } @@ -100,11 +101,13 @@ namespace Client public void SendMessage(byte[] message) { + Debug.WriteLine("[CLIENT] sending message " + Encoding.ASCII.GetString(message)); stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWriteComplete), null); } private void OnWriteComplete(IAsyncResult ar) { + Debug.WriteLine("[CLIENT] finished writing"); stream.EndWrite(ar); } } diff --git a/Client/ViewModels/ViewModel.cs b/Client/ViewModels/ViewModel.cs index abb89e3..c66fd15 100644 --- a/Client/ViewModels/ViewModel.cs +++ b/Client/ViewModels/ViewModel.cs @@ -18,7 +18,7 @@ namespace Client _model = new Model(); ButtonCommand = new RelayCommand(() => { - Client client = new Client(); + }, true); _lobbies = new List(); diff --git a/Client/Views/LoginScreen.xaml.cs b/Client/Views/LoginScreen.xaml.cs index 76a20f0..7dfe537 100644 --- a/Client/Views/LoginScreen.xaml.cs +++ b/Client/Views/LoginScreen.xaml.cs @@ -26,8 +26,8 @@ namespace Client.Views private void Button_EnterUsername(object sender, RoutedEventArgs e) { - User user = new User(usernameTextbox.Text, 0, false); - Client client = new Client(); + User user = new User(usernameTextbox.Text); + Client client = new Client(user.Username); data.User = user; data.Client = client; diff --git a/Client/Views/MainWindow.xaml b/Client/Views/MainWindow.xaml index b3221df..68bf586 100644 --- a/Client/Views/MainWindow.xaml +++ b/Client/Views/MainWindow.xaml @@ -47,7 +47,7 @@