#nullable enable namespace ShrinkNetwork { public enum ShrinkNetworkTransportEventType { Connected = 0, Disconnected = 1, Packet = 2 } public sealed class ShrinkNetworkTransportEvent { public ShrinkNetworkTransportEventType Type; public long SessionId; public string RemoteAddress = string.Empty; public byte[] PacketData = System.Array.Empty(); public static ShrinkNetworkTransportEvent Connected(long sessionId, string remoteAddress) { return new ShrinkNetworkTransportEvent { Type = ShrinkNetworkTransportEventType.Connected, SessionId = sessionId, RemoteAddress = remoteAddress }; } public static ShrinkNetworkTransportEvent Disconnected(long sessionId, string remoteAddress) { return new ShrinkNetworkTransportEvent { Type = ShrinkNetworkTransportEventType.Disconnected, SessionId = sessionId, RemoteAddress = remoteAddress }; } public static ShrinkNetworkTransportEvent Packet(long sessionId, byte[] packetData) { return new ShrinkNetworkTransportEvent { Type = ShrinkNetworkTransportEventType.Packet, SessionId = sessionId, PacketData = packetData }; } } }