Essentials icon indicating copy to clipboard operation
Essentials copied to clipboard

Multiple homes on a per world basis

Open JadenDevon opened this issue 6 years ago • 8 comments

Feature request

Feature description Multiple homes on a per world basis

How the feature is useful If you have a server that consists of multiple worlds all with different play styles, you can set up multiple homes accessible only from that world/group of worlds(world, nether, end, or whatever worlds you want to group together). For example: I have a survival/PvE world on my server and I want to allow players to have 3 homes they can set and access from that world set(including connected nether and end worlds). I also have a anarchy/PvP world that I want players to only have 1 home available to set and access from that world. This should be scalable to how many worlds/world groups you have on your server.

JadenDevon avatar Jan 24 '19 17:01 JadenDevon

To clarify, you want something like sethome-multiple, except instead of having a different number of homes that a user can set based on their rank, it would be based on the world instead, correct?

caojohnny avatar Mar 09 '19 07:03 caojohnny

This could also be implemented as an option to choose between having limits apply globally or per world, without changing how the limits are defined (which is how I initially interpreted the feature request).

It also seems @JadenDevon wants a way to prevent users teleporting into particular worlds using /home, which could be achieved in a similar way to how elwe currently implement essentials.back.into.<world>.

mdcfe avatar Mar 09 '19 12:03 mdcfe

@AgentTroll Exactly, although having options for both world based and rank based would be preferable. Permissions would have to be world based and rank based. ie: essentials.sethome.[world] and essentials.sethome-multiple.[world].[rank]. The ranks could easily use the same config options for multiple homes that currently exist.

@md678685 Indeed. A configurable option preventing players from teleporting between worlds using /home would be ideal. But it would have to work so that you could still use /home from the worlds respective nether and end.

JadenDevon avatar Mar 09 '19 16:03 JadenDevon

@JadenDevon The essentials.sethome.<world> permission would be redundant, since any recent/supported permissions plugin already lets you define per-world permissions, so you can just block essentials.sethome.

I'd also be wary of changing the existing permissions to include a world name - this will break lots of people's existing setups.

What I described regarding preventing cross-world teleportation already exists - see world-home-permissions: https://github.com/EssentialsX/Essentials/blob/25ddaef423fec89d090b3448baea8080c7aba0dd/Essentials/src/config.yml#L560-L563


To elaborate on my previous suggestion, I was proposing that we add a config option that controls whether the home limit is based on all of the user's homes or just the ones in that world.

For example, let's say user A has essentials.sethome.multiple.three and sethome-multiple.three: 3 is set in the config. When home-limit-per-world: true is set, that user can set 3 homes in the overworld, 3 homes in the Nether, 3 homes in the End etc. However, when home-limit-per-world: false is set, it acts as it currently does (the user can only have 3 homes and EssentialsX doesn't care what world they're in). You could use per-world permissions to then set different levels for each world - perhaps give them essentials.sethome.multiple.seven in creative but only essentials.sethome.multiple.two in a survival world.

This implementation would mean we can keep existing behaviour when people update without anyone having to re-learn the feature or reset their config files, while allowing people to turn on the more advanced features if they want to.

mdcfe avatar Mar 09 '19 17:03 mdcfe

@md678685 That type of implementation would be ideal. The only issue that I have with it, if someone wanted to take up this project, is that world groups would have to be possible. I would like to have it so that a player with essentials.sethome.multiple.three would have access to creating and teleporting to those 3 homes in world, world_nether, and world_the_end and have separate homes for a different world group that are accessible only in anarchy, anarchy_nether, and anarchy_the_end.(example world names)

JadenDevon avatar Mar 09 '19 17:03 JadenDevon

If this is still relevant I would like to work on this issue. Please assign me if possible. Thanks

tadeas-drab avatar Oct 08 '23 14:10 tadeas-drab

This issue is open to PR and I'm not aware of anyone else currently working on a PR. We don't typically assign issues to new contributors. However, you're welcome to create a PR for this and we'll review it when we have time.

Could you provide a rough outline of what you would be aiming to implement?

mdcfe avatar Oct 08 '23 16:10 mdcfe

This issue is open to PR and I'm not aware of anyone else currently working on a PR. We don't typically assign issues to new contributors. However, you're welcome to create a PR for this and we'll review it when we have time.

Could you provide a rough outline of what you would be aiming to implement?

Basically I would go from the discussion in this issue and during the development ask if something is unclear. I would aim to do most of it or all if it will be possible:

  • Adding more home locations possibility meaning per world or per group of worlds, etc.
  • Default use of /home would be assignable, per world or for a group of worlds, etc.
  • Everything configurable of course

Aim to finish this would be around December this year

tadeas-drab avatar Oct 09 '23 13:10 tadeas-drab