GeoBlock is a very simple Geo Blocking plugin for PocketMine-MP. Everytime a player join your server his IP will be checked against external APIs so we can get his country of origin and block or allow his login.
Please read the "API Limits" and "IMPORTANT" tab before using this plugin.
This plugin uses two APIs. One main API (ip-api.com) and another for failover (extreme-ip-lookup.com). ip-api.com has a hard limit of 150 requests per minute and extreme-ip-lookup.com has a limit of 50 request per minute. This means that you have 200 requests per minute available for you.
Note: ip-api.com WILL block your IP if you send more than 150 requests per minute and you will need to unban your IP here or that will leave you with only 50 requests per minute from extreme-ip-lookup.com.
One request = one player logging in on the server. If you have a big server (more than 150 players logging in per minute) please consider actually paying for some GeoIP API and edit the code to suit your new paid API
Permission | Description |
---|---|
geoblock.bypass | Players with this permission will bypass Geo Block |
Configuration is pretty straightforward.
Setting | Description |
---|---|
kickMsg | Message for kicked player |
action | deny or allow |
allow = only players from “countries” will be able to join | |
deny = every player will join except players from “countries” | |
countries | Countries to allow/deny on the server. Uppsercase comma separated |
Example: [BR, NZ, CN, RU, US] | |
fail | deny or allow. What to do if all APIs fail to return a country? |
allow = players with invalid country code will be able to join the server | |
deny = players with invalid country code WILL NOT be able to join the server | |
failMsg | Message to show players kicked due to API fail |
Again, I'd like to remind that if you get many (over 150) players logging in per minute it's VERY recommended that you pay for a good unlimited GeoIP API, there are many on Google, search for one that best suit your needs and budget. You will also have to edit the code to suit your new API.
Keep in mind this plugin is still in BETA and has not been rigorously tested
What happens if all APIs go offline or my IP gets blacklisted?
I don't know. I could not simulate this situation, but the chances of you getting blocked by both API providers are very low
Does this detect VPNs?
No. Players with a proxy or VPN can easily bypass this plugin
Why did you choose these APIs over X API?
I didn't want to play favorites and the APIs I have choosen have pretty decent usage limits