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

826
ridddle/r/flatcore•

I use Grief Prevention to its limits on a hardcore PvE server and this is what personally bothers me:

  1. Zombie sieges (those appearing in villages) can’t damage villagers. This puts the villager/zombie balance out of whack and makes all claimed villages invincible.
  2. Player crop trampling cannot be enabled – I realize you cannot check who did the trampling, but simple configuration node is all that’s needed. Players would have to build fences around their farms and that’s it.
  3. Allow to use /trapped more 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 /trapped without cooldown.
  4. Allow to toggle “Other players can undo your work…” message or don’t display it to people with large claims (or allow to skip it via permission node).
  5. Other players can bonemeal the grass, shear and dye sheep in foreign claims.

PS: Pet peeve: Please change GriefPreventionData to GriefPrevention. I think it’s the only plugin that forces the jar to be displayed before the folder. :)

3
BCProgrammingOP•

Thanks :)

  1. 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)

  2. 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.

  3. 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!

  4. 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.

  5. 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 :)

1
ridddle/r/flatcore•

Could even expand that to allow configuration of what can trample crops; maybe players can't, but monsters and animals can?

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.

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.

We use GP’s API but we don’t look into its config file (for example using our own config to set InvestigationTool: STICK again).

Oh, and the biggest problem of all, I totally forgot about it:

  1. When deleting subclaim, liquids get removed as well, although they still stay within boundaries of top level claim (so = no griefing potential).
1
BCProgrammingOP•

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.

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).

We use GP’s API but we don’t look into its config file (for example using our own config to set InvestigationTool: STICK again).

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?

1
ridddle/r/flatcore•

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?

1
BCProgrammingOP•

Yep! Just provide both options, and have 0 indicate the limit isn't in effect.

1
OriginalMadmandamNation.eu•

I don't know how you factor/code it AboveSeaLevel/BelowSeaLevel and what it would do to performance etc.

But better options for the could be to have actual min/max heights in y?

2
WayGroovywaygroovys.com•

Also not all servers have sea level at the same height. Some terrain dash control servers including mine, have to love the way to type of as well as 32.

1
BCProgrammingOP•

Already present through a SeaLevelOverride Option.

1
BCProgrammingOP•

That's an interesting idea. The best I can think of is to have a GriefPrevention.Ranges setting that contains named Ranges, for example:

GriefPrevention
    Ranges
      Above50:
        LowerLimit:50
        UpperLimit:256
      Below50:
        LowerLimit:0
        UpperLimit:49

And then the range names could be used in some way with the current permissions; eg. perhaps each group can have a set of wilderness/claim options for each range group.

I think that really complicates the configuration though, having it get range information from elsewhere. But it's an interesting idea.

1
WayGroovywaygroovys.com•

I know I'm late to the party, but I figured I'd throw in the most frequently requested ask I get regarding GP

Request cuboid based rental of spaces, with recurring prices and reverting ownership on lack of payment.

If possible.

2
baffler•

Glad you're wanting feedback. I really love this plugin for my server and I've used it since day one.

So GP is suppose to be zero effort from admins, but I've noticed some new players get confused. The auto-claim on the first chest is handy, but can be confusing. Usually players will ask "How do I claim?" and we tell them a golden shovel, right click 2 blocks to create a square claim around your property. Most of them have already put down a chest by then, so it says "Can't create a claim here because it overlaps an existing one". It would be really, really handy if it would just "consume" that existing one, since it does belong to them, and just make a bigger one. Sort of a different way to resize instead of the whole, right click on a corner thing. I think this would be an ideal way to resize that would make it easier for new players and easier for even those who know the correct way to resize as it is now. The only issue I could see is if your new claim didn't completely cover the old one, so maybe a warning saying "your new claim is smaller than the existing one you're trying to replace"?

I'd also like to see a brief intro about GP after they put down their first chest, to explain a few things. I think the biggest questions are, "How do I let my friends use my stuff?" and "What are these gold blocks and glowstone?". It would be nice to have a command to tell them to use to see the intro again too. Like /gp intro, and possibly more detailed explanations on things like /gp help trusts, and /gp help resizing, etc.

I like that there's spam protection built in with the plugin, but I never could use it since there isn't enough configuration for it. There did seem to be a lot of false positives when I used it (unless that changed in updates, I haven't used it in a long while). I'd like to be able to configure it exactly to meet my needs, I think the only config now is basically just to enable or disable it.

Allow players to use /transferclaim so they can give their claims to other players. Would like a permission for this. On my server, I have helpers, and sometimes players just don't get how to claim, so I let the helpers make the claim and transfer it to them, but apparently you have to give them griefprevention.adminclaims which lets them have access to all adminclaims stuff and I don't wanna do that, I just want to let them use /transferclaims command.

A command to give full trust to a player. I guess they way you do it now is /trust player, /accesstrust player, and /containertrust player. Would be nice to have just 1 command to do all that, maybe /fulltrust player, or similar.

The last time I checked, it's possible to kill other's animals using mcmmo abilities, I think bleed was it. I'm pretty sure I've read that the dev of mcMMO wouldn't support other plugins to prevent that, so it would be nice if you could possibly use mcMMO api to prevent that? I have no idea how much trouble it would be, but would really appreciate it cause that's one of the biggest complaints I get on my server.

1
BCProgrammingOP•

When a player says things asking about how to claim, they are already given a brief information packet. You can configure the messages in Messages.yml, as well as the Regular Expression. By default it shows the message to players when they say anything containing the word how and claim, protect, or lock. By default it links to a youtube video created by the original Author of the plugin. You can change Messages.yml entries 'SurvivalBasicsDemoAdvertisement' and 'CreativeBasicsDemoAdvertisement' So you can automate your response by changing this message to tell them to use a golden shovel to claim.

The coalescing feature is an interesting one (where you can create a claim 'around' one of your existing claims to resize it). I will probably only allow claims to become bigger- that is, all the originally claimed blocks will still be claimed) to avoid any weird corner cases.

When a player puts down their first chest it emits another message: "To claim more land, you need a golden shovel. When you equip one, you'll get more information."

(Again, this is configurable); when you equip the golden shovel it shows you the whole claim spiel, and when you create the claim it tells you how to use trust. What you're suggesting is sort of a "Help framework" which is quite a good idea anyway. Then the default messages can be changed to refer to new help commands as well, for more info.

A command to give full trust to a player. I guess they way you do it now is /trust player, /accesstrust player, and /containertrust player. Would be nice to have just 1 command to do all that, maybe /fulltrust player, or similar.

Actually, /trust does this already- access, container, and build trust aren't really separate, but rather 'levels' of permission. If you have build trust (given by /trust) you get container and access trust as well, and if you get container trust (containertrust) you are given access trust as well.

I added a few minor things for spam protection, But some were already there. change the message, change whether spam offenders are banned, change the death message cooldown (to prevent death message spam from a single player), same for login, and (more recently) I changed it so the kick and ban functions can be set to instead run a server command (for example if there is some sort of other plugin command that people want to perform), which default to the vanilla commands (ban bans and kicks the player). Not sure what you might be looking for on top of that.

transferclaim: I'll probably give it a separate perm and also allow an optional second arg to allow for transferring from one player to another. Almost certainly with separate perms. Transfer between two arbitrary players will probably fall under adminclaims, while the previous functionality will be a transferclaims perm of some sort.

Re McMMO: I'm actually not even 100% sure if that could be stopped even using the mcMMO API, seems like either GP is getting the event after McMMO (after it applies,say, bleed) or mcMMO is not ignoring already cancelled events. I'd say the former is more likely. I will probably see if I can workaround that somehow, possibly by cancelling any added bleed effect on the entity or something. If McMMO is ignoring GP's attempts to cancel the event, I think I can use plugin.yml to specify that GP load After mcMMO so GP get's the event after, too. Will definitely make an effort to look into this.

2
baffler•

Guess I looked over the Messages.yml, oops. For the spam configuration, I was thinking of something that would let me relax it more. Sometimes my players just send messages a bit too fast and it tells them to slow down. I'd rather just have it not be as aggressive. Whatever way you're doing to stop chat spam, give some values for us to change. The big issue I usually have is people who join and send probably like 3 messages in 1 second, usually advertising their server (and usually alternating the message so it isn't identical), so it would be nice if I could make that the threshold I guess, in the configuration (3 messages in 1 second).

Also, I forgot to mention this, but I may have looked over it. Will you be adding a reload command? As it is right now, if you create a new world, you have to edit the config and put that world in there manually then /reload the server. I don't really like that, but you may be doing it different now since you mentioned that each world will have it's own config.

1
BCProgrammingOP•

Ahh, Gotcha. I've been slowly moving some of the hard-coded values that I find to configuration options as I encounter them, so I'll probably wander through the spam handling code and make some of the hard-coded settings configurable.

As to the second, there's a bit of good news there, since I've had a /gpreload implemented since pretty soon after I started working on GP about a month ago. it reloads the configuration. (it basically does a /reload but only for GP). Also, now when a new world is created, when it is first accessed by GP it will automatically create a config file for that world, which can also be based on a template configuration :D

1
joey199829x9.no-ip.org (temp.) - DW20 FTB•

Hey BC. I've been using GriefPrevention on my Modded server from the start, and it's amazing. Recently my friend and I have been porting your Developer builds to 1.4.7 mostly for the world-unloading fix, and I've had mixed feelings so far. I mean, my bad feelings about it aren't really your fault considering they are unofficial ports of the developer builds- pretty much just asking for bugs.

One thing I don't really like about the new configuration setup is that the features seem to be getting more and more vanilla specific. Before, it seemed that GriefPrevention kind of met in the middle with vanilla and modding, but now, other than the better Mystcraft support, you seem to be drifting away from that a bit.

Nearly every modded server uses GriefPrevention due to it's support with adding in certain blocks, so I think supporting it more in the future would be a good idea.

Thanks for all of your work with the plugin, and looking forward to it's future.

1
BCProgrammingOP•

One thing I don't really like about the new configuration setup is that the features seem to be getting more and more vanilla specific. Before, it seemed that GriefPrevention kind of met in the middle with vanilla and modding, but now, other than the better Mystcraft support, you seem to be drifting away from that a bit.

Well, so far I've just moved already present configurations and added a few others. It's notable that, unlike some other plugins/mods which officially support things like BukkitForge and MCPC, the fact that GP works at all is almost coincidental; or, to be more precise, we generally have no interest in reaching outside of the bukkit API to fix issues that are specific to Mods or mod packs. If it can be fixed within it- such as with the explodableIDs and other mod-specific bits of configuration data, then we'll be game to give it a go.

However, some issues just can't be fixed without adding very special support for modded servers. For example there is no way of detecting Thaumcraft wand usage and preventing it in claims without making GP a server-side Forge mod. And I won't mention my feelings about using Forge for development in order to keep this thread civil :P. Fundamentally it's a case of the adapter API not raising events to GP, for whatever reason. IMO that's a case of the implementation of the Bukkit API failing more than a failing of GP. Maybe it's related to how Thaumcraft breaks the blocks, I don't know.

One of the biggest reasons I wouldn't add anything "mod specific" is because that would mean testing it; so I'd have to test it both on my a bukkit server (make sure it doesn't break vanilla) as well as an FTB server; and in order to run it there I would need to basically backport to 1.4.7. I have no interest in backporting, and I'm not really a fan of using mods very often, so it would just be a lot of work for something that I won't be able to fully test and simply don't "feel", if that makes sense.

of course if it's possible to add support for features in a modpack through standard bukkit API features, I will definitely think about it- things like being able to set explodable blocks and whatnot. But any feature that requires "reaching past" the bukkit API (eg. making a Forge Server mod or something) is simply not going to be in the scope of the project (unless there is some easier way of doing it that I don't know about). The best I can think of would be to actually create a Forge "mod" file inside the Jar that delegates to the Bukkit version, but I don't think that's a particularly simple task.

That all said, I am curious what sort of Modpack-specific configuration options you are thinking of and what changes I've made recently that are vanilla-specific? (I'm not being confrontational, I'm actually curious, perhaps I can fix them)

Again I don't want to come across as negative here, Just that since I don't actually play Modded Minecraft very often, and never play Modded Multiplayer, I really wouldn't have any idea what you mean by Mod Support. If it's something possible without making a special Forge Server Mod, I could look into it though.

1
cheraccThe Sandlot|A Family-Friendly MC Community|sandlotminecraft.com•

I just wanted to take the opportunity to thank you again for picking up this plugin and doing some great stuff with it. Thanks for all of your support :D

There is one little peeve I have with the new configurations: In the example you use in the OP with lava buckets, it would be helpful if instead of "true" and "false" you went with "allow" and "deny". I first looked at that, and was confused at whether "true" meant "yes, you can use lava buckets here" or "yes GriefPrevention, please block lava buckets here." Using allow and deny would eliminate that ambiguity.

But I love where its heading. World-specific configurations is something I never knew I wanted, but on my kid-friendly server it will be incredibly helpful to have different levels of protections on our different worlds.

Thanks again!

1
BCProgrammingOP•

That's actually a great idea! I guess I took a shortcut and went with a boolean :P, never really considered that it could be ambiguous, but now I see that it could.

1
BitchesLoveDownvote•

The anti-spam really does have a lot of false positives. I used to submit examples to Bigscary, but it took so long to find and collate the examples that it wasn't feasible to keep submitting them. Sometimes players will say a similar message three or more minutes apart, and have it blocked. Especially greeting players when they log on. I think the easiest way around it on my server would be to maintain the same strict level for new players for at-least an hour after they first join, but relax it for the regulars. They all miss their appropriately capitalised emoticons, and capital letters at the beginning of some of their messages etc. (Although offering a bypass for the frustrating spam block as a donator reward has helped fund the server some-what :p)

I disabled the siege mode long ago as it was just a tool for griefing, a command to allow a player to break blocks in another play's claim? yeah, no thanks. Originally, I had assumed it would have blocks broken temporarily, once the siege was over the blocks would all be returned to how they were before the siege began. As my server is a simple build/survival server, we don't allow pvp unless both parties agree to it. Would be good, providing the above to be true, if a player could "suggest" a siege to the defending player, who would then need to accept before it would begin. An optional mode, of course. I know that would not fit everyone.

Some players tend to expand their house and forget to expand their claim with, leaving large portions of their build unprotected, and their valuables at risk. It would be good there were some warnings when a player builds across the borders of their claim, to remind them to expand it. even better if it magically expanded itself (probably best to ask the person if they would like it to expand, rather than use their claimblocks up for them)

Just a few thoughts there that sprang to mind, thanks for maintaining and improving GriefPrevention. I see it as an essential plugin for my server, and would not like to have any other in its stead.

1
BCProgrammingOP•

For the spam, glancing at it now, it has a lot of hard-coded length and timeout settings that are ripe for moving to the configuration file. One interesting side effect of cfg's being per-world is that different worlds can have different spam settings, which could be useful.

Siege mode is more geared for PvP servers, of course, but those are some interesting feature ideas for it.

For the expansion, with the exception of certain blocks, GP will give a message such as "other players can undo your work here! Consider creating a claim or expanding an existing one". The automatic resize is tantalizing, but would require careful work to make it useful. My thought on that is perhaps a configurable "range" and if the placed block is not a "trash" block and within X blocks of one of their claims, and they have more than a configurable minimum claim blocks, it will automatically expand to include the area (with of course a message saying as much). Of it's outside the range or they are below that minimum, it will do what it does now (warn about other players being able to undo), which seems like a useful middle ground. Most players probably expand outside of their claims one block at a time while building a wall, roof, or floor, so it ought to cover the more common cases, and a configurable minimum claim blocks. Though I'm still thinking it could be annoying if you want to build something just outside a claim, but not expand it, though.

1
BitchesLoveDownvote•

If you did go for the automatic expansion idea, I would suggest having it auto expand and then notify the player to let them know it has been expanded. They could then be given a command to undo the claim expansion. If they undo 2 or 3 expansions within a short time period, it could then announce that automatic expansions have been disabled temporarily. (again, could have a command to re-enable claim expansion).

If you could give players a command to permanently disable/enable the claim expansions, I think that would be wise. I think the auto expansion would mostly be to help protect new players anyway. established players are generally more comfortable with claims and don't tend to leave their builds carelessly unprotected.

1
OriginalMadmandamNation.eu•

I love GP and have been using it for a year or so for certain worlds on bukkit PvE including PVP world and for the FTB server. It is really a great plugin and I love it but there are some reasons we don't go all in on it:

  1. I really feel the lack of a default command, not several different ones that start with different letters and are hard to find if not looked up or memorized (we have too many plugins already, help us out!). It really should be /griefprevention [command] and alias /gp, /griefp etc. It is hard for both me and my admins to "work" the plugin among the many we have when this structure is not adhered to.

  2. The plugin is really fully focused on self-maintenance (fair enough!). Doing admin duties with it is subpar compared to other solutions. I don't really feel we have good ways to overview and handle things for players. You could improve a lot in this area.

  3. Folder and structure for ClaimData needs to be split up across worlds. It's a mess now in multiworld setups.

  4. Config option for "stuck". I really don't need or want it. (and make the cooldown in minutes or even seconds, or allow fractions...)

  5. A superb extension of feature would be a setting to manual or autoprotect loose chest/furnace/dispenser/hopper in wilderness (not in first/standard claim). That would allow servers to get rid of laggy and buggy LWC. We have horrendous problems with it, waited months for fixes that never came and had to modify/remove badly coded features ourselves - would much rather get rid of it altogether at this point. All I want is settings on/off (per world) for it not to be possible to thieve from other players temp/permanent chests (and the other item retainers) no matter inside or outside claims/regions.

  6. Part/full MySQL/MariaDB support.

  7. I think it could be good with a review of "BlockIdsRequiringContainerTrust" for standard mods FTB/Tekkit. Here is my current setup for Ultimate which is quite different from current default in the plugin. Would be good with some better logic/update/info here to make sure server owners get it right and are protected. I don't even think this list is that good atm.

    BlockIdsRequiringContainerTrust:

    • 227:*:Battery Box
    • 130:*:Transmutation Tablet
    • 128:*:Alchemical Chest and Energy Condenser
    • 181:*:Various Chests
    • 178:*:Ender Chest
    • 150:*:Various BuildCraft Gadgets
    • 155:*:Filler
    • 157:*:Builder
    • 158:*:Template Drawing Table
    • 126:*:Various EE Gadgets
    • 138:*:Various RedPower Gadgets
    • 137:*:BuildCraft Project Table and Furnaces
    • 250:*:Various IC2 Machines
    • 161:*:BuildCraft Engines
    • 169:*:Automatic Crafting Table
    • 177:*:Wireless Components
    • 183:*:Solar Arrays
    • 187:*:Charging Benches
    • 188:*:More IC2 Machines
    • 190:*:Generators, Fabricators, Strainers
    • 194:*:More Gadgets
    • 207:*:Computer
    • 208:*:Computer Peripherals
    • 246:*:IC2 Generators
    • 24303:*:Teleport Pipe
    • 24304:*:Waterproof Teleport Pipe
    • 24305:*:Power Teleport Pipe
    • 4311:*:Diamond Sorting Pipe
    • 216:*:Turtle
    • 975:*:Iron Chest
    • 1200:*:Coal Engine
    • 1603:*:box3
    • 1000:*:Barrel
    • 702:3:box5

Regarding Siege mode: I loved the idea of it and I was really excited to implement, but it really didn't work on our server tbh. Not quite sure where it goes wrong, but at least for our crowd (mostly mature 18-40 in age) it kinda didn't make sense/work favorably for good play. I'd have to make some interviews to get the full gist (you'd be warlmy welcomed to come by and have a chat about it).

Also, I think it is good you are thinking about granularity/hiearchy of settings - I remember running into those kinds of problems many times in configuring GP - then abandoning the thought because it just wasn't possible to do it the way that made the most sense.

Thanks for your awesome work :)

1
OriginalMadmandamNation.eu•

Would also love to get individual settings/capabilities for all the eggs and dispensers. Straight from the extra plugin (which is also nice, but a lot more limited, barely use any of it) that I have to use in addition to GP:

EggBlocking: true Eggs: CreeperEggBlocking: true OcelotEggBlocking: false SkeletonEggBlocking: true SpiderEggBlocking: true GiantEggBlocking: true ZombieEggBlocking: true SlimeEggBlocking: true GhastEggBlocking: true ZombiePigmanEggBlocking: true EnderManEggBlocking: true CaveSpiderEggBlocking: true SilverFishEggBlocking: true BlazeEggBlocking: true MagmaCubeEggBlocking: true EnderDragonEggBlocking: true PigEggBlocking: false SheepEggBlocking: false CowEggBlocking: false ChickenSpawnEggBlocking: false NormalChickenEggBlocking: true SquidEggBlocking: false WolfEggBlocking: false MooshroomEggBlocking: false SnowGolemEggBlocking: true VillagerEggBlocking: false XPBottleBlocking: true Dispenser: MonsterEggsDispenseBlocking: true XPBottleDispenseBlocking: true FireChargeDispenseBlocking: false WaterDispenseBlocking: false LavaDispenseBlocking: false

Also it might be a good idea to just have configurable options lists (like container trust) of items/blocks that a player is blacklisted/whitelisted to place/use. Make them wilderness + inside/outside claims and we have a very configurable system that I would be hard pressed to work out with either modifyworld, worldguard or other control plugins (and I don't know of any others that do that really well).

1
BCProgrammingOP•

tbh that sort of functionality feels more fit for things like GPFlags. If I was to add these sort of options, though, I would probably use GriefPrevention.MobEggs.<MobName> and find some way to work with any valid mob name. Particularly since that would make it 'magically' work without additions when new mobs are added (eg, when we get 1.6 and a bukkit release for it- BAM: there's a horse egg control option right there), as well as for GP to be used in Modpacks. I would rather avoid stepping on the toes of other plugins such as GPFlags. I've been adding Special API helpers to make it easier for any Plugin that uses GP to store arbitrary data for a claim, so things like GP flags could basically store an entire Configuration like those listed on a per-claim basis.

However I might give this a look see to make configurable in a more general sense. I just don't want to overload the config with too many options :P

1
BCProgrammingOP•
  1. That will probably not happen. If anything, it will just allow the use of /gp and simply toss whatever else is passed back as a command itself (eg /gp Trust would act the same as /Trust). I've added a simple /gphelp command which provides a bit of background to players on Claiming and Trusting. I imagine /gp without arguments could show a summary list of all commands.

  2. I've been adding a few useful admin-type commands. things like /claiminfo which actually provides the claim ID, number of subclaims, etc. As well as the capability to abandon all the claims of another player (if you have perms to do so, of course) in all worlds or a given world, remove all claims in a world, etc.

  3. I can see that- Only issue I see is that a name change would disassociate the world.

  4. Yep, that's on the table as well. I was thinking I'd make the cooldown in minutes instead of hours, and a cooldown of 0 would disable using /trapped entirely (as well as the information shown in chat when somebody says the magic words)

  5. Perhaps WildernessContainers and WildernessAccess values which allow or disallow the use of containers and buttons/levers respectively in the wild. There is the issue that a player could stumble on a container and simply create a claim around it, though.

  6. The implemented Database support is quite weird. It doesn't have a Primary key and in some ways just seems to use a text format that only coincidentally gets saved to a DB. The issue is that at this point, the current Schema is being used, so the only "workaround" would be to implement an entirely separate Database Datastore that uses a different schema, while keeping the other one around for compat reasons. Definitely doable. That said, it already should work with MySQL (Which I believe means it would work with MariaDB as well) and PostGreSQL (That was a Pull request by a helpful user). I was considering adding support for SQL Server but I doubt it would get very much use.

  7. This is a repeated sore point for me. First we have the problem that a lot of bugs and issues are actually because the API isn't passing GP the appropriate events (eg. Thaumcraft Wands, just as an example), which could only be fixed by making an actual Server Mod specifically for Forge, which is simply not going to happen (and if it does, it almost certainly won't be me) Another is that the extra IDs can shift between Modpack versions as they add or remove mods. I don't play Modded Servers at all, and I play FTB only a few days at a stretch, so exactly what items elements would need to be added to certain GP Logic isn't something that comes up. I'd certainly consider adding proposed lists of items for the customizable sections to the default config, but there is also the concern of trying not to prefer one modpack over another, I think.

For siege, I've mostly been trying to address some of the issues I've personally encountered. For example in one instance I was mining and used /bed to return to my base; it bugged out and put me in a wall, as it would do, but apparently somebody was also sieging me and so I couldn't break the block that was suffocating me and died... and every single item I had went to the attacker. Frustrating. Not really the siege functionalities fault, but still annoying. Most of the ideas on it I've gotten from comments on the bukkit page or in this thread. One of the issues I also had on the server was that I would often be sieged by multiple players, in such a way that I would be sieged, and either kill the attacker or defender and within a second be sieged again by another player, which was frustrating. I've been trying to think of a way to balance it, by perhaps giving the Defender an advantage based on how many are in the claim when it get's sieged, so if more than one player decides to team up to fight somebody they will have to work together even against that one player. Another idea is to require all the other players (rather than the owner and the sieger) on a claim to list as either Attackers or Defenders before a siege actually starts, and then they could be balanced with buffs to try to make sure the Defenders have a chance of fending off Attacking forces, and players that don't choose a side are ejected from the claim. On the other hand that's getting into some fairly involved functionality, too. Another of the big things that discourages it from being enabled is that the damage is permanent, so I was thinking of making it so that, as another user here said, the damage would be "healed" when the siege was over. This could be neat if during a siege, as it would be possible to allow all blocks to be broken by the attacker, and the only thing protected was containers; An attacker could lay waste to a base but once the attacker or defender died it was like it never happened, sort of like a 'minigame' if that makes sense. Perhaps even configure it so that both participants are rewarded, eg rather than being able to loot their stuff, they get, say, claim blocks or something else (probably facilitated by running a common for the winner and loser). That would encourage it somewhat by both parties, and make it "PvE friendly", and in PvP worlds it would encourage both to try to fight outside of any claims.

1