Ported from https://github.com/VOREStation/VOREStation/pull/6451
Code done by Aronai
Adds IP reputation checking to detect Tor, proxy, and VPN usage and block it if so configured.
It's disabled by default, but if enabled the default settings are to block all VPN/Proxy/Tor to connect unless the player has been a player for 5 days on a 'normal' connection so that people who legitimately sometimes use a VPN for *reasons* can continue to do so. You can also have it check reputations and just log bad ones, without disconnecting the users.
Whether or not it allows 'existing' players, the length of time they must have played, what's considered a 'bad' IP score, etc, are configurable. You **must** put an e-mail address if you use this, otherwise the service will likely ban you. This is the e-mail address they will send e-mails to if you're performing too many checks or they need to speak to you.
Adds config options, here's a paste from the example config:
```
## IP Reputation Checking
# Enable/disable IP reputation checking (present/nonpresent)
#IP_REPUTATION
# Set the e-mail address problems can go to for IPR checks (e-mail address)
IPR_EMAIL whatever@whatever.com
# Above this value, reputation scores are considered 'bad' (number)
IPR_BAD_SCORE 1
# If you want the people disconnected. Otherwise it just logs. (present/nonpresent)
IPR_BLOCK_BAD_IPS
# If players of a certain length of playtime are allowed anyway (REQUIRES DATABASE) (present/nonpresent)
IPR_ALLOW_EXISTING
# And what that age is (number)
IPR_MINIMUM_AGE 5
```
As you can see, it's off by default, so if you're a downstream this won't change anything for you unless you decide to turn it on. If you want the features, just copypaste the new config lines out of the example and uncomment IP_REPUTATION.
Downstreams can replace the /client/proc/update_ip_reputation() proc with your own, if you'd like to substitute your own service! Just set the client's ip_reputation var at the end of your proc.
Capitalizes all the words in the not_included section so that they actually get removed from the name check system.
Names can't be lowercase so there is no point in keeping the previous version.
* Fixes chairs/beds/etc acting as handcuffs.
It's been at least 7 years without anyone noticing a broken feature with a false comment so the unintentional "balancing" caused by this may have ingrained a standard some folks would rather keep in, but that kind of nerfs have proper ways of implementing at their own appropriate places in the code.
Basically this just lets folks use hands when buckled. May also have a side effect of allowing self-surgery if it never had a proper prevention method implemented. Keeps an exception for xeno nests tho. Any other seat has no reason to be handcuffs.
* Fixes another thing causing chairs to incapacitate
"Are you seated" and "Are you incapacitated" should not be used as the same thing yet here we are.
I should probably also do a refactor to remove all the inappropriate use of canmove var. Seriously, even the specifically cartridge exclusive PDA menu buttons are using that for what???
So, seems that there's been issues of running out of spray bottles sometimes. So here we are, printable in the autolathe for 300-375 glass/steel each.
Changelog Note:
- Allows printing of a spray bottle in the Autolathe.
* Adds bagels and decaf coffee
* Remaps the coffee shop to be a bit more appealing to visit.
* Map merge fuckery.
* Map merge fuckery. also changelog.
* took out blank line just in case
* why did the dmi do that
* revert unintended revert