CodeCrafter47 / BungeeTabListPlus

GNU General Public License v3.0
149 stars 69 forks source link

PremiumVanish - vanish levels support #575

Open GenSecrets opened 4 years ago

GenSecrets commented 4 years ago

Heya! I do know that PremiumVanish is supported, however it appears that their "vanish levels" system isn't supported. Basically, PremiumVanish allows us to set permissions of who all can see which players while vanished.

Example: John has **pv.see.level3** and Mark has **pv.use.level3** then John can see Mark when Mark is vanished. If Mark has **pv.use.level4** instead, (which is higher than John's permission to see) then John will not be able to see Mark.

This is how it is setup on a server I admin for at the moment since it's a decently large server we have tiers of staff members who shouldn't know when our admins are online but should know when other vanished people are online.

Currently with BTLP bukkit bridge installed and the bltp.seevanished perm enabled, they can see all vanished players, including vanished players whose "pv.use.level#" is higher than the viewer's "pv.see.level#". The goal here with this feature request will be to add support to where they will only see the levels they have permissions to see

Resources: Spigot page for PremiumVanish (it includes an API, as well as documentation about the level system I'm referring to) https://www.spigotmc.org/resources/premiumvanish-stay-hidden-bungee-support.14404/

CodeCrafter47 commented 4 years ago

This has already been suggested. See #450 . I agree support for vanish levels would be nice to have, but I don't plan on adding it in the near future.

GenSecrets commented 4 years ago

Gotcha, will keep a look on it then as this is something extremely desired. I can see where it would be a lot of work, thanks for taking it into consideration!

As a work around, for sake of bungeetablistplus.seevanished is there a .bypass perm that I can give to the admins?

Process would mean I give regular staff the bltp.seevanished perm and they will see other vanished teirs of our staff teams. Then I add bltp.seevanished.bypass to our admin group and no one will be able to see members who have that perm. End goal here overall all is that I can make vanished players see each other while our admin team stays hidden so we can do quality checks and more intense work.

MatrixSystemPVP commented 1 year ago

I've figured a workaround for this issue. It's probably not performant, but I think it'll be good enough for now.

You just have to set hiddenPlayers to VISIBLE and handle it yourself via playerSets and the permission of the viewer/player (sv.see.levelX, sv.use.levelX).

The only Problem with this is when you have more vanish levels, then this will be a ton of permission checks and really quickly huge.

An small example for just 3 vanish levels:

hiddenPlayers: VISIBLE
playerSets:
  vanish_levels: |
      ${player is_hidden} = false or
      ${player name} == ${viewer name} or

      ((${player permission sv.use.level1} = true or ${player permission sv.use} = true) and
      (
      ${viewer permission sv.see} = true or
      ${viewer permission sv.see.level1} = true or
      ${viewer permission sv.see.level2} = true or
      ${viewer permission sv.see.level3} = true
      )
      ) or

      (${player permission sv.use.level2} = true and
      (
      ${viewer permission sv.see.level2} = true or
      ${viewer permission sv.see.level3} = true
      )
      ) or

      (${player permission sv.use.level3} = true and
      (
      ${viewer permission sv.see.level3} = true
      )
      )