diff --git a/Shared/Behaviours/BallBehaviour.cs b/Shared/Behaviours/BallBehaviour.cs index fdeecba..969ed16 100644 --- a/Shared/Behaviours/BallBehaviour.cs +++ b/Shared/Behaviours/BallBehaviour.cs @@ -32,7 +32,7 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe { ResetBall(); RigidBody.Velocity = launchDirection * Speed; - networkServer?.SendToClient("*", new BallUpdatePacket(this)); + networkServer?.SendToAll(new BallUpdatePacket(this)); } public void ResetBall() @@ -41,7 +41,7 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe tweenManager.CancelTween(networkTween); Transform.Position = Vector2D.Zero; RigidBody.Velocity = Vector2D.Zero; - networkServer?.SendToClient("*", new BallResetPacket()); + networkServer?.SendToAll(new BallResetPacket()); } public void PhysicsUpdate(float delta) @@ -59,7 +59,7 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe RigidBody.Velocity = information.Detected.Transform.Position.FromTo(information.Detector.Transform.Position).Normalized * RigidBody.Velocity.Magnitude; else RigidBody.Velocity = RigidBody.Velocity.Reflect(information.Normal); - networkServer?.SendToClient("*", new BallUpdatePacket(this)); + networkServer?.SendToAll(new BallUpdatePacket(this)); } public BallBehaviour() { } diff --git a/Shared/Behaviours/PaddleBehaviour.cs b/Shared/Behaviours/PaddleBehaviour.cs index 13da621..11439dc 100644 --- a/Shared/Behaviours/PaddleBehaviour.cs +++ b/Shared/Behaviours/PaddleBehaviour.cs @@ -75,7 +75,7 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp isUpPressed = packet.IsUpPressed; isDownPressed = packet.IsDownPressed; - networkServer?.SendToClient("*", new PaddleKeyStatePacket(this)); + networkServer?.SendToAll(new PaddleKeyStatePacket(this)); } public void OnClientPacketArrived(IConnection sender, PaddleKeyStatePacket packet) diff --git a/Shared/Network/Abstract/INetworkCommunicator.cs b/Shared/Network/Abstract/INetworkCommunicator.cs index 8a63940..d2f4280 100644 --- a/Shared/Network/Abstract/INetworkCommunicator.cs +++ b/Shared/Network/Abstract/INetworkCommunicator.cs @@ -32,5 +32,6 @@ public interface INetworkCommunicatorServer : INetworkCommunicator INetworkCommunicatorServer Start(int port, int maxConnectionCount, string? password = null); - INetworkCommunicatorServer SendToClient(string to, T packet) where T : class, new(); + INetworkCommunicatorServer SendToClient(IConnection connection, T packet) where T : class, new(); + INetworkCommunicatorServer SendToAll(T packet) where T : class, new(); } diff --git a/Shared/Network/LiteNetLib/LiteNetLibServer.cs b/Shared/Network/LiteNetLib/LiteNetLibServer.cs index b4ea3c7..551ae8d 100644 --- a/Shared/Network/LiteNetLib/LiteNetLibServer.cs +++ b/Shared/Network/LiteNetLib/LiteNetLibServer.cs @@ -50,19 +50,24 @@ public class LiteNetLibServer : LiteNetLibCommunicatorBase, INetworkCommunicator return this; } - public INetworkCommunicatorServer SendToClient(string to, T packet) where T : class, new() + public INetworkCommunicatorServer SendToClient(IConnection connection, T packet) where T : class, new() { - bool isBroadcastToAll = to.CompareTo("*") == 0; - netDataWriter.Reset(); netPacketProcessor.Write(netDataWriter, packet); - if (isBroadcastToAll) - Manager.SendToAll(netDataWriter, DeliveryMethod.ReliableOrdered); - else if (Manager.ConnectedPeerList.FirstOrDefault(p => p.Id.ToString().CompareTo(to) == 0) is NetPeer netPeer) - netPeer.Send(netDataWriter, DeliveryMethod.ReliableOrdered); - else - throw new($"Peer {to} couldn't be found."); + if (Manager.ConnectedPeerList.FirstOrDefault(p => p.Id.CompareTo(connection.Id) == 0) is not NetPeer netPeer) + throw new($"Peer {connection} couldn't be found."); + + netPeer.Send(netDataWriter, DeliveryMethod.ReliableOrdered); + + return this; + } + + public INetworkCommunicatorServer SendToAll(T packet) where T : class, new() + { + netDataWriter.Reset(); + netPacketProcessor.Write(netDataWriter, packet); + Manager.SendToAll(netDataWriter, DeliveryMethod.ReliableOrdered); return this; }