diff options
Diffstat (limited to 'NetServer.cs')
| -rw-r--r-- | NetServer.cs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/NetServer.cs b/NetServer.cs index a0910ba..c2c626a 100644 --- a/NetServer.cs +++ b/NetServer.cs @@ -51,12 +51,14 @@ class Server if (info.Type == PacketType.OnekoSpritesheet) user.SpriteSheet = dataReader.GetRemainingBytes(); else if (info.Type == PacketType.Username) user.Username = dataReader.GetString(64); - if (user.ExchangedData && !user.sentId) { - NetDataWriter writer = new(); + NetDataWriter writer = new(); + + if (user.ExchangedData && !user.Initialized) { //Send ID + writer.ResetWithInfo(new PacketInfo(PacketType.UserId, -1)); writer.Put(user.Id); fromPeer.Send(writer, DeliveryMethod.ReliableUnordered); - user.sentId = true; + user.Initialized = true; Console.WriteLine($"{fromPeer.EndPoint} is {user.Username}!"); @@ -83,6 +85,15 @@ class Server toSend.Peer.Send(writer, DeliveryMethod.ReliableUnordered); } } + + if (info.Type == PacketType.OnekoTargetPosition || info.Type == PacketType.MousePosition) { + writer.ResetWithInfo(new PacketInfo(info.Type, fromPeer.Id)); + writer.Put(dataReader.GetRemainingBytes()); + foreach (ServerUser toSend in users.Values) { + if (!toSend.ExchangedData || toSend == user) continue; + toSend.Peer.Send(writer, DeliveryMethod); + } + } }; Console.WriteLine("Server Initialized!"); @@ -103,7 +114,6 @@ class ServerUser(int id, NetPeer peer) : User(id), IDisposable { //Network public readonly NetPeer Peer = peer; - public bool sentId = false; public void Dispose() { |
