diff options
Diffstat (limited to 'NetServer.cs')
| -rw-r--r-- | NetServer.cs | 33 |
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() { |
