I spent enough hours debugging my own code, so I DO know how fragile a system can be.
BUT. If this:
Code:
if (person.distance <= 20)
{
kick(person);
};
cannot be changed into this:
Code:
//if (person.distance <= 20)
//{
kick(person);
//};
Then the person who wrote that engine needs to be fired immediately. I am not saying it's how the code looks like, any equivalent of the above code can work. If it's a function, make it return true no matter the distance. If it's a function that is used to calculate distance elsewhere, remove the check and just set the result for kicking the player to true.
I am talking about cases where removing an if-check makes sense, not about ones that make the whole thing collapse. It doesn't make sense to talk about those cases.
Name me one example of how kicking a player could be implemented that makes removing the distance check impossible. Until then, my opinion won't change. The excuse of being unable to remove distance/online check is BS.