Minecraft – How to find a thief (ideally without Bukkit)

minecraft-java-edition

We're trying to catch a thief on our server. Bukkit isn't a good option since it's a hosted server, so I'm hoping for advice that doesn't requires Bukkit plugins. In the worst case I could probably move the world files somewhere that Bukkit is an option.

There are only 7 suspect players. INVEdit crashes when opening some players' inventories, presumably because we're running 1.7.4 and INVEdit hasn't been updated recently. So I used the trick of temporarily hijacking other players' [username].datfiles, but the stolen items aren't in anyone's inventory.

A note in case someone else doesn't know this technique:

  1. Look in the world's /players directory.
  2. Back up your own [username].dat file.
  3. Copy a suspected player's [username].dat file, renaming it to your user name.
  4. Launch the game and check the inventory as your own.
  5. When you're done investigating, restore your own [username.dat] file.

This probably means the stolen items are in a hidden chest, since the technique above lets you inspect players' inventories and Ender chests.

Are there time-reasonable (i.e., not requiring hours of tedious work) techniques for finding thieves after the fact?

And if not after the fact, are there ways to set up a trap that will help identify thieves in the future, again without requiring hours of work? For example, I've wondered whether naming items could somehow help to track down thieves if you could search through the World data file. Unfortunately, this related question hasn't turned up a solution yet for searching world data for a specific item or item type.

Best Answer

Unfortunately, it appears the answer is "you can't, or at least not without spending a prohibitive amount of time on the investigation, and even then you won't be sure of anything."

If someone finds a solution that's less time-intensive, I'll happily accept it instead of my own bleak conclusion. But after a lot of research I suspect there isn't one. I've updated the question to clarify that solutions ideally won't require hours of tedious manual work or monitoring.

I appreciate the answers that have been submitted so far. Unfortunately, manually searching everywhere for a stolen item would be too time consuming, and even upon finding it you couldn't be sure who put it there; it would be easy for a thief to frame someone else. And watching a potential crime spot continually until the crime happens would take too long since there are several possible griefers, many locations that could be griefed, and thefts are often spread out in time.

So for the time being the answer seems to be:

  1. Use the techniques that I outlined in my question, whether using InvEdit to inspect player inventories, or else manually copying their [username].dat files to inspect inventories and Ender chests. If it's in their inventory or Ender chest, there's no question who took it.
  2. Or give up and install Bukkit or Spigot and an anti-griefing plugin like WorldGuard or Prism.

We switched hosts and installed Spigot and Prism, and it was 100% worth the effort. Spigot runs even faster than Vanilla Minecraft did, and Prism is awesome for tracking down offenders and reverting their evil deeds.