Basic principles for feeding a toddler are:
You provide a selection of food that is overall a balanced diet.
You have no say about which parts of that selection he chooses to put in his mouth.
You don't comment on, praise, reward or express disappointment about what he chooses to eat.
You don't have to give him what he wants.
Don't add treats to make up for what he hasn't eaten.
Don't make getting sweet food a reward for eating savoury. That just makes the savoury seem less attractive and the sweet food even better.
Being hungry when a mealtime comes round can make food more appetising and it isn't child abuse.
It's fine to offer a snack before bed if he hasn't eaten his evening meal.
If he can't manage a cup without spilling it, find something he is happy to drink from that has a lid. It could be a sports bottle if he doesn't like the sippy cup.
Try very hard not to get too emotionally invested in what he eats. The more you try to be in control, the more stressed you will both be around food and he will always win.