[Release] SpongeGeoIP

As part of learning Sponge’s API, I’m writing small modules to familiarize myself with how things work. This is a working plugin under SpongeAPI 1.0, and can be loaded into Sponge servers running in the dev environment.

SpongeGeoIP provides an announcement on connect of what country the player is connecting from, as well as logging it to console. The future plans of the plugin is an API for querying the player’s location, with an optional city level resolution from an external GeoIP2-Lite database.

The .jar can be downloaded from http://orthanc.localecho.net:8080/job/SpongeGeoIP/ , while its repository lives at GitHub - kenneaal/SpongeGeoIP: A GeoIP country (and optionally city-level) provider/announcer for Sponge servers

1 Like

Nice plugin. But that name tho :p.
(BTW your Jenkins is dead)

Unless you are working/at a part of the Sponge Team, I’d advise you to not include Sponge in the name as it can have the possibility of confusing people.

Any more confusing than ForgeEssentials is for Forge, or BukkitHTTPD, BukkitSpeak or any of the plethora of Bukkit plugins that have the name Bukkit in them? :wink:
The Jenkins is up and running, and can’t see that it’s been down either.

1 Like

Personally as a fan of privacy and security, I’m not a huge fan of somebody logging me without me knowing, maybe the plugin should let users know that their location has been logged in an in-game message, or have the ability to opt-out. Also you could be facing some legal issues by disclosing their physical location. Further more any server operators would have to let their users know in their privacy policy.

Frankly the term GeoIP makes me uncomfortable, call me paranoid. Also on the legal part DON’T quote me directly on that, I am by no means an international or telecommunications law expert.

1 Like

Using one’s IP to identify their /country/ (and nothing more specific than that) is fully legal by all laws. If it wasn’t legal, the information wouldn’t be made public.

Yes country level identification is legal, I just don’t know how all countries view city level identification.

The plugin does not provide the server owners with any more information than the IP address the user has already does. Most reverse DNS names provide at least the country (in the US, more commonly state level, such as xxx.hsd1.ca.comcast.com), and finding the location of that IP takes ten seconds to do through a browser.
Given that the plugin announces in a broadcast “Player Xxxx comes from [Country]”, the player can be considered notified.

There are zero legal issues using GeoIP data to resolve location, even city level location. Privacy laws do not consider these pieces of information personal because they are shared with a great number of people. I suppose technically, if you live on Pitcairn Islands (TLD .pn), you could argue that it would be relatively easy to figure out which of the 67 people who live there you are, but then we’re splitting straws.

1 Like

Also Essentials had this same feature using the same data, just pointing that out.

1 Like

You missed the point of the plugin as kenneaal said ‘As part of learning Sponge’s API, I’m writing small modules to familiarize myself with how things work’. Seems like a valid reason to me even if essentials can already do that.

I do’t belive that @The_Doctors_Life’s statement was directed at the author, but more likely at the people with privacy concerns. But Idk…

1 Like

Yep, I’m just wanted to point out that essentials offered the same feature with the same MaxMind data.

:tophat: Very cool and I am very interested in seeing how this plugin adapts.
As @cae1136 demonstrated some might not like being “tracked.” I for one am fine with it, but this is not the place for that type of discussion. It might serve you well to perhaps code a warning about this to server owners/devs.

Well, given that the plugin serves only one purpose and that purpose is described in the mod information, having the code warn them that it’s doing what its purported to do seems perhaps a bit redundant? I’ll clarify what it does even further in README.md though.

Sounds great, funnily enough I didn’t think about It that way.

Code on my friends!