From 3f4fe74715124357ba3341e635fdb2bda3fcd92d Mon Sep 17 00:00:00 2001 From: Sarah B Date: Mon, 22 Jan 2024 18:22:31 -0800 Subject: Updated LiteNetLib to 1.2.0 --- Main.cs | 5 ++++- MouseLocal.cs | 2 +- Net.cs | 5 +++++ NetClient.cs | 7 ++++--- NetServer.cs | 7 ++++--- OnekoLocal.cs | 2 +- OnekoOnline.csproj | 2 +- 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Main.cs b/Main.cs index ef901b5..b1793fd 100644 --- a/Main.cs +++ b/Main.cs @@ -40,7 +40,10 @@ static class OnekoOnline Server = new(port, Config.GetValue("ServerMaxUsers", 32)); Client = new("127.0.0.1", port, serverPassword); } else { - Client = new(Config.GetValue("ServerIP", "pond.sarahduck.ca"), port, serverPassword); + string Address = Config.GetValue("ServerIP", "pond.sarahduck.ca"); + + if (string.IsNullOrEmpty(Address)) Console.WriteLine("Server IP empty or invalid, you're offline."); + else Client = new(Address, port, serverPassword); } Net.Client.UserConnected += OnekoNet.SpawnNetNeko; Net.Client.UserConnected += MouseNet.SpawnNetMouse; diff --git a/MouseLocal.cs b/MouseLocal.cs index 6a6bc95..a1e38ac 100644 --- a/MouseLocal.cs +++ b/MouseLocal.cs @@ -23,7 +23,7 @@ class MouseLocal : Mouse bool clicked = Raylib.IsMouseButtonPressed(MouseButton.Left); if (clicked && Visible) Clicked?.Invoke(this); - if (Visible && OnekoOnline.Client!.Connected) { + if (Visible && OnekoOnline.Client?.Connected == true) { NetDataWriter writer = new(); writer.Put(new PacketInfo(PacketType.MouseState, OnekoOnline.Client.Id)); writer.Put(Position); diff --git a/Net.cs b/Net.cs index 8ade4e8..694b4b8 100644 --- a/Net.cs +++ b/Net.cs @@ -46,6 +46,11 @@ public static class NetExtensions float Y = reader.GetFloat(); return new Vector2(X, Y); } + + public static void ResetReader(this NetDataReader reader) + { + reader.SetPosition(PacketInfo.SizeOf+1); + } } public enum PacketType : byte diff --git a/NetClient.cs b/NetClient.cs index 5146a0a..ce70d91 100644 --- a/NetClient.cs +++ b/NetClient.cs @@ -24,7 +24,9 @@ class Client public Client(string ServerAddress, int port, string ServerPassword) { - if (ServerAddress == "") throw new Exception("Server Address invalid!"); + if (string.IsNullOrEmpty(ServerAddress)) throw new Exception("Server Address invalid!"); + if (string.IsNullOrEmpty(UserName)) throw new Exception("Invalid Username!!"); + if (UserName.Length > 40) throw new Exception("Username too long!"); Listener = new(); NetClient = new(Listener); @@ -100,8 +102,7 @@ class Client if (reader.AvailableBytes > 500) return; - NetDataReader newReader = new(reader.GetRemainingBytes()); - PacketRecived?.Invoke(newReader, from, info.Type); + PacketRecived?.Invoke(reader, from, info.Type); }; } diff --git a/NetServer.cs b/NetServer.cs index 925567b..9f4017a 100644 --- a/NetServer.cs +++ b/NetServer.cs @@ -25,12 +25,12 @@ class Server }; Listener.PeerConnectedEvent += peer => { - Console.WriteLine($"New connection from {peer.EndPoint}!"); + Console.WriteLine($"New attempted connection from {peer}."); users.Add(peer.Id, new ServerUser(peer.Id, peer)); }; Listener.PeerDisconnectedEvent += (peer, info) => { - Console.WriteLine($"{peer.EndPoint} Disconnected! Reason: {info.Reason}"); + Console.WriteLine($"{peer} Disconnected! Reason: {info.Reason}"); users.Remove(peer.Id); NetDataWriter writer = new(); @@ -53,6 +53,7 @@ class Server if (info.Type == PacketType.UserInfo) { string Username = dataReader.PeekString(40); + if (string.IsNullOrEmpty(Username)) return; writer.ResetWithInfo(new PacketInfo(PacketType.UserInfo, user.Id)); writer.Put(dataReader.GetRemainingBytes()); @@ -65,7 +66,7 @@ class Server fromPeer.Send(writer, DeliveryMethod.ReliableUnordered); user.Initialized = true; - Console.WriteLine($"{fromPeer.EndPoint} is {Username}!"); + Console.WriteLine($"{fromPeer} Connected as {Username}!"); foreach (ServerUser toSend in users.Values) { diff --git a/OnekoLocal.cs b/OnekoLocal.cs index e963740..71387e1 100644 --- a/OnekoLocal.cs +++ b/OnekoLocal.cs @@ -55,7 +55,7 @@ class OnekoLocal : Oneko Sprite = Animation.GetFrame(Frame); - if (OnekoOnline.Client!.Connected) { + if (OnekoOnline.Client?.Connected == true) { NetDataWriter writer = new(); writer.Put(new PacketInfo(PacketType.OnekoState, Id)); writer.Put(Position); diff --git a/OnekoOnline.csproj b/OnekoOnline.csproj index 98caaf9..2e9f999 100644 --- a/OnekoOnline.csproj +++ b/OnekoOnline.csproj @@ -13,7 +13,7 @@ - + -- cgit