Skip to content

Additional information

NEZNAMY edited this page Jun 8, 2023 · 47 revisions

About

This is a collection of random information about the plugin not necessarily limited to a single feature or function.

Content

Bedrock compatibility

It is job of plugin allowing bedrock clients to connect (probably Geyser) to correctly translate all packets. If you are experiencing an issue on bedrock but not java, it is most likely not an issue in TAB code.

Currently, TAB does check for bedrock clients for:

  • Displaying scoreboard numbers as 1-15 instead of all 0 even if it's set to all 0, because lines would not be ordered correctly.
  • Disabling Layout for bedrock players.
  • Disabling Yellow Number for bedrock players due to many issues with the feature on bedrock.

These are the only 3 known changes that are required on TAB side. For TAB to properly detect player as a bedrock player, floodgate and TAB must be installed on the same server instance (if TAB is on bukkit and floodgate is on both bungeecord and bukkit, make sure they are connected).

If you configured Geyser to prefix bedrock player names with ., it will mess up config loading, because . is used to split section path. This means that using /tab player <playername containing .> ... will not work. A workaround is to use either player UUID if commands are executed via a plugin (/tab player <uuid> ...) or to use playeruuid type, which accepts player name and saves the online player's UUID (/tab playeruuid <player name> ...).

Vanish detection

Although TAB does not manage player vanishing in any way, it checks for vanish status for features to be properly compatible. At the moment, vanishing detection is used for:

  • %vanished% placeholder (used for internal functionality, but can be used to display vanish status if one wants to)
  • %online%, %serveronline%, %worldonline% and %staffonline will not count vanished players
  • Aligned tabsuffix uses it to make sure it doesn't add extra spaces due to vanished players people cannot see (unless player can see vanished players, see below)
  • Global playerlist takes over the tablist, causing vanish plugins to fail to remove player from tablist, vanish check will make TAB remove vanished players
  • Vanished players do not appear in Layout (unless configured to show them)

Permission tab.seevanished allows players to:

At the moment, it does not allow players to see vanished players in Layout. This will be added in the future.

For a player to be detected, at least one condition must be met:

  • When TAB is installed on BungeeCord, PremiumVanish is installed as well and PV says player is vanished, player is considered vanished.
  • Player has to have vanished metadata flag set to true. Most, if not all vanish plugins do this, including, but not limited to CMI, Essentials, SuperVanish, PremiumVanish and probably more. If TAB is installed on BungeeCord, Bridge must be installed on backend servers to forward vanish status to the proxy.

Async player loading

In order to not slow down the server, TAB loads players asynchronously on join. As a casual user this does not impact you, but there are some cases where you'll feel it:

  • Players will not be accessible in the API during PlayerJoinEvent
  • TAB's PlaceholderAPI expansion will not be accessible during join process, such as when trying to use it in plugins editing join messages (the exception is replace_ placeholder, which doesn't directly use any TAB code).

Scoreboard objective and team naming

There's a well known BungeeCord bug that kicks players if a duplicate team or objective is registered. This message also shows the name of the objective/team. Before reporting this, make sure it actually comes from TAB.

TAB's objective and team naming:

  • Objectives ("Objective ... already exists in this scoreboard")
  • Teams ("Team ... already exists in this scoreboard")
    • For sidebar scoreboard: TAB-SB-TM-x where x is a number from 1 to 15+ (for each line)
    • For players: This is more complicated to use the 16 character limit to the max and heavily depends on configuration. If you are sorting by player names, part of player name will be there. The most reliable way is the team name (almost) always ending with A (or B, C etc if you tried to sort several players into the same slot).
Clone this wiki locally