GriefPrevention- Community Input
I recently found this particular sub, and while I have a lot of feedback on GriefPrevention on the devbukkit page, I thought it would be useful to directly ask the community here, what they think of some of the things I have been adding since I was added to the project slated for the next build, as well as directly "trawl" for possible ideas on other features that can be used to make the plugin more useful. This includes particularly features that administrators found lacking from the plugin that have caused them to move to other solutions, or features that are present but they would like to be able to disable or configure better :) Now onto the changes I've already made:
One of the biggest changes I've made from the current release version (7.7) is to completely redo how configuration is done. This is a rather large change and will no doubt result in a few groans, but one of the things I really did not like about it's previous setup was that it simply didn't provide any customization on a world-specific basis. I rewrote a lot of the code in order to allow World-specific configurations, and now most configuration options (the ones that make sense to configure per-world) are now in a separate File for each World. This has another advantage for things like MystCraft and other mods/plugins that create worlds, since it's possible to have a 'default' configuration for new worlds, and then after they are created they can be customized.
I've also reworked some of the configuration options to have more... well, options. For example, it is now possible to configure the use of Lava Buckets, Water Buckets, Wither Spawning, Iron Golem Spawning, etc. by toggling options of whether they can spawn above ground and below ground inside and outside claims, for example:
LavaBuckets:
Wilderness:
AboveSeaLevel: true
BelowSeaLevel: false
Claims:
AboveSeaLevel: true
BelowSeaLevel: true
Behaviour: None
It's still quite a WIP. Basically this configuration allows the placement of lava above sea level but not below sea level outside claims, and anywhere inside a claim that is owned. the "Behaviour" option here allows different settings, such as requiring access, requiring owner, etc. In this case since the default behaviour only allows placement by people with build trust, the above/below option only applies to that. Other Behaviours can be set to ForceDeny or ForceAllow and disregard claim rules.
This 'snippet' is very much the same for many other options. I've been refactoring some of the other present options to provide this granularity, and it's gone rather well.
So what is this post for? Well, I don't actually run any servers myself, so I can only really go with "what sounds like a good idea"; for example, world-specific configurations seems like a no-brainer feature- but since I don't run a server with GP except for testing purposes I don't have the real-world experience using the plugin or dealing with Griefing issues that many admins here likely have, so I'm looking for input on some of the new stuff I've added:
eg. Sieges. Currently, all Animals are "invincible" in a claim and other players cannot damage them. Naturally, this causes problems during a siege, as another user on this reddit has posted- Wolves are invincible. My current idea is to simply allow Wolves and other tamed animals to become damagable and killable during a Siege, but without server admin experience I don't know how this might be exploited to cause more problems than it solves.
Another siege related feature I've added is a capability to allow an attacker(s), after winning a siege, to open and loot a configurable number of chests, and take whatever they want. I've been also considering a related option that limits specifically now many stacks or specific items a attacker can take. But don't want to go overboard. One interesting thing is that this could result in infighting from raiding parties; f or example if only one chest can be opened, if the Defender is killed, then the raiding parties can only open one chest total (not one chest each). One can imagine selfishness and infighting or disagreements breaking out among the attackers if they are a loose group, which could introduce some interesting emergent group-based fracturing. This is of course just me waxing about possibilities. I think this option could be very useful to allow "raiding" type gameplay in a PvP environment, which is not quite as easy with the current version. It also encourages "hiding" the more valuable items in chests in a claim, too, or placing them behind more advanced mechanisms to keep even winning siege attackers from getting at your valuable items, tricks like placing empty chests with diamond/gold etc item frames to trick attackers into using up their chest looting count, etc. Of course the default is to allow 0 chests to be opened, which is of course the current setup. Since I'm just basing this off my relatively limited experience playing as a player and what would be interesting to have, I'm looking for more Admin/upper-level opinions on this feature and any problems it might cause.
I also find myself "griefing" on the server I play by shooting cats and wolves that somebody has left outside their claim. I've been considering a way to combat my evil ways, but I don't know how to do this in a way that isn't easily exploitable. I was considering preventing Tamed Animals from being damaged if the person attacking them is not the owner and the Tamed Animal is not aggro. I think this should prevent exploitation, but perhaps Admins can provide some ideas that show that assumption to be wrong. I originally thought to prevent damage to tamed animals owned by players that aren't online, but that has the issue that a player can logoff while their wolves are aggro against somebody and the wolves will become invincible.
TL;DR: GriefPrevention Maintainer wants some Admin and player feedback on what can be added or changed to make the plugin better or resolve issues
Thanks :)
Posted May 31, 2013, 8:53 PM UTC · edited
I use Grief Prevention to its limits on a hardcore PvE server and this is what personally bothers me:
/trappedmore frequently by allowing 0.1 to mean 6 minutes. I know you don’t want to change format value and break old configs… or maybe you could do auto-update and turn 1 into 60 minutes? This is a no-brainer as I think my players told me that relog allows them to use/trappedwithout cooldown.PS: Pet peeve: Please change
GriefPreventionDatatoGriefPrevention. I think it’s the only plugin that forces the jar to be displayed before the folder. :)Thanks :)
That's a good one, I know that Villagers are susceptible to damage from Zombies/Monsters in admin claims, but I didn't even know they would be invincible otherwise. I'll probably make this an option (GriefPrevention.ZombieSiegeDamageinClaims)? I can imagine other plugins like GriefPreventionFlags adding more specific functionality. (It might already, in fact)
Actually, it's fully possible to see who is doing the trampling. Again: great little change, easy to do but adds polish- exactly the type of feedback I'm looking for :). GriefPrevention.Claims.Trample = [true|false] perhaps? Could even expand that to allow configuration of what can trample crops; maybe players can't, but monsters and animals can? etc. Seems like overkill for such a simple feature but my thought process is to simply give admins the tools they need to get the functionality they want, rather than try to dictate through the plugin how they "should" run their server, type thing. There is already a setting for creatures, but seems like an ideal option to expand.
Funny you mention this, actually, when I was refactoring and saw the current CooldownHours setting I thought to myself "why only allow it to be set by the hour?". For breaking configs, I actually have no problem with it if we get some improved functionality, and I'm basically breaking all the configuration options for 7.8 anyway since they are becoming world specific configurations (eg. not in config.yml). Perhaps the cooldown option could simply be changed to minutes instead of hours? That could work. Being able to relog to use trapped I'm going to class as a bug and look into though, Thanks for that tidbit!
I've partly addressed this in my recent work, due to some similar notes about how annoying it is. It is now possible to disable it completely so it never shows, or to configure the number of blocks between when the message is shown. The permission node idea is interesting too, and could be useful.
I fixed the shearing, but didn't even know about the other two- definitely a todo before the next release :)
For the configuration folder, I noticed that as well. Actually, come to think of it, changing it for the next release makes a lot of sense since a lot of the configuration data will be changed to support world-specific configuration. Obviously the existing folder can be renamed or copied to a GriefPrevention folder.
Like I say, I have no qualms about breaking compatibility with older stuff if it adds useful features. The one thing I'm careful for is of course compatibility with other Plugins that hook into GP. Of course, it's best not to break config's for no good reason, but I don't like keeping silly configurations around for compatibility purposes because it just makes everything a big mess; best to break it once and clean house rather than have to explain why options don't do anything or don't make sense.
THANK YOU very much for your feedback, I really do appreciate it :)
I think you allow mobs to trample crops now. Ideally, players would be able to trample their own crops, but not in claims they don’t have build permission in.
We use GP’s API but we don’t look into its config file (for example using our own config to set
InvestigationTool: STICKagain).Oh, and the biggest problem of all, I totally forgot about it:
I expanded it in my working copy so it uses a config group like the LavaBuckets example in the OP. Ideally the desired setup would be possible by changing Behaviour to "RequireAccess" or "RequireBuild" and setting both the claim booleans to true. (With wilderness options being configured however desired). While I was at it I added the same sections for Sheep Shearing, Dyeing, and Bone meal. It's a bit silly that you can configure bone meal usage inside and outside claims above below sea level and requiring access levels inside a claim, but more configurability isn't bad unless you force people to do it. (it defaults to inside claims with trust).
I have removed pretty much every single public config_ field from the main plugin class and moved it to a separate configuration class- any plugin that accessed (or changed) those will break and will require changes with 7.8.
The subclaim deleting issue is odd, because it looks like it only cleans up liquids when the claim is a top-level claim. Perhaps it's related to Auto Nature restore or another similar option?
I just had an idea… what if you allowed not a minimum claim size (which is always a square) but minimum claim blocks? So if I have it set to 25, it wouldn’t force me to make 5×5 but for example 3×9 (2 blocks more, but still not below 25). Does it make any sense?
Yep! Just provide both options, and have 0 indicate the limit isn't in effect.