From 6931846a644e31f7a9f82f689ee29044fa713adf Mon Sep 17 00:00:00 2001 From: "derek.holloway" Date: Wed, 8 Jul 2026 14:00:33 -0700 Subject: [PATCH] Connect up reserved packets --- MistoxServer/Client/MistoxClient.cs | 34 +++++++++++++++++++++++++- MistoxServer/mPacket/ResevedPackets.cs | 12 ++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/MistoxServer/Client/MistoxClient.cs b/MistoxServer/Client/MistoxClient.cs index eae8b50..4466ffa 100644 --- a/MistoxServer/Client/MistoxClient.cs +++ b/MistoxServer/Client/MistoxClient.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Concurrent; using System.Net; +using Mistox.ResevedPackets; namespace Mistox.Client { @@ -24,6 +25,24 @@ namespace Mistox.Client { Alive = true; } + public void UserConnected(UserConnectedPacket packet) { + mUDPClient user = new mUDPClient(this, packet.ClientIPAddress, packet.ClientPort) { + UserName = packet.UserName + }; + clientConnections[packet.UserName] = user; + InvokeOnUserConnected(user); + } + + public void UserDisconnected(UserDisconnectedPacket packet) { + mUDPClient copy = clientConnections[packet.UserName]; + clientConnections[packet.UserName].Alive = false; + clientConnections[packet.UserName].Dispose(); + clientConnections[packet.UserName] = null; + InvokeOnUserDisconnected( copy ); + } + + // Events + public event Action onServerConnected; public void InvokeOnServerConnected(){ Alive = true; @@ -37,7 +56,20 @@ namespace Mistox.Client { public event Action onDataReceived; public void InvokeOnReceived(dynamic DataPacket){ - onDataReceived?.Invoke(DataPacket); + switch (DataPacket as object) { + case UserConnectedPacket packet: + UserConnected(packet); + break; + case UserDisconnectedPacket packet: + UserDisconnected(packet); + break; + case null: + Console.WriteLine("Received a null packet."); + break; + default: + onDataReceived?.Invoke(DataPacket); + break; + } } public event Action onUserDisconnected; diff --git a/MistoxServer/mPacket/ResevedPackets.cs b/MistoxServer/mPacket/ResevedPackets.cs index c6cda0c..d646557 100644 --- a/MistoxServer/mPacket/ResevedPackets.cs +++ b/MistoxServer/mPacket/ResevedPackets.cs @@ -3,15 +3,21 @@ using Mistox.Attributes; namespace Mistox.ResevedPackets { [mPacket(0xFF)] - public class EntityObject { + public class EntityPacket { public ushort ObjectId { get; set; } public byte[] InnerPayload { get; set; } } [mPacket(0xFE)] - public class ConnectionObject { + public class UserConnectedPacket { + public string UserName { get; set; } + public long ClientIPAddress { get; set; } + public int ClientPort { get; set; } + } + + [mPacket(0xFD)] + public class UserDisconnectedPacket { public string UserName { get; set; } - public string Token { get; set; } } } \ No newline at end of file