summaryrefslogtreecommitdiff
path: root/NetServer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'NetServer.cs')
-rw-r--r--NetServer.cs33
1 files changed, 13 insertions, 20 deletions
diff --git a/NetServer.cs b/NetServer.cs
index 875ddfd..f275164 100644
--- a/NetServer.cs
+++ b/NetServer.cs
@@ -50,13 +50,13 @@ class Server
NetDataWriter writer = new();
- if (info.Type == PacketType.UserInfo) {
- user.Username = dataReader.GetString();
- if (user.Username.Length > 40) user.Username = user.Username[0..40]; //Clamp username length
- user.Nekoname = dataReader.GetString();
- if (user.Nekoname.Length > 40) user.Nekoname = user.Nekoname[0..40]; //Clamp nekoname length
- user.SpriteSheet = dataReader.GetBytesWithLength();
+ if (info.Type == PacketType.UserInfo)
+ {
+ user.UserInfo = dataReader.RawData;
+ new PacketInfo(PacketType.UserInfo, user.Id).Serialize(user.UserInfo);
+ string Username = dataReader.GetString().LimitLength(40);
+
if (!user.Initialized) {
//Send ID
writer.ResetWithInfo(new PacketInfo(PacketType.UserId, -1));
@@ -64,25 +64,17 @@ class Server
fromPeer.Send(writer, DeliveryMethod.ReliableUnordered);
user.Initialized = true;
- Console.WriteLine($"{fromPeer.EndPoint} is {user.Username}!");
+ Console.WriteLine($"{fromPeer.EndPoint} is {Username}!");
foreach (ServerUser toSend in users.Values)
{
if (!toSend.Initialized || toSend == user) continue;
- //Send all current users spritesheets to this user.
- writer.ResetWithInfo(new PacketInfo(PacketType.UserInfo, toSend.Id));
- writer.Put(toSend.Username);
- writer.Put(toSend.Nekoname);
- writer.PutBytesWithLength(toSend.SpriteSheet);
- fromPeer.Send(writer, DeliveryMethod.ReliableUnordered);
-
- //Send all current users this users spritesheet
- writer.ResetWithInfo(new PacketInfo(PacketType.UserInfo, user.Id));
- writer.Put(user.Username);
- writer.Put(user.Nekoname);
- writer.PutBytesWithLength(user.SpriteSheet);
- toSend.Peer.Send(writer, DeliveryMethod.ReliableUnordered);
+ //Send all current users info to the new user.
+ fromPeer.Send(toSend.UserInfo, DeliveryMethod.ReliableUnordered);
+
+ //Send all previous users this new users info
+ toSend.Peer.Send(user.UserInfo, DeliveryMethod.ReliableUnordered);
}
}
}
@@ -115,6 +107,7 @@ class ServerUser(int id, NetPeer peer) : User(id), IDisposable
{
//Network
public readonly NetPeer Peer = peer;
+ public byte[]? UserInfo;
public void Dispose()
{