Skip to content

Additional information

NEZNAMY edited this page Jul 31, 2023 · 45 revisions

About

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

Content

Bedrock compatibility

Detection

For TAB to properly detect player as a bedrock player, floodgate and TAB must be installed on the same server instance and if TAB is on bukkit and floodgate is on both bungeecord and bukkit, make sure they are connected. To make sure floodgate is configured correctly, set debug: true in TAB config and check console output on join/reload. It should say Floodgate returned bedrock status TRUE for player <player>. If it says FALSE for an actual bedrock player, you didn't connect floodgate properly.

Differences

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.

Issues with . in name

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.
There are 3 solutions available:

  • Use player UUID if commands are executed via another plugin (/tab player <uuid> ...).
  • Use playeruuid type, which accepts player name and saves the online player's UUID (/tab playeruuid <player name> ...).
  • Use a different username prefix than ..

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 makes vanish plugins unable to remove players on other servers from tablist, vanish check will make TAB remove vanished players.
  • Potentiall hide vanished players from Layout.

Permission tab.seevanished allows players to:

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