DecoyBlocks
DecoyBlocks ALPHA is a plugin designed to catch and appropriately deal with griefers automatically.
Originally conceived of by FlamingArmour in a request thread; this plugin allows you to specify certain blocks called "decoys" that, when broken, trigger a logging system for automatically catching and dealing with griefers.
Code was written from scratch by me, with some help from the community on file serialization.
Features!
Quote:
- Persistant storage of specified decoy blocks.
- Full logging of who broke which decoy, and when.
- Fully configureable automatic detention and / or punishment of people who have broken decoys.
- 3 Punishment thresholds, completely configureable.
- Punishments currently comprise of:
- Kill - Instantly deals the offender 9001 damage.
- Jail - Teleports the offender to the specified location. (Set via coordinates in config.)
- Kick - Instantly kicks the offender from the server.
- Ban - Instantly bans the offender from the server.
- IPBan - Instantly bans the offender and associated IP-Address.
- CraftBukkitUpToDate compatibility.
- Anonymous statistic reporting to mcstats.org!
Commands & Permissions
Decoys are set and removed by right-clicking the block with a stick.
- /db decoys - Gives you a list of all the decoys on this server.
- decoyblocks.decoy - Required to use /db decoys and to set or remove decoys.
- /db log - Enables you to see a block's log by placing a log block. Use again to disable.
- /db log all - Displays all log entries, in chronological order.
- decoyblocks.log - Required to use /db log.
- /db teleport <player> - Teleports you to the nearest open space by the last broken decoy (by the player, if specified).
- decoyblocks.teleport - Required to use /db teleport.
- /db <search / lookup> <player> - Gives you a list of all decoys broken by the specified player.
- decoyblocks.search - Required to use /db search or /db lookup.
- /db restore - Restores all decoys to their original state.
- decoyblocks.restore - Required to use /db restore.
- /db clear <log / decoys> - Completely clears out either the log or the decoys.
- decoyblocks.clear - Required to use /db clear. This is a dangerous command, and should be highly restricted.
- decoyblocks.clear.log - only allows access to /db clear log.
- /db save - Saves the decoys and log to their respective .dat files.
- decoyblocks.save - Required to use /db save.
- /db reload - Saves everything and reloads the config.
- decoyblocks.reload - Required to use /db reload.
Upcoming Features
- Ability to search an area for broken decoys.
- Ability to freeze players.
To anyone else having the error I experienced, let your config regenerate. Also, the variables in the command punishment, like {player}, aren't working, so don't try them for now. Just thought I'd point that out to anyone who updates to v0.4.
Unforuntately I'm now getting errors when attempting to use any commands from this plugin. Here's the error:
21:04:01 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'db' in plugin DecoyBlocks v0.4 ALPHA (1C3)
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:165)
at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:378)
at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:757)
at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:722)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:715)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:180)
at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93)
at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:550)
at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
Caused by: java.lang.NullPointerException
at Fishrock123.DecoyBlocks.DecoyBlocks.onCommand(DecoyBlocks.java:86)
at org.bukkit.co
In-game it displays the standard:
An internal error occurred while attempting to perform this command
<reply 504754="">
Okay, thanks.
@Hoot215
http://dev.bukkit.org/server-mods/decoyblocks/pages/main/configuration/
(I need to find a good way to auto-update the config header.)
Also: All changes: https://github.com/Fishrock123/DecoyBlocks/commit/c0753945e313c882910bcb4ca7286e9f32497b52
<<reply 499601="">>
Would you mind explaining the new changes in v0.4 and how to use them please? I've downloaded the new version, but nothing seems to have changed.
@Junrall
All that should be coming in v0.4! :)
(Except the groups part, you will have to program it what command to execute.)
I like this plugin!
A few things that would push DecoyBlocks over the top is:
Thanks!
<<reply 495742="">>
Ah I guess I misread. I thought I saw you say something like "Left click to remove". My mistake.
@Hoot215
You right click to remove it too. Remove and place are both right click.
I should make it so Admins don't accidentally ban themselves. :s
<<reply 495651="">>
I suppose so, but it'd be a nice feature. Also, there seems to be a conflict with Creative mode. For example, I go to protect a building and accidentally click the wrong block. I then left click to remove it, however that bans me for griefing. This lead to a funny story about how one of my Admins had to un-ban me after I accidentally banned myself.
EDIT: I suppose one good thing came out of that though. The banning works perfectly! LOL
@Hoot215
Uh, no. Right-clicking with a stick doesn't normally do anything anyways?
<<reply 495566="">>
Right, thanks! So is there a command to toggle this?
@Hoot215
Right-Click the block with a stick to add it to the decoys, click again to remove it. That simple.
<<reply 493327="">>
So then how do you set decoys then? I can't seem to figure that out.
@Hoot215
Because of how the config reads stuff; but that is a silly excuse. I may'swell make it read a config section (map of practically infinite values).
Thanks for testing it! :D
AutoRestore is a tad tricky to implement well, that's why it wasn't in 0.3.
@Hoot215
Not sure if I should post a ticket for this, but is it just me, or do some of the commands not work at all? I use /db decoys, and I'm sure I have the permissions node decoyblocks.decoy, but nothing happens. I don't get any message at all.
Here's a list of commands that don't seem to work:
All of the other commands work fine, though, however I can't really do much with this plugin with the above commands not working.
Just wondering, why make the punishment limit 3? Why not infinite? Also, I'm about to test this plugin out. I'm probably going to make a house of diamond blocks near the spawn, with a sign saying "Don't grief". And, I've set my only punishment to 1,Ban. I'll report any bugs I find.
Also, can't wait for the custom command feature! That will be incredibly useful. I hope the AuotRestore feature gets implemented sometime soon, too.
@seanmrice
Will be added in v0.4, thanks for the suggestion!
it would be cool if you could configure punishments to run a command as if from the server console, so we could /lb rollback {player} world {world} ....I would seriously love that
@Tauryuu
Possibly. Unknown at this time.