Connect up reserved packets

This commit is contained in:
derek.holloway committed 2026-07-08 14:00:33 -07:00
1 parent b439805f3e
commit 6931846a64
2 files changed
+41 -3

No files matched your search

+32
View File
@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Net; using System.Net;
using Mistox.ResevedPackets;
namespace Mistox.Client { namespace Mistox.Client {
@@ -24,6 +25,24 @@ namespace Mistox.Client {
Alive = true; 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 event Action onServerConnected;
public void InvokeOnServerConnected(){ public void InvokeOnServerConnected(){
Alive = true; Alive = true;
@@ -37,7 +56,20 @@ namespace Mistox.Client {
public event Action<dynamic> onDataReceived; public event Action<dynamic> onDataReceived;
public void InvokeOnReceived(dynamic DataPacket){ public void InvokeOnReceived(dynamic 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); onDataReceived?.Invoke(DataPacket);
break;
}
} }
public event Action<mUDPClient> onUserDisconnected; public event Action<mUDPClient> onUserDisconnected;
+9 -3
View File
@@ -3,15 +3,21 @@ using Mistox.Attributes;
namespace Mistox.ResevedPackets { namespace Mistox.ResevedPackets {
[mPacket(0xFF)] [mPacket(0xFF)]
public class EntityObject { public class EntityPacket {
public ushort ObjectId { get; set; } public ushort ObjectId { get; set; }
public byte[] InnerPayload { get; set; } public byte[] InnerPayload { get; set; }
} }
[mPacket(0xFE)] [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 UserName { get; set; }
public string Token { get; set; }
} }
} }