Sponge: Spawn protection affects all worlds

Created on 21 Jul 2017  路  5Comments  路  Source: SpongePowered/Sponge

This rings a bell where players/server owners would state that spawn protection was active in the Nether and other dimensions than the Overworld. I think I may have found the exact bit of code that is causing such an issue here in MixinDedicatedServer.

Just opening an issue so it doesn't get forgotten. This is a likely candidate to be back ported to 1.10.2 as well.

accepted world

Most helpful comment

Looking from this from a server administrator point of view.

Vanilla Spawn protection is either expected, or entirely surprising on the overworld.

Most disable it or don't realize it exists, but some newer players (to modded servers) who have only ever experienced vanilla will expect the option to be there by default, and behave like vanillas (only active on the overworld).

In order to utilize vanilla spawn protection for multiple worlds, which worlds it's enabled on needs to be configurable in some manner, in a location consistent with users expectations (world or dimension config sections).

The current behaviour of checking a permission instead of operator works well, but requires knowledge of

  1. That there is a permission available.
  2. How to apply contexts using your permission manager which Sponge doesn't support by default.
  3. That vanilla spawn protection exists and now covers multiple worlds.

My suggestion would be to use the values in server.properties as a default radius, disable the spawn protection for all worlds except the primary overworld by default, inside the world/dimension configs.

Allow override of the radius per world in the world/dimension configs.

Yes this means that there are now 2 locations (server.properties & configs) you need to be aware of, but it's the only solution that makes sense to me.

The permissions would remain as a way to give access to trusted ranks.

A few options for workarounds and I stress that it would be a workaround.

  1. Would be to not apply the permission by default to non overworld dimensions, (allowing users to still use it if needed) and have limited world/dimension context support in sponge.

  2. Disable vanilla spawn protection entirely for any non overworld world/dimension.

  3. Disable vanilla spawn protection for all worlds except the primary world/dimension.

If I were in charge of Sponge, a quick modification that I would make in order to clarify vanilla to reduce the number of tickets, would be to introduce an action bar message that gets sent to the player if trying to break blocks within the spawn protected area. Personally I think this should be in Minecraft, but adding this would help to educate to players and admins alike at why the chunks are 'bugged' or unbreakable.

All 5 comments

Are we still interested in doing something like the following https://github.com/SpongePowered/SpongeCommon/pull/128

As I mentioned on https://github.com/SpongePowered/SpongeVanilla/issues/313 (which has also a few suggested solutions we should consider), this seems to be intended: The @Overwrite comment specifically mentions applying it to all worlds. I'm not sure if that makes much sense, though.

Looking from this from a server administrator point of view.

Vanilla Spawn protection is either expected, or entirely surprising on the overworld.

Most disable it or don't realize it exists, but some newer players (to modded servers) who have only ever experienced vanilla will expect the option to be there by default, and behave like vanillas (only active on the overworld).

In order to utilize vanilla spawn protection for multiple worlds, which worlds it's enabled on needs to be configurable in some manner, in a location consistent with users expectations (world or dimension config sections).

The current behaviour of checking a permission instead of operator works well, but requires knowledge of

  1. That there is a permission available.
  2. How to apply contexts using your permission manager which Sponge doesn't support by default.
  3. That vanilla spawn protection exists and now covers multiple worlds.

My suggestion would be to use the values in server.properties as a default radius, disable the spawn protection for all worlds except the primary overworld by default, inside the world/dimension configs.

Allow override of the radius per world in the world/dimension configs.

Yes this means that there are now 2 locations (server.properties & configs) you need to be aware of, but it's the only solution that makes sense to me.

The permissions would remain as a way to give access to trusted ranks.

A few options for workarounds and I stress that it would be a workaround.

  1. Would be to not apply the permission by default to non overworld dimensions, (allowing users to still use it if needed) and have limited world/dimension context support in sponge.

  2. Disable vanilla spawn protection entirely for any non overworld world/dimension.

  3. Disable vanilla spawn protection for all worlds except the primary world/dimension.

If I were in charge of Sponge, a quick modification that I would make in order to clarify vanilla to reduce the number of tickets, would be to introduce an action bar message that gets sent to the player if trying to break blocks within the spawn protected area. Personally I think this should be in Minecraft, but adding this would help to educate to players and admins alike at why the chunks are 'bugged' or unbreakable.

For anyone else who stumbles upon this bug, this is the luckperms command to disable spawn protection in the end:

/luckperms group default permission set minecraft.spawn-protection.override world=DIM1
Was this page helpful?
0 / 5 - 0 ratings

Related issues

Xemiru picture Xemiru  路  3Comments

randombyte-developer picture randombyte-developer  路  5Comments

me4502 picture me4502  路  5Comments

Rasgnarok picture Rasgnarok  路  4Comments

JoeSGT picture JoeSGT  路  5Comments