Heimdall anti-grief is a plugin that watches new players when they first login to your server and looks for griefing patterns. If the griefer does enough damage to go over your defined threshold, they will be automatically banned and their damage rolled back. This is accomplished through hooking a block logging plugin, the first of which will be LogBlock.
Primarily I'm writing this for myself, so I am not necessarily interested in a bunch of feature ideas (sorry). My goal with this plugin is to automate the work that my mods have to do when they follow griefers around invisible and then LogBlock verify and ban them for griefing. If I can weed out 80%+ of the griefers automatically, then this plugin has accomplished what I set out to do.
Heimdall Beta Released!
Heimdall is now in beta, you can click on the Files tab to download v0.6, when Bukkit mods finish the file approval. Here are a few notes about this beta release:
- It is available only in passive "notify-only" mode. This allows your mods to receives notifications when griefing is occuring.
- It depends upon LogBlock to be useful at all (LogBlock queries are used to establish block ownership)
- It will hook LWC (if you use it) and automatically ignore anything related to public chests
- This is beta, there is very little documentation available right now. But if you're willing to play around with it a bit or know how to open a plugin.yml to find out what commands are available, it's very usable in it's current state
The author of Heimdall has been using this plugin since it was first written in early January of 2012. It has transformed the way mods deal with griefers on our server. We used to go invis and follow new players around to watch for bad behavior, which was a full time job considering 7 of 10 people who login immediately set to griefing. Now, the mods continue their normal activity and if someone starts griefing, they get Heimdall alerts and respond to it then.
Heimdall is part of my "defense-in-depth" strategy against griefers. I employ the following plugins as part of that strategy:
- LogBlock: Rollback any griefer damage. Heimdall also uses this to determine block owners.
- Honeypot: weed out griefers automatically, works amazingly well.
- LoginLimiter: I have my server setup to not allow new player logins when no mods are on. When the last mod logs out for the night, the server goes into "auto new player lockdown". Additionally, this plugin lets me limit the guest:mod ratio so a single mod doesn't get overwhelmed with too many guests.
- Heimdall: Since LoginLimiter means a mod is always on when new players are, Heimdall fills in to notify the mods of any griefing behavior by monitoring all guest activity. It additionally logs this behavior in an easy-to-access log that can be reviewed using the '/hdgl' command (Heimdall GriefLog). In the future, of course, Heimdall will be able to respond and ban automatically.
- Download Heimdall.jar, copy into your plugins directory
- Restart Bukkit or live-load using PlugMan, PluginReloader or similar
- Edit config.yml and engine configs to your liking
- Restart/reload for config changes to take effect
With plugins that deal with every block break, performance is always a consideration. I'm keenly aware every new plugin I install can slow down my server, so when writing my own, I go out of my way to make sure they have the smallest performance impact possible. For this plugin, that is achieved by using a circular buffer for block events (this means new objects don't have to be allocated every time a block is broken/placed) and then the buffer is processed asynchronously in a separate thread, meaning for anyone with at least 2 cores, this plugin will have almost zero impact on your server performance.