I would suggest changing the IPacketHandler.onPacketData method so that the implementor gets the player entity that sent the packet. Currently, one could obtain it from the NetworkManager instance passed, but that doesn't work platform-independantly. As one transaction only affects exactly one player, it could easily be extended to
public void onPacketData(NetworkManager network, EntityPlayer player, String channel, byte[] data);