My suggestion would be:
Ryzen 5 3600
16GB DDR4 3200 RAM (or faster)
B450 Motherboard
Right now is a bad time to upgrade your GPU. There's both (rumored) new graphics cards coming from Nvidia, and AMD this summer/fall.
This is true. You want to wait for the new GPUs so that you either get one of the new ones (and have good but buggy performance that increases with driver updates), or get an older one (basically current gen) for less.
You should definitely upgrade your CPU. IMO the best, and only, option to look at is a Ryzen 3000 CPU. Your motherboard is very important when choosing a new CPU. The B450 is close to the cheapest chipset that will support the appropriate Ryzen 3000 series CPU. It is most suitable for anything below and including the 3600x.
I also recommend Ryzen 3600.
GTX 1050 TI is still very good for BF4, and weather or not you should upgrade this depends on what (newer) games you want to play, and if you care about the graphics settings in those games.
16GB of ram is plenty, and you don't need any more than that unless you are a streamer or do large CAD projects. Of course, if you upgrade to a 3000 CPU (which I
highly recommend), then you really do want at least 3000MHz RAM. How exactly you want to upgrade your ram depends on your motherboard. All full ATX b450 MBs should have 4 memory slots, two sets of dual channel. I would recommend getting a two 3200MHz 4GB stick set, for a total of 8GB. If you find that you need more, then get the same set again.
I recommend HyperX Fury 8GB 3200MHz DDR4 CL16 DIMM.
...these are what I can see from nvidia. really don't know how to check what other parts are in, still pretty new to all of this.
You can check out more about your hardware in the Performance tab in
Task Manager, or by downloading
Speccy.