Therefore, you must learn from your mistakes. You have to understand that no matter who you get along with, you must establish a model of getting along with him. This mode of getting along should be fair and equal, and neither party can pay too much.
In communication, it is best to have a certain bottom line and moral standards. You don't violate the other side's bottom line, and the other side won't offend you. Respect is mutual, so is kindness to others. If you are kind to others, others will be kind to you. But if you are kind to others and you don't ask them to be kind to you, then they won't be so kind to you, or even unfair to you.
Because everyone is greedy, he will gradually get used to the feeling that the other party pays more for himself and less for himself, so the interests in society will gradually blur his morality, so that he thinks all this is right, so it is very important to establish an equal mode of getting along.
I suggest that when you get along with him in the future, if you pay, it implies that you need something in return, and he will understand. If he is stingy with your efforts, then you should count what you have done to him and tell him that theoretically, you are the one who has paid more for him in friendship, and he should treat you better.
You can't change him overnight, but change him over time and let him gradually adapt to the equal relationship with you. If he doesn't change and is still selfish to you, then this friend can break up.