Hello and Welcome to Location Watchdog!
Location Watchdog is the new frontier in fixing grief before it's reported, tracking players' whereabouts, and maintaining justice. Do you frequently use CoreProtect or LogBlock? If so, you likely understand that both use something called a MySQL database. This is a large "file" to which data can be written quickly, easily, and safely. It can then be retrieved in just seconds. Location Watchdog uses the same principle to log player locations. Every 'x' number of seconds, LW will log the location of every player online to a MySQL database. Then, as soon as a server staff runs a certain command, he or she can view every location ever logged for a player. Continue reading to see why this is useful, all of LW's features, and more.
Why should I install Location Watchdog?
There are many situations in which you may need to see a players locations since the dawn of your server (or the installation of LW). For instance, a player reports a grief. Using a great plugin like CoreProtect or LogBlock, you fix the grief and/or restore stolen items. Great! You've fixed a player's playing experience, and probably banned the griefer. But what's to say the griefer hasn't gone about raiding and griefing other builds? Using Location Watchdog, you can trace the griefer's locations to any other place he may have hit.
In another instance, you're concerned a player hasn't taken the time to have a look at your server's rule board. You go to the rule board, execute the inspector command, and look for any location markers near the board. See that, in fact, they have read the rules and they have no excuse for a crime they have just committed that you have just tracked with Location Watchdog.
These are just some basic examples of Location Watchdog bringing justice to a regular server. Use your imagination, think about all the times it could be useful... and remember: Locations are only logged after LW is installed. Right now, you're criminals could be roaming about breaking the rules, and their locations can't be logged because you have yet to install Location Watchdog.
When LW was being planned, I took my imagination and flew with it. You can see what Location Watchdog packs in a small .jar file below.
- Location markers. When viewing tracking players, each location will be marked with a glowstone block atop a nether brick fence post, allowing easy viewing at night or day.
- Per-Player-Checks. You can check one player at a time, check multiple, and remove other players' markers as needed.
- Privacy. When viewing locations, only you can see location markers. Nobody else needs to know what you're doing, except the console.
- Lightweight. LW uses a little over 300 lines of code in the main class, the only class with the exception of Husky's MySQL bridge.
- Configurable. You can configure essential things, like the how often to log locations and the MySQL database credentials.
- Ease-of-Use. LW isn't very complicated when it comes to commands and permissions (see below).
Commands and Permissions
- /lw: Displays a basic info page. Explains LW's purpose on your server.
- /lw help: Displays all commands.
- /lw get: Displays a link to this Bukkit page for those interested in LW.
- /lw version: Displays the version of the currently installed Location Watchdog.
- /lw check <player>: Shows location markers for a player. Name must be exact.
- /lw done <player>: Hides location markers for a player. Name must be exact.
Configuring Location Watchdog isn't a tough task. After dropping the plugin file in your plugins folder and reloading/restarting your server, a folder called "LocationWatchdog" should generate in your plugins folder. In the folder, you'll find a config.yml file. Just to be safe, stop your server. After your server has been stopped, open the .yml file and change the number under "Interval" to however many seconds you want between logging each player's location. For servers with lots of players on at a time, keep this number above 15, perhaps around 20. If you don't have many players on at a time, you can have it as low as you want, around 5 is recommended. It is critical that you choose this number carefully. If you're rapidly logging 100s of players' locations at once, your MySQL server and Minecraft server could both crash, along with Java.
After you've set your interval, change all the fields below to match the credentials of your MySQL server. Once you've done that, you can start you server. A new table in your database will be created called "lw". This is where all the data will be logged to. As soon as a player is online and your interval gets to 0, all player(s) online will have their location logged. The interval will reset and count down until it hits 0 and will log everyone's location again. This process is infinite as long as your server is online.
Bugs, Precautions, and Issues
LW has no known bugs yet, but you can always report them through a ticket, in the comments, or on the GitHub page (see below). LW has a known conflict with chests. If a player was once standing where a chest is know and you check his or her location, the marker will appear correctly, but when you hide the marker and the block reverts to a chest, the chest will likely be empty. However, CoreProtect and LogBlock should still be able to see transactions. If this happens to you, log out and log back in to the server and it should restore itself.
WARNING! Location Watchdog DOES NOT and likely NEVER WILL use UUIDs for logging reasons. It is HIGHLY RECCOMMENDED that you install a plugin that logs all UUIDs and IPs a UUID has signed in with so you can see if someone came onto someone elses account and broke rules. The alternative is to ban the last known IP of the player, but even that could have you banning the wrong player.