Skip to content

Hidden Players

CodeCrafter47 edited this page Jan 29, 2023 · 8 revisions

It is possible to configure whether vanished players will show up on the tab list and who will be able to see them. You can also modify the appearance of hidden players on the tab list so they can be identified as such.

Note: You need to install BungeeTabListPlus_BukkitBridge on all Bukkit/ Spigot servers for this to work.

Content

Supported Vanish Plugins

For this to work you must be using one of the following vanish plugins:

  • Essentials*
  • SuperVanish/ PremiumVanish
  • CMI*
  • VanishNoPacket
  • ProxySuite
  • ProtocolVanish
  • StaffFacilities
  • Nucleus*

*Requires you to install the BungeeTabListPlus_BukkitBridge plugin on the Spigot Servers to work.

Configure who can see Vanished Players

You can use the hiddenPlayers option in the tab list configuration file to change who can see hidden players. The following options are available:

Value Description
VISIBLE Hidden players are shown on the tab list.
VISIBLE_TO_ADMINS Players with the bungeetablistplus.seevanished permission can see hidden players. This is the default.
INVISIBLE Hidden players do not appear on the tab list.

Have a look at the example at the bottom, then it should be clear how this works.

Change the Appearance of Hidden Players

As an example we will use the custom placeholder mechanism to add a /vanish suffix to hidden players. This is useful so that staff member with the permission to see vanished players know who is vanished.

customPlaceholders:
  vanish_suffix: !conditional
    condition: ${player is_hidden}
    true: "&b/vanish"
    false: ""

The above code allows us to use the ${vanish_suffix} placeholder in playerComponent. Now this only makes sense if we set hiddenPlayers to VISIBLE or VISIBLE_TO_ADMINS, so we will use VISIBLE_TO_ADMINS for the following example:

admin perspective player perspective

Complete code:

showTo: all
priority: 1

hiddenPlayers: VISIBLE_TO_ADMINS

playerSets:
  all_players: all

customPlaceholders:
  vanish_suffix: !conditional
    condition: ${player is_hidden}
    true: "&b/vanish"
    false: ""

type: DYNAMIC_SIZE

playerSet: all_players
playerOrder: vault_primary_group_weight asc, name
playerComponent: "${player vault_prefix}&f${player name}${vanish_suffix}"

Change Visibility of Hidden Player per Player Set

It is possible to select for each player set whether hidden player should be included. Just have a look at the following example:

playerSets:
  # The global player set contains all players (hidden players are only visible to admins)
  global:
    filter: all
    hiddenPlayers: VISIBLE_TO_ADMINS
  # All players, except for hidden players
  global_without_hidden:
    filter: all
    hiddenPlayers: INVISIBLE
  # All players, always contains hidden players.
  global_with_hidden:
    filter: all
    hiddenPlayers: VISIBLE

For Developers: Add support for your plugin

If you have your own Vanish plugin and would like to have BungeeTabListPlus support it can it be done easily through the Bukkit API and doesn't require any interaction with the API of the plugin.
To add support, simply add a vanished metadata object with value true to the Player itself. BungeeTabListPlus should then automatically pick up this information and hide the player from the tab list.

Troubleshooting

You can use the /btlp debug hidden [player] command to get the plugin to tell you whether it considers a player hidden, why it does so and whether a player has the permission to see other hidden players.