public void OnDataArrival(ENetPacket *packet, Channel channel) { var data = new byte[(int)packet->dataLength]; Marshal.Copy(packet->data, data, 0, data.Length); if ((int)packet->dataLength >= 8 && Encrypt) { data = LoLServer.BlowFish.Decrypt(data); } LittleEndianReader reader = new LittleEndianReader(data); Message message = ProtocolManager.BuildMessage(this, channel, data); ProtocolManager.HandleMessage(message, this); }
public bool handlePacket(ENetPeer *peer, ENetPacket *packet, Channel channelID) { if ((int)packet->dataLength >= 8) { if (game.getPeerInfo(peer) != null) { BlowFishCS.BlowFishCS.Decrypt1(game.getBlowfish(), (byte *)packet->data, new IntPtr((int)packet->dataLength - ((int)packet->dataLength % 8))); } } var data = new byte[(int)packet->dataLength]; Marshal.Copy(packet->data, data, 0, data.Length); return(handlePacket(peer, data, channelID)); }
static extern int native_packet_resize(ENetPacket *packet, IntPtr dataLength);
static extern void native_packet_destroy(ENetPacket *packet);
public override int packet_resize(ENetPacket *packet, IntPtr dataLength) { return(native_packet_resize(packet, dataLength)); }
public static extern void enet_host_broadcast(ENetHost *host, byte channelID, ENetPacket *packet);
public static extern int enet_packet_resize(ENetPacket *packet, IntPtr dataLength);
public override void host_broadcast(ENetHost *host, byte channelID, ENetPacket *packet) { native_host_broadcast(host, channelID, packet); }
public abstract int packet_resize(ENetPacket *packet, IntPtr dataLength);
public abstract void packet_destroy(ENetPacket *packet);
public static int enet_packet_resize(ENetPacket *packet, IntPtr dataLength) { return(Platform.packet_resize(packet, dataLength)); }
public static void enet_packet_destroy(ENetPacket *packet) { Platform.packet_destroy(packet); }
public abstract void host_broadcast(ENetHost *host, byte channelID, ENetPacket *packet);
public static void enet_host_broadcast(ENetHost *host, byte channelID, ENetPacket *packet) { Platform.host_broadcast(host, channelID, packet); }
public override int peer_send(ENetPeer *peer, byte channelID, ENetPacket *packet) { return(native_peer_send(peer, channelID, packet)); }
public static int enet_peer_send(ENetPeer *peer, byte channelID, ENetPacket *packet) { return(Platform.peer_send(peer, channelID, packet)); }
static extern int native_peer_send(ENetPeer *peer, byte channelID, ENetPacket *packet);
public abstract int peer_send(ENetPeer *peer, byte channelID, ENetPacket *packet);
public static extern void enet_packet_destroy(ENetPacket *packet);
static extern void native_host_broadcast(ENetHost *host, byte channelID, ENetPacket *packet);
public static extern int enet_peer_send(ENetPeer *peer, byte channelID, ENetPacket *packet);
public override void packet_destroy(ENetPacket *packet) { native_packet_destroy(packet); }
unsafe bool handleGameNumber(ClientInfo client, ENetPeer *peer, ENetPacket *packet) { var world = new WorldSendGameNumber(1, client.getName()); return(PacketHandlerManager.getInstace().sendPacket(peer, world, Channel.CHL_S2C)); }
/// <summary> /// Initializes a new packet based on a native C packet. /// </summary> /// <param name="packet">The native C packet.</param> public Packet(ENetPacket *packet) { _packet = packet; }