using System; using System.Collections.Generic; using Crysome.Common.Network; using Crysome.Common.Network.Packets; namespace Crysome.Client.Network; public class PacketChannel { public readonly Dictionary> Handlers; public PacketChannel() { Handlers = new Dictionary>(); } public void HandlePacket(CrysomeClient client, IPacket packet) { foreach (KeyValuePair> handler in Handlers) { if (handler.Key.Equals(((object)packet).GetType())) { handler.Value(client, packet); break; } } } public void RegisterHandler(Action handler) { if (Handlers.ContainsKey(typeof(TPacket))) { Handlers.Remove(typeof(TPacket)); } Handlers.Add(typeof(TPacket), handler); } }