summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Main.cs5
-rw-r--r--MouseLocal.cs2
-rw-r--r--Net.cs5
-rw-r--r--NetClient.cs7
-rw-r--r--NetServer.cs7
-rw-r--r--OnekoLocal.cs2
-rw-r--r--OnekoOnline.csproj2
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 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="LiteNetLib" Version="1.1.0" />
+ <PackageReference Include="LiteNetLib" Version="1.2.0" />
<PackageReference Include="Raylib-cs" Version="6.0.0" />
<EmbeddedResource Include="nekos\oneko.png" />