Skip to content

A simple API to return lat/long data for online players in a game world. Holds data in memory, and updates on scheduled intervals to prevent flood-abuse. Example map provided. Intended for use with WoW private servers.

License

henhouse/live-player-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Live Player Map

Online map example

This little program will provide a simple API to return all latitude/longitude locations of currently online players on a game realm (designed for use with WoW private servers). No IP/account references are sent from the API to the client, just coordinates. Additionally supplied is an index.html file to display these locations on a map, given the user supplies his or her own Mapbox API credentials.

To prevent abuse, it will check every minute to update its data, not on each GET request. There are no data stores, but instead caches the data in memory as it is assumed the program will be left running continuously. If used on a very large server with thousands of users needing to be queried frequently, a state service like MongoDB could easily be implemented, but it seems unnecessary. With the ability to query 150 IPs per minute, and with caching, it should keep up relatively well.

Requirements

  1. Golang 1.x (built on 1.9)
  2. An MySQL account table with online accounts (real or fake). TrinityCore/MaNGOS/OregonCore, etc. Literally could be used for anything with online account tables with IP addresses in them, not just WoW servers.

Configuration

  1. Rename config.go.dist to config.go
  2. Edit newly renamed config.go file to set its MySQL credentials to the game server you're querying online accounts for.
  3. (Optional) To use an example map, edit the index.html file and change the Mapbox credentials to your own. Change localhost:8080 to a new URL if you are running the Go program from a different location than localhost.

Usage

  1. Run go get in the Terminal/Command Prompt inside the program directory.
  2. Run go build && ./live-player-map in the Terminal (go build && ./live-player-map.exe for Windows)
  3. Run index.html in the browser with updated credentials to view data.

Notes

This program utilizes the free ip-api API to lookup IP address information. Due to its limitation of 150 requests per minute, we have an internal counter to not exceed that threshold, and once hit, waits 1 minute before resuming.

About

A simple API to return lat/long data for online players in a game world. Holds data in memory, and updates on scheduled intervals to prevent flood-abuse. Example map provided. Intended for use with WoW private servers.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published