summaryrefslogtreecommitdiff
path: root/NetServer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'NetServer.cs')
-rw-r--r--NetServer.cs18
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()
{