EssentialsX

EssentialsX

2M Downloads

Multiple homes on a per world basis

JadenDevon opened this issue ยท 8 comments

commented

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.

commented

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

commented

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?

commented

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

commented

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?

commented

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

commented

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

commented

@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:

# Set to true to enable per-world permissions for using homes to teleport between worlds.
# This applies to the /home only.
# Give someone permission to teleport to a world with essentials.worlds.<worldname>
world-home-permissions: false


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.

commented

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