Multiverse-Core

Multiverse-Core

6M Downloads

Per gamemode type bypass permissions

dc6iq opened this issue · 7 comments

commented

While being in spectator gamemode, you can teleport to a spectated player using numeric keys. If the spectated player is in
another world, your gamemode is being changed from spectator to the word's mode. If the spectated player is flying, you will be in
air as well and most likely fall down and die because your gamemode was being changed.

Feature request

** If a permission mv.bypass.onspectator.* is set and you are in spectator mode, no gamemode change will happen.

Feature description
a new permission set mv.bypass.onspectator.world / mv.bypass.onspectator.* should be added. If it is set and your current gamemode is spectator, this gamemode will be kept while being teleported to another world.

How the feature is useful
You won't die anymore and you will not be spotted if you traverse a worlds in spectator mode.

** Fix **
Just pull the fix from https://github.com/dc6iq/Multiverse-Core.git, thank you

commented

I think MV shouldn’t handle this as LuckPerms can already do it with what I’d think of as a much more intuitive method.

commented

Pull request added...

commented

There is already mv.bypass.gamemode.WORLDNAME. See: https://github.com/Multiverse/Multiverse-Core/wiki/Big-List-O'-Permissions#access-permissions

Only thing is if you want only spectator to bypass gamemode on world change but not other gamemodes. For this, more changes will be needed.

commented

Yes, mv.bypass.gamemode.* does too much.

if i am not in spectator mode, then i am just a "normal" player, so a normal gamemode change should happen. In fact the (simple) fix is already coded an tested, just have a look at my pull request and the diff. Defaults (false) do not change the current behaviour, for game operators you have to enable the feature.

commented

Essentially what you are looking for is per gamemode type bypass permissions, which is a good suggestion.

My concerns are

  1. If it were to be added, I think we should have permission node for all gamemodes, not just spectator as well.
  2. mv.bypass.gamemode.<gamemode>.<worldname> may be a better perm node then
  3. And in all honestly, we need a full permission revamp general lol, so not so keen in added more permission node to an old system. Can only come after #2514 tho

Let see other devs opinion first, @nicegamer7 @dumptruckman

commented

I feel like you should be able to use contexts from a permissions plugin like LuckPerms to do this. If you just turn on mv.bypass.gamemode.WORLDNAME when your gamemode is spectator it should do what you want.

commented

I agree with your third point ben, and what willkroboth suggests should also work.