Grief Prevention
AUTOMATICALLY PREVENTS ALL FORMS OF GRIEF, including build/break, theft, spam, fire, spawn camping, lava dumping, chat trolling, advertising and more, so you don't have to undo any damage after the fact. It even teaches players how to use it so you don't have to! No configuration or database required. Stop responding to grief and prevent it instead. Grief Prevention will solve your grief problems without requiring you to manage a roster of trained administrators, juggle 10 different anti-grief plugins, take away cool standard game features, publish a training manual / tutorial for players, or add explanatory signs to your world. You can also choose to integrate PvP elements into build design to finally get a PvP experience befitting a sandbox game about creative building.
Grief Prevention stops grief before it starts automatically without any effort from administrators, and with very little (self service) effort from players. Solve all your grief problems with a single download, no database, and no configuration step.
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC channel for help (please state your question and exercise patience if you use this option).
Downloads for older Minecraft Versions
You may also view recent update notes on Github
The Manual
Feature List
Yes, everything is customizable.
- No database or world backups required.
- Extremely efficient CPU / RAM usage.
- Land claims are easy to manage.
- Players create and manage their own land claims, so you don't have to do it for them.
- New players get automatic claims around their first chests so they're protected even if they don't know how to create land claims yet.
- Players who ask for help in chat get an instant link to a demonstration video.
- Resizing claims and creating new claims is done with ONLY the mouse, no slash commands (slash commands are also available).
- When a player appears to be building something nice outside his claim, he's warned and shown his claim boundaries.
- Claim boundaries are easy to see, and don't require any client-side mod installation.
- Extremely easy-to-remember, single-parameter slash commands for giving other players permissions.
- Claim subdivision and granular permissions are available to organize towns and cities. Watch this video.
- It's IMPOSSIBLE to grief a land claim. Watch this video.
- No building or breaking.
- No stealing from ANY containers.
- No sleeping in beds.
- No button/lever usage.
- No adjusting redstone repeaters or other configurable blocks.
- No pushing blocks in with pistons.
- No pulling blocks out with pistons.
- No TNT damage (including cannons).
- No creeper damage.
- No explosive damage from other plugins, like Extra Hard Mode or Magic Spells.
- No enderman/silverfish block changes.
- All doors may be automatically locked (optional, see config file).
- No killing or luring animals away.
- No stealing water (e.g. buckets).
- No trampling crops by players, animals, or monsters.
- No building overtop, all claims reach to the max build height.
- No placing or breaking paintings / item frames / armor stands, etc.
- Fluids will not flow into a claim from outside.
- No placing blocks via TNT/Sand/Gravel cannon.
- Pets and death loot are protected.
- Players can't pick up what another player dropped on death without permission.
- All types of pets are protected everywhere, even outside of land claims (can be configured per-world).
- Excellent anti-spam protection
- Warns, then mutes, then may kick or ban spammers (configurable - you choose).
- Most spammers get only one message out before they're muted.
- Blocks server advertising (IP addresses).
- Blocks repeat message spam.
- Blocks ASCII art (ex. Nyan Cats) spam.
- Blocks similar message spam.
- Blocks unreadable (gibberish) message spam.
- Blocks CAPS.
- Blocks macro spam (very different messages in quick succession).
- Blocks login/logout spam, even when the spammer has multiple accounts.
- Blocks death spam.
- Blocks bot team spam.
- Blocks slash command spam, including /tell, /emote, and any more you add.
- Wilderness Protection and Rollback
- Fire doesn't spread or destroy blocks.
- Creepers and other explosions don't destroy blocks above sea level.
- TNT doesn't destroy blocks above sea level.
- No planting trees on platforms in the sky ("tree grief").
- Instant, point and click nature restoration for not-claimed areas. Watch this video.
- Insanely easy and fast fixes for penises, swastikas, and anything else unsightly.
- Point at what you don't like and click, and it's fixed. Even from far away.
- Never accidentally changes blocks inside land claims.
- No need to investigate who built it, who broke it, or when they did it.
- Doesn't matter if the griefer built with "natural" blocks, it will still be fixed.
- No database.
- No backups.
- No chunk regeneration (it's dangerous for technical reasons).
- Fixes bad chunk generations, like floating islands. It will be better than new.
- Fills holes, even next to water to correct big spills.
- Smooths noisy terrain.
- No griefer construction is safe. If it's unnatural enough to be noticeable by players, it will be removed or filled-in.
- Land claims can't be used as a griefing tool.
- It's impossible to get a player "stuck" inside a land claim.
- Land claims beyond the first require a golden shovel.
- Minimum claim size prevents sprinkling small claims to annoy other players.
- Max claim allowance grows with time played on the server, and can't be cheated by idling.
- A simple administrative slash command will instantly remove all of a griefer's claims, no matter where they are.
- Catches clever griefers.
- Enhances the /ban command to ban ALL a griefer's accounts (not just his IP address).
- Logs sign placements.
- /SoftMute command to shut down chat trolls without them knowing they're beaten.
- Abridged chat logs make reviewing what happened while you were away super-quick and easy.
- Automatically mutes new-to-server players who use racial or homophobic slurs.
- PvP Protections.
- When PvP is off, no setting fire or dumping lava near other players.
- Absolutely bullet-proof anti-spawn-camping protection including bed respawns, which requires no configuration.
- No logging out, stashing items, or using plugin teleportation to escape combat.
- Optional siege mode, to answer players who hide in their claimed houses to avoid combat.
- Supports your server growth.
- Permit players to exchange server currency for claim blocks (requires configuration and other plugins).
- Grant claim blocks automatically for votes, donations, etc (console command provided, other plugins required).
Please Vote for Grief Prevention
I've also posted Grief Prevention on the Spigot site, where plugins are ranked based on reviews. If you love GP, please take a couple of minutes to give GP your rating and leave a short review. Better rating and positive reviews will help server owners who look for plugins on the Spigot site make the safe choice (GP) instead of downloading something sketchy or incomplete. :) Thanks so much for all your support!
http://www.spigotmc.org/resources/griefprevention.1884/
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC chat channel for help (please state your question and exercise patience if you use this option).
-
View User Profile
-
Send Message
Posted Oct 28, 2013@BC_Programming
The issue is still happening. I have also discovered that any player can edit any claim with the shovel whether they are trusted or not.
They do not have the permission for ignore claims.
This running the most recent recommended build for bukkit (I also ran the most recent dev build which is 2 builds ahead before this switched to see if it made any diff) Also Running the most recent Dev-Build of GriefPrevention.
-
View User Profile
-
Send Message
Posted Oct 28, 2013@Senophoe
I'm the only person currently maintaining GriefPrevention, that's fine. But I also have a Full-time Programming Job (which is awesome), So it's more a case of getting time to work on stuff. Some weekends I can work on stuff, others I can't. I was planning to actually rewrite the main page specifically for 7.8 (Though not changing it as is, just preparing for it being provided as a beta), but then I realized it was 3AM Monday Morning and just didn't have the time.
Some weekends I can put in quite a bit of time. Other weekends I'm tied up with requests and WO's from my Work. Since there is absolutely no consistency in how much time I'm able to put in, any ETA would be irresponsible.
-
View User Profile
-
Send Message
Posted Oct 28, 2013Any ETA in an official release of 7.8?
Hurts my feelings knowing the latest released version is from april 5.
-
View User Profile
-
Send Message
Posted Oct 28, 2013@ManBeastPigDev See: link here...
I think it's probably what's described there as EnableWorldWatcher
-
View User Profile
-
Send Message
Posted Oct 28, 2013What does this setting do in the global config.. EnableMoveWatcher: false
-
View User Profile
-
Send Message
Posted Oct 28, 2013Hello. I want to have different settings depending on rank (using PEX). Like one rank only being able to build 5 claims and another rank 10 claims. Stuff like that. Is that possible?
-
View User Profile
-
Send Message
Posted Oct 27, 2013As claim area expands in both width and length, as the area grows larger it takes more and more additional claimblocks to size it up again by 1%. That would make a player feel like he's progressing less and less in the long run with BlocksAccruedPerHour as growth feels like it's ground to a halt. It's like an automatic limit to how much of a map any player will seem to be able to occupy. That may be desirable, or it may not be. To claim a really large area would take a longer wait than the server's life. Perhaps it's a good idea to optionally make BlocksAccruedPerHour a function of the total claimblocks a player already has so it takes that into account at least a little bit.
The same thing happens when buying claimblocks with currency...at some point you just can't afford to grow 1%. Perhaps make ClaimBlocksPurchaseCost a function (reverse) of how much land+claimblocks the player already has, too.
Just throwing it out there, haven't given it very long thought so make your own minds up. :) Don't really good customers often get a discount?
If I want my players playing 14 hours a week, to after roughly 4 months be able to claim a 512x256 area, by BlocksAccruedPerHour alone, I have to set it to 585 claimblocks per hour (roughly 24x24). That gives new players far too much land too early. The default is 100/hour.
-
View User Profile
-
Send Message
Posted Oct 27, 2013@Luficer
I cannot replicate either problem. I've pushed what I have in case I inadvertently fixed it with changes I've made in the meantime. It should also add Sign Location information and reset the colours after each line, though I've not confirmed that to actually be the case.
I had FireSetting, FireSpread, and FireDestroys, as well as the Flint and Steel Rule, set to allow in the wilderness and set a forest ablaze and had no exceptions. I jumped in a pit of creepers that were half inside a claim (with blast Prot IV) and I had no exception occur; I then did the same with TNT, and had no exceptions also.
-
View User Profile
-
Send Message
Posted Oct 27, 2013I'm getting the same errors on build 182 with explosion and block ignite events.
Also, would be nice to fix a small issue with the sign eaves drop while I'm thinking about it. In short, there's no color/format reset between line delimiters.
And here's the errors for the events on build 182 (Still using the same bukkit version):
[SEVERE] Could not pass event EntityExplodeEvent to GriefPrevention v7.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R3.Explosion.a(Explosion.java:220) at net.minecraft.server.v1_6_R3.World.createExplosion(World.java:1631) at net.minecraft.server.v1_6_R3.WorldServer.createExplosion(WorldServer.java:843) at net.minecraft.server.v1_6_R3.EntityTNTPrimed.explode(EntityTNTPrimed.java:82) at net.minecraft.server.v1_6_R3.EntityTNTPrimed.l_(EntityTNTPrimed.java:62) at net.minecraft.server.v1_6_R3.World.entityJoinedWorld(World.java:1354) at net.minecraft.server.v1_6_R3.World.playerJoinedWorld(World.java:1335) at net.minecraft.server.v1_6_R3.World.tickEntities(World.java:1223) at net.minecraft.server.v1_6_R3.WorldServer.tickEntities(WorldServer.java:480) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:574) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.NullPointerException at me.ryanhamshire.GriefPrevention.EntityEventHandler.onEntityExplode(EntityEventHandler.java:596) at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 17 more [SEVERE] Could not pass event BlockIgniteEvent to GriefPrevention v7.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callBlockIgniteEvent(CraftEventFactory.java:676) at net.minecraft.server.v1_6_R3.ItemFlintAndSteel.interactWith(ItemFlintAndSteel.java:51) at net.minecraft.server.v1_6_R3.ItemStack.placeItem(ItemStack.java:79) at net.minecraft.server.v1_6_R3.PlayerInteractManager.interact(PlayerInteractManager.java:389) at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:630) at net.minecraft.server.v1_6_R3.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296) at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37) at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.NullPointerException at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockIgnite(BlockEventHandler.java:401) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 18 more-
View User Profile
-
Send Message
Posted Oct 27, 2013Hi, how do I set up permissions so that only certain ranks have access to this plugin?
-
View User Profile
-
Send Message
Posted Oct 27, 2013@ThisUsernameIsMine
Are you aware of these perms?
Though I am not 100% sure if they are needed for the signs, might be just for text. Are you also aware that "Rot op of ga dood" in dutch means: F off or die?
-
View User Profile
-
Send Message
Posted Oct 27, 2013Why doesn't GP show where signs are placed (world and coordinates) with sign eavesdrop enabled?
It does for the server console does, but not in-game =/ (
[INFO] [GriefPrevention] [Sign Placement] <michaelc> ;Rot op of ga ;......;dood; @ guestland(-6523104,71,-12426602)
-
View User Profile
-
Send Message
Posted Oct 27, 2013Whoah, you mentioned that perm in the private messaging conversation we had earlier about other features. It didn't stick in my brain, must be getting old.
-
View User Profile
-
Send Message
Posted Oct 27, 2013@Roenie82
griefprevention.commands.abandonclaims
-
View User Profile
-
Send Message
Posted Oct 27, 2013What about a permission for abandonclaims? I like the idea of being able to deny that. (In this case, to be able to see on dynmap which areas have already been mined dry, when players can only build/destroy in claims. When someone has the ability to /abandonclaim and move on, a new person might end up claiming the already mined dry area and find not a single diamond. That's especially unfortunate when claims cost money, and/or AbandonReturnRatio < 1.)
Regarding RealEstate, thanks for the headsup. I'll have to do some testing.
-
View User Profile
-
Send Message
Posted Oct 27, 2013I've been able to find the source of the Explosion issue. I also added a bunch of missing features (protection of flower pot contents and Ender Portal Frames). They have their own config rules. I also reworked some of the Spawn Protection and added new Configuration Options. Should drop as #182 shortly.
-
View User Profile
-
Send Message
Posted Oct 26, 2013@MinecraftLegends_us
Hi, do you have a more detailed stack trace? It could help determine the specific problem. I'll try to reproduce it also. I have some suspicions since I did make some changes to how explosions are handled in a few cases.
@Luficer
Awesome, thanks, this should be fixed in the dev build that is dropping soon.
@DarkValaMorgoth
Hi, I remember reading your previous comment and looking into it. I don't know why it was occuring but I seem to recall changing something to fix it at the time which should have dropped with #180. I'll be double-checking that today to see if the change fixed it.
@Roenie82
Actually I have GP-Real-Estate on my test server. It loads fine and I remember doing some basic testing with it a while ago and it seemed to work as far as I could tell. I'll admit I don't know much about how to use it though.
-
View User Profile
-
Send Message
Posted Oct 26, 2013GP Real Estate was last updated on May 1 2013. Someone on that page reported it does not work with GP 7.8 and from the looks of it, I doubt it will keep up with GP and Bukkit in the long run. Nothing new on its Curse page either. Is there an alternative? Is there going to be?
The GP dev builds are so much ahead of the 7.7 release that I can't and won't stick with 7.7, so I have to drop Real Estate but it is a feature that will be greatly missed.
-
View User Profile
-
Send Message
Posted Oct 26, 2013I'm getting a similar error to MinecraftLegends_us, but for the BlockIgniteEvent, using build 180 on /version: CraftBukkit version git-Bukkit-1.6.2-R1.0-9-g9cd35ee-b2908jnks (MC: 1.6.4) (Implementing API version 1.6.4-R0.1-SNAPSHOT)
This message displayed multiple times when no one but me was on a flat world map. Nether and End worlds are disabled as it's a test server only. There's nothing but glowstone, command blocks, and potentially generated structrues on this map.
19:17:23 [SEVERE] Could not pass event BlockIgniteEvent to GriefPrevention v7.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callBlockIgniteEvent(CraftEventFactory.java:661) at net.minecraft.server.v1_6_R3.EntityLightning.l_(EntityLightning.java:87) at net.minecraft.server.v1_6_R3.World.tickEntities(World.java:1161) at net.minecraft.server.v1_6_R3.WorldServer.tickEntities(WorldServer.java:480) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:574) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.NullPointerException at me.ryanhamshire.GriefPrevention.BlockEventHandler.onBlockIgnite(BlockEventHandler.java:401) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 12 more-
View User Profile
-
Send Message
Posted Oct 26, 2013This build may be broken, also getting the same error but with block ignite. Who knows what else is broken...went back to 179
Today i disabled BlockDamageCreeperExplosion and now I get an error in console:
[SEVERE] Could not pass event EntityExplodeEvent to GriefPrevention v7.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R3.Explosion.a(Explosion.java:220) at net.minecraft.server.v1_6_R3.World.createExplosion(World.java:1631) at net.minecraft.server.v1_6_R3.WorldServer.createExplosion(WorldServer.java:843) at net.minecraft.server.v1_6_R3.EntityCreeper.l_(EntityCreeper.java:102) at net.minecraft.server.v1_6_R3.World.entityJoinedWorld(World.java:1354) at net.minecraft.server.v1_6_R3.World.playerJoinedWorld(World.java:1335) at net.minecraft.server.v1_6_R3.World.tickEntities(World.java:1223) at net.minecraft.server.v1_6_R3.WorldServer.tickEntities(WorldServer.java:480) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:574) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
CB Build: 2914 Grief Prevention Build: 180